diff --git a/assets/default/css/theme.css b/assets/default/css/theme.css
index d004c4069706a8bc1d62e34fe19dd9850eaa3f9c..3f1cb699c0c6d477b45bec4a4e08b2626b75ade4 100644
--- a/assets/default/css/theme.css
+++ b/assets/default/css/theme.css
@@ -379,19 +379,33 @@ body {
   font-size: 15px;
   margin-left: 0;
   padding-left: 0;
+  border-top:1px solid #ddd;
 }
 #faq ol li {
   list-style: none;
-  margin: 0 0 10px 0;
+  margin: 0;
+  padding:0;
   color: #999;
 }
 #faq ol li a {
-  display: block;
-  height: 16px;
+  display:block;
+  padding:5px 0;
+  height:auto !important;
+  overflow:hidden;
+  margin:0;
+  border-bottom:1px solid #ddd;
   line-height: 16px;
   padding-left: 24px;
   background: url('../images/icons/page.png?1319579499') 0 50% no-repeat;
 }
+#faq ol li a:hover {
+  background-color:#e9f5ff;
+}
+
+.article-meta {
+  padding:5px;
+  background:#fafafa;
+}
 
 /* Knowledgebase */
 #kb {
@@ -401,12 +415,21 @@ body {
 }
 
 #kb > li {
-  margin: 0 0 5px 0;
-  padding: 10px;
-  width: auto;
-  float: left;
-  clear: both;
-  list-style: none;
+  padding:10px;
+  height:auto !important;
+  overflow:hidden;
+  margin:0;
+  background:url(../images/kb_category_bg.png) bottom left repeat-x;
+  border-bottom:1px solid #ddd;
+}
+
+#kb li i {
+  display:block;
+  width:32px;
+  height:32px;
+  float:left;
+  margin-right:6px;
+  background:url(../images/kb_large_folder.png) top left no-repeat;
 }
 
 #kb > li h4 {
@@ -420,10 +443,51 @@ body {
 
 #kb > li h4 a {
   font-size: 14px;
-  padding-left: 24px;
-  background: url('../images/icons/page.png?1319579499') 0 50% no-repeat;
 }
 
+#kb-search {
+    padding:10px 0;
+    overflow:hidden;
+}
+
+#kb-search div {
+    clear:both;
+    overflow:hidden;
+    padding-top:5px;
+}
+
+#kb-search #query {
+    margin:0;
+    display:inline-block;
+    float:left;
+    width:200px;
+    margin-right:5px;
+}
+
+#kb-search #cid {
+    margin:0;
+    display:inline-block;
+    float:left;
+    width:200px;
+    margin-right:5px;
+    position:relative;
+    top:2px;
+}
+
+#kb-search #topic-id {
+    margin:0;
+    display:inline-block;
+    float:left;
+    width:410px;
+}
+
+#kb-search #searchSubmit {
+    margin:0;
+    display:inline-block;
+    float:left;
+    position:relative;
+    top:2px;
+}
 
 #breadcrumbs {
   color: #333;
diff --git a/assets/default/images/kb_category_bg.png b/assets/default/images/kb_category_bg.png
new file mode 100644
index 0000000000000000000000000000000000000000..174d675f4c491060a413232bdef7e0e9298df60e
Binary files /dev/null and b/assets/default/images/kb_category_bg.png differ
diff --git a/assets/default/images/kb_large_folder.png b/assets/default/images/kb_large_folder.png
new file mode 100644
index 0000000000000000000000000000000000000000..144fa828a3fc83613dd7a5b29368b6da290fd09d
Binary files /dev/null and b/assets/default/images/kb_large_folder.png differ
diff --git a/include/client/faq.inc.php b/include/client/faq.inc.php
index c944f8316f58fb1b1ff59854bb7a63c05d505de5..65f770e9673083d2474d2a9eb260771492541d41 100644
--- a/include/client/faq.inc.php
+++ b/include/client/faq.inc.php
@@ -6,7 +6,7 @@ $category=$faq->getCategory();
 ?>
 <h1>Frequently Asked Questions</h1>
 <div id="breadcrumbs">
-    <a href="index.php">All Categories</a> 
+    <a href="index.php">All Categories</a>
     &raquo; <a href="faq.php?cid=<? echo $category->getId(); ?>"><? echo $category->getName(); ?></a>
 </div>
 <div style="width:700;padding-top:2px; float:left;">
@@ -23,7 +23,8 @@ if($faq->getNumAttachments()) { ?>
  <div><span class="faded"><b>Attachments:</b></span>  <?php echo $faq->getAttachmentsLinks(); ?></div>
 <?
 }?>
-<div><span class="faded"><b>Help Topics:</b></span> 
+
+<div class="article-meta"><span class="faded"><b>Help Topics:</b></span>
     <?php echo ($topics=$faq->getHelpTopics())?implode(', ',$topics):' '; ?>
 </div>
 </p>
diff --git a/include/client/knowledgebase.inc.php b/include/client/knowledgebase.inc.php
index 83484e95de818d732a67fed39b980fd5e9262e95..d8f402e7b5d191b224dc638b54f3a3177bddce85 100644
--- a/include/client/knowledgebase.inc.php
+++ b/include/client/knowledgebase.inc.php
@@ -3,61 +3,53 @@ if(!defined('OSTCLIENTINC')) die('Access Denied');
 
 ?>
 <h1>Frequently Asked Questions</h1>
-<form action="index.php" method="get" style="padding-top:15px;">
+<form action="index.php" method="get" id="kb-search">
     <input type="hidden" name="a" value="search">
