Slim frontend for API and serialization tests
diff --git a/public/kwic-3.0.css b/public/kwic-3.0.css
new file mode 100644
index 0000000..454e115
--- /dev/null
+++ b/public/kwic-3.0.css
@@ -0,0 +1,190 @@
+@charset "utf-8";
+
+ol {
+  width: auto;
+  margin: 2pt;
+  overflow: hidden;
+  list-style-type: none;
+  font-size: 9pt;
+  padding: 0;
+  margin-bottom: 2em;
+  text-indent: 0;
+  border: 1px solid #ccc;
+  font-family: verdana, tahoma, arial;
+  text-shadow: 1px 1px rgba(255, 255, 255, 0.4);
+}
+
+ol > li {
+  border-style: solid;
+  border-color: #ffa500;
+  border-width: 0;
+}
+
+ol > li:not(.active) {
+  width: 999999%;
+  margin-left: -499999.5%;
+  background-color: #f5f5f5;
+  overflow: hidden;
+  white-space: no-wrap;
+  cursor: pointer;
+  padding: 10px 0;
+  text-indent: 0;
+}
+
+ol > li:nth-of-type(even) {
+  background-color: #ddd;
+}
+
+ol > li > span,
+ol > li > span > span {
+  white-space: no-wrap !important;
+}
+
+ol.free-aligned > li:not(.active) > span.left {
+  display: inline-block;
+  text-align: right;
+  width: 50.0046%;
+}
+
+ol.free-aligned > li:not(.active) > span.separator {
+  width: 0px;
+  height: 1em;
+  margin-bottom: -2px;
+  display: inline-block;
+  line-height: 100%;
+  border: 1px solid #009EE0;
+  margin-left: 2px;
+  margin-right: 2px;
+}
+
+ol.free-aligned > li > span.right {
+  text-align: left;
+}
+
+ol.left-aligned > li > span.context-left {
+  display: inline-block;
+  text-align: right;
+  width: 50.001%;
+}
+
+ol.right-aligned {
+  text-align: right;
+}
+
+ol.right-aligned > li:not(.active) > span.context-right {
+  display: inline-block;
+  text-align: left;
+  width: 49.9915%;
+}
+
+li > span {
+  color: #666;
+}
+
+.match {
+  font-weight: bold;
+  color: #333;
+  padding-left: 4pt;
+  padding-right: 2pt;
+}
+
+em, em.level-0 {
+  border-bottom-width: 2px;
+  border-bottom-style: solid;
+  padding-bottom: 0px;
+  font-style: normal;
+}
+
+em > em, em.level-1 {
+  padding-bottom: 3px;
+}
+
+em > em > em, em.level-2 {
+  padding-bottom: 6px;
+}
+
+.class-0 { border-color: #c1002b; }
+.class-1 { border-color: #009ee0; }
+.class-2 { border-color: #f29400; }
+
+span.more:before {
+  content: "…";
+  padding-left: 2pt;
+  padding-right: 2pt;
+}
+
+/* active view */
+ol li.active {
+  text-align: left;
+  width: auto;
+  cursor: normal;
+  white-space: wrap;
+  height: auto;
+  padding: 5pt;
+  padding-left: 3em;
+  padding-bottom: 12px;
+  border-width: 2px;
+  background-color: #f4eebb;
+  position: relative;
+}
+
+ol li.active > span {
+  line-height: 1.7em;
+  width: auto;
+}
+
+ol li.active span.context-left {
+  margin-left: 0;
+  display: inline;
+  overflow: visible;
+  text-align: left;
+  width: auto;
+}
+
+
+/* Korap-Actions: */
+ol > li ul.action {
+  display: none;
+}
+
+ol > li ul.action a {
+  color: white;
+  text-decoration: none;
+  text-shadow: none;
+}
+
+ol > li.active ul.action {
+  background-color: #ffa500;
+  display: block;
+  margin: 0;
+  padding: 0;
+  z-index: 4;
+  text-indent: 0;
+  list-style-type: none;
+  list-style-position: inline;
+}
+
+ol > li.active ul.action.right {
+  position: absolute;
+  right: 0;
+  bottom: 0;
+  height: 1.2em;
+}
+
+ol > li.active ul.action.left {
+  position: absolute;
+  float: left;
+  padding: 0pt 3pt;
+  height: 100%;
+  width: 2em;;
+/*
+  margin: -5pt 2pt 2pt -5pt;
+*/
+  left: 0;
+  top: 0;
+}
+
+ol > li.active ul.action.right li {
+  float: left;
+  padding-left: 1em;
+}