-    <table border="0" cellspacing="0" cellpadding="3">
-        <tr>
-            <td width="440">
-                <input id="query" type="text" size="20" name="q" value="<?php echo Format::htmlchars($_REQUEST['q']); ?>">
-                <select name="cid">
-                    <option value="">&mdash; All Categories &mdash;</option>
-                    <?php
-                    $sql='SELECT category_id, name, count(faq.category_id) as faqs '
-                        .' FROM '.FAQ_CATEGORY_TABLE.' cat '
-                        .' LEFT JOIN '.FAQ_TABLE.' faq USING(category_id) '
-                        .' WHERE cat.ispublic=1 AND faq.ispublished=1 '
-                        .' GROUP BY cat.category_id '
-                        .' HAVING faqs>0 '
-                        .' ORDER BY cat.name DESC ';
-                    if(($res=db_query($sql)) && db_num_rows($res)) {
-                        while($row=db_fetch_array($res))
-                            echo sprintf('<option value="%d" %s>%s (%d)</option>',
-                                    $row['category_id'], 
-                                    ($_REQUEST['cid'] && $row['category_id']==$_REQUEST['cid']?'selected="selected"':''),
-                                    $row['name'],
-                                    $row['faqs']);
-                    }
-                    ?>
-                </select>
-            </td>
-            <td width="100" rowspan="2" style="text-align:left;vertical-align: middle;">
-                <input id="searchSubmit" type="submit" value="Search">
-            </td>
-        </tr>
-        <tr>
-            <td width="400">
-                <select name="topicId" style="width:350px;">
-                    <option value="">&mdash; All Help Topics &mdash;</option>
-                    <?php
-                    $sql='SELECT ht.topic_id, ht.topic, count(faq.topic_id) as faqs '
-                        .' FROM '.TOPIC_TABLE.' ht '
-                        .' LEFT JOIN '.FAQ_TOPIC_TABLE.' faq USING(topic_id) '
-                        .' WHERE ht.ispublic=1 '
-                        .' GROUP BY ht.topic_id '
-                        .' HAVING faqs>0 '
-                        .' ORDER BY ht.topic DESC ';
-                    if(($res=db_query($sql)) && db_num_rows($res)) {
-                        while($row=db_fetch_array($res))
-                            echo sprintf('<option value="%d" %s>%s (%d)</option>',
-                                    $row['topic_id'], 
-                                    ($_REQUEST['topicId'] && $row['topic_id']==$_REQUEST['topicId']?'selected="selected"':''),
-                                    $row['topic'], $row['faqs']);
-                    }
-                    ?>
-                </select>
-            </td>
-        </tr>
-    </table>
+    <div>
+        <input id="query" type="text" size="20" name="q" value="<?php echo Format::htmlchars($_REQUEST['q']); ?>">
+        <select name="cid" id="cid">
+            <option value="">&mdash; All Categories &mdash;</option>
+            <?php
+            $sql='SELECT category_id, name, count(faq.category_id) as faqs '
+                .' FROM '.FAQ_CATEGORY_TABLE.' cat '
+                .' LEFT JOIN '.FAQ_TABLE.' faq USING(category_id) '
+                .' WHERE cat.ispublic=1 AND faq.ispublished=1 '
+                .' GROUP BY cat.category_id '
+                .' HAVING faqs>0 '
+                .' ORDER BY cat.name DESC ';
+            if(($res=db_query($sql)) && db_num_rows($res)) {
+                while($row=db_fetch_array($res))
+                    echo sprintf('<option value="%d" %s>%s (%d)</option>',
+                            $row['category_id'],
+                            ($_REQUEST['cid'] && $row['category_id']==$_REQUEST['cid']?'selected="selected"':''),
+                            $row['name'],
+                            $row['faqs']);
+            }
+            ?>
+        </select>
+        <input id="searchSubmit" type="submit" value="Search">
+    </div>
+    <div>
+        <select name="topicId" id="topic-id">
+            <option value="">&mdash; All Help Topics &mdash;</option>
+            <?php
+            $sql='SELECT ht.topic_id, ht.topic, count(faq.topic_id) as faqs '
+                .' FROM '.TOPIC_TABLE.' ht '
+                .' LEFT JOIN '.FAQ_TOPIC_TABLE.' faq USING(topic_id) '
+                .' WHERE ht.ispublic=1 '
+                .' GROUP BY ht.topic_id '
+                .' HAVING faqs>0 '
+                .' ORDER BY ht.topic DESC ';
+            if(($res=db_query($sql)) && db_num_rows($res)) {
+                while($row=db_fetch_array($res))
+                    echo sprintf('<option value="%d" %s>%s (%d)</option>',
+                            $row['topic_id'],
+                            ($_REQUEST['topicId'] && $row['topic_id']==$_REQUEST['topicId']?'selected="selected"':''),
+                            $row['topic'], $row['faqs']);
+            }
+            ?>
+        </select>
+    </div>
 </form>
 <hr>
 <div>
@@ -100,9 +92,10 @@ if($_REQUEST['q'] || $_REQUEST['cid'] || $_REQUEST['topicId']) { //Search.
         echo '<div>Click on the category to browse FAQs.</div>
                 <ul id="kb">';
         while($row=db_fetch_array($res)) {
-        
+
             echo sprintf('
                 <li>
+                    <i></i>
                     <h4><a href="faq.php?cid=%d">%s (%d)</a></h4>
                     %s
                 </li>',$row['category_id'],