From 22a2c3c7a52b6b32ae24ae0c8eb74c651dfa9ec1 Mon Sep 17 00:00:00 2001
From: David Sehnal <david.sehnal@gmail.com>
Date: Fri, 16 Nov 2018 13:13:32 +0100
Subject: [PATCH] plugin: wip skin

---
 src/apps/viewer/index.html                    |   1 +
 src/apps/viewer/index.ts                      |   1 +
 src/mol-plugin/skin/base/base.scss            |  44 +
 .../base/bootstrap/_bootstrap-compass.scss    |   9 +
 .../base/bootstrap/_bootstrap-mincer.scss     |  19 +
 .../base/bootstrap/_bootstrap-sprockets.scss  |   9 +
 .../skin/base/bootstrap/_bootstrap.scss       |  57 ++
 .../base/bootstrap/bootstrap/_alerts.scss     |  73 ++
 .../base/bootstrap/bootstrap/_badges.scss     |  68 ++
 .../bootstrap/bootstrap/_breadcrumbs.scss     |  28 +
 .../bootstrap/bootstrap/_button-groups.scss   | 244 +++++
 .../base/bootstrap/bootstrap/_buttons.scss    | 168 ++++
 .../base/bootstrap/bootstrap/_carousel.scss   | 270 ++++++
 .../skin/base/bootstrap/bootstrap/_close.scss |  36 +
 .../skin/base/bootstrap/bootstrap/_code.scss  |  69 ++
 .../bootstrap/_component-animations.scss      |  37 +
 .../base/bootstrap/bootstrap/_dropdowns.scss  | 216 +++++
 .../skin/base/bootstrap/bootstrap/_forms.scss | 617 +++++++++++++
 .../base/bootstrap/bootstrap/_glyphicons.scss | 307 ++++++
 .../skin/base/bootstrap/bootstrap/_grid.scss  |  84 ++
 .../bootstrap/bootstrap/_input-groups.scss    | 171 ++++
 .../base/bootstrap/bootstrap/_jumbotron.scss  |  54 ++
 .../base/bootstrap/bootstrap/_labels.scss     |  66 ++
 .../base/bootstrap/bootstrap/_list-group.scss | 130 +++
 .../skin/base/bootstrap/bootstrap/_media.scss |  66 ++
 .../base/bootstrap/bootstrap/_mixins.scss     |  40 +
 .../base/bootstrap/bootstrap/_modals.scss     | 150 +++
 .../base/bootstrap/bootstrap/_navbar.scss     | 662 +++++++++++++
 .../skin/base/bootstrap/bootstrap/_navs.scss  | 242 +++++
 .../base/bootstrap/bootstrap/_normalize.scss  | 424 +++++++++
 .../skin/base/bootstrap/bootstrap/_pager.scss |  54 ++
 .../base/bootstrap/bootstrap/_pagination.scss |  89 ++
 .../base/bootstrap/bootstrap/_panels.scss     | 271 ++++++
 .../base/bootstrap/bootstrap/_popovers.scss   | 131 +++
 .../skin/base/bootstrap/bootstrap/_print.scss | 101 ++
 .../bootstrap/bootstrap/_progress-bars.scss   |  87 ++
 .../bootstrap/_responsive-embed.scss          |  35 +
 .../bootstrap/_responsive-utilities.scss      | 179 ++++
 .../bootstrap/bootstrap/_scaffolding.scss     | 161 ++++
 .../base/bootstrap/bootstrap/_tables.scss     | 234 +++++
 .../skin/base/bootstrap/bootstrap/_theme.scss | 291 ++++++
 .../base/bootstrap/bootstrap/_thumbnails.scss |  38 +
 .../base/bootstrap/bootstrap/_tooltip.scss    | 101 ++
 .../skin/base/bootstrap/bootstrap/_type.scss  | 298 ++++++
 .../base/bootstrap/bootstrap/_utilities.scss  |  55 ++
 .../base/bootstrap/bootstrap/_variables.scss  | 874 ++++++++++++++++++
 .../skin/base/bootstrap/bootstrap/_wells.scss |  29 +
 .../bootstrap/bootstrap/mixins/_alerts.scss   |  14 +
 .../bootstrap/mixins/_background-variant.scss |  12 +
 .../bootstrap/mixins/_border-radius.scss      |  18 +
 .../bootstrap/bootstrap/mixins/_buttons.scss  |  65 ++
 .../bootstrap/mixins/_center-block.scss       |   7 +
 .../bootstrap/bootstrap/mixins/_clearfix.scss |  22 +
 .../bootstrap/bootstrap/mixins/_forms.scss    |  88 ++
 .../bootstrap/mixins/_gradients.scss          |  58 ++
 .../bootstrap/mixins/_grid-framework.scss     |  81 ++
 .../bootstrap/bootstrap/mixins/_grid.scss     | 122 +++
 .../bootstrap/mixins/_hide-text.scss          |  21 +
 .../bootstrap/bootstrap/mixins/_image.scss    |  33 +
 .../bootstrap/bootstrap/mixins/_labels.scss   |  12 +
 .../bootstrap/mixins/_list-group.scss         |  32 +
 .../bootstrap/mixins/_nav-divider.scss        |  10 +
 .../bootstrap/mixins/_nav-vertical-align.scss |   9 +
 .../bootstrap/bootstrap/mixins/_opacity.scss  |   8 +
 .../bootstrap/mixins/_pagination.scss         |  24 +
 .../bootstrap/bootstrap/mixins/_panels.scss   |  24 +
 .../bootstrap/mixins/_progress-bar.scss       |  10 +
 .../bootstrap/mixins/_reset-filter.scss       |   8 +
 .../bootstrap/mixins/_reset-text.scss         |  18 +
 .../bootstrap/bootstrap/mixins/_resize.scss   |   6 +
 .../mixins/_responsive-visibility.scss        |  21 +
 .../bootstrap/bootstrap/mixins/_size.scss     |  10 +
 .../bootstrap/mixins/_tab-focus.scss          |   9 +
 .../bootstrap/mixins/_table-row.scss          |  28 +
 .../bootstrap/mixins/_text-emphasis.scss      |  12 +
 .../bootstrap/mixins/_text-overflow.scss      |   8 +
 .../bootstrap/mixins/_vendor-prefixes.scss    | 222 +++++
 .../skin/base/components/controls-base.scss   | 144 +++
 .../skin/base/components/controls.scss        | 197 ++++
 .../skin/base/components/entity-info.scss     | 196 ++++
 .../skin/base/components/entity.scss          | 225 +++++
 src/mol-plugin/skin/base/components/help.scss |  27 +
 src/mol-plugin/skin/base/components/log.scss  |  98 ++
 src/mol-plugin/skin/base/components/misc.scss |  69 ++
 .../skin/base/components/panel.scss           | 142 +++
 .../skin/base/components/slider.scss          | 164 ++++
 .../skin/base/components/tasks.scss           | 132 +++
 .../skin/base/components/toast.scss           |  82 ++
 .../skin/base/components/transformer.scss     |  39 +
 .../skin/base/components/viewport.scss        |  93 ++
 src/mol-plugin/skin/base/icons.scss           | 135 +++
 src/mol-plugin/skin/base/layout.scss          |  29 +
 src/mol-plugin/skin/base/layout/common.scss   |  61 ++
 .../skin/base/layout/controls-landscape.scss  |  81 ++
 .../skin/base/layout/controls-outside.scss    |  89 ++
 .../skin/base/layout/controls-portrait.scss   |  99 ++
 src/mol-plugin/skin/base/logo.scss            |  50 +
 src/mol-plugin/skin/base/ui.scss              |  42 +
 src/mol-plugin/skin/base/variables.scss       |  78 ++
 src/mol-plugin/skin/blue.scss                 |   2 +
 src/mol-plugin/skin/colors/blue.scss          |  24 +
 src/mol-plugin/skin/colors/dark.scss          |  24 +
 src/mol-plugin/skin/colors/light.scss         |  30 +
 src/mol-plugin/skin/dark.scss                 |   2 +
 src/mol-plugin/skin/fonts/fontello.eot        | Bin 0 -> 49272 bytes
 src/mol-plugin/skin/fonts/fontello.svg        | 442 +++++++++
 src/mol-plugin/skin/fonts/fontello.ttf        | Bin 0 -> 49104 bytes
 src/mol-plugin/skin/fonts/fontello.woff       | Bin 0 -> 29392 bytes
 src/mol-plugin/skin/fonts/fontello.woff2      | Bin 0 -> 23892 bytes
 src/mol-plugin/skin/light.scss                |   2 +
 110 files changed, 11200 insertions(+)
 create mode 100644 src/mol-plugin/skin/base/base.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/_bootstrap-compass.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/_bootstrap-mincer.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/_bootstrap-sprockets.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/_bootstrap.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_alerts.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_badges.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_breadcrumbs.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_button-groups.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_buttons.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_carousel.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_close.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_code.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_component-animations.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_dropdowns.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_forms.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_glyphicons.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_grid.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_input-groups.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_jumbotron.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_labels.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_list-group.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_media.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_mixins.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_modals.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_navbar.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_navs.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_normalize.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_pager.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_pagination.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_panels.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_popovers.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_print.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_progress-bars.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_responsive-embed.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_responsive-utilities.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_scaffolding.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_tables.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_theme.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_thumbnails.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_tooltip.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_type.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_utilities.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_variables.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/_wells.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_alerts.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_background-variant.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_border-radius.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_buttons.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_center-block.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_clearfix.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_forms.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_gradients.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_grid-framework.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_grid.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_hide-text.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_image.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_labels.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_list-group.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_nav-divider.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_nav-vertical-align.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_opacity.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_pagination.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_panels.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_progress-bar.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_reset-filter.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_reset-text.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_resize.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_responsive-visibility.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_size.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_tab-focus.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_table-row.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_text-emphasis.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_text-overflow.scss
 create mode 100644 src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_vendor-prefixes.scss
 create mode 100644 src/mol-plugin/skin/base/components/controls-base.scss
 create mode 100644 src/mol-plugin/skin/base/components/controls.scss
 create mode 100644 src/mol-plugin/skin/base/components/entity-info.scss
 create mode 100644 src/mol-plugin/skin/base/components/entity.scss
 create mode 100644 src/mol-plugin/skin/base/components/help.scss
 create mode 100644 src/mol-plugin/skin/base/components/log.scss
 create mode 100644 src/mol-plugin/skin/base/components/misc.scss
 create mode 100644 src/mol-plugin/skin/base/components/panel.scss
 create mode 100644 src/mol-plugin/skin/base/components/slider.scss
 create mode 100644 src/mol-plugin/skin/base/components/tasks.scss
 create mode 100644 src/mol-plugin/skin/base/components/toast.scss
 create mode 100644 src/mol-plugin/skin/base/components/transformer.scss
 create mode 100644 src/mol-plugin/skin/base/components/viewport.scss
 create mode 100644 src/mol-plugin/skin/base/icons.scss
 create mode 100644 src/mol-plugin/skin/base/layout.scss
 create mode 100644 src/mol-plugin/skin/base/layout/common.scss
 create mode 100644 src/mol-plugin/skin/base/layout/controls-landscape.scss
 create mode 100644 src/mol-plugin/skin/base/layout/controls-outside.scss
 create mode 100644 src/mol-plugin/skin/base/layout/controls-portrait.scss
 create mode 100644 src/mol-plugin/skin/base/logo.scss
 create mode 100644 src/mol-plugin/skin/base/ui.scss
 create mode 100644 src/mol-plugin/skin/base/variables.scss
 create mode 100644 src/mol-plugin/skin/blue.scss
 create mode 100644 src/mol-plugin/skin/colors/blue.scss
 create mode 100644 src/mol-plugin/skin/colors/dark.scss
 create mode 100644 src/mol-plugin/skin/colors/light.scss
 create mode 100644 src/mol-plugin/skin/dark.scss
 create mode 100644 src/mol-plugin/skin/fonts/fontello.eot
 create mode 100644 src/mol-plugin/skin/fonts/fontello.svg
 create mode 100644 src/mol-plugin/skin/fonts/fontello.ttf
 create mode 100644 src/mol-plugin/skin/fonts/fontello.woff
 create mode 100644 src/mol-plugin/skin/fonts/fontello.woff2
 create mode 100644 src/mol-plugin/skin/light.scss

diff --git a/src/apps/viewer/index.html b/src/apps/viewer/index.html
index 9a57c1d04..6f2809d5e 100644
--- a/src/apps/viewer/index.html
+++ b/src/apps/viewer/index.html
@@ -26,6 +26,7 @@
                 padding: 2px;
             }
         </style>
+        <link rel="stylesheet" type="text/css" href="app.css" />
     </head>
     <body>
         <div id="app" style="position: absolute; width: 100%; height: 100%"></div>
diff --git a/src/apps/viewer/index.ts b/src/apps/viewer/index.ts
index d27e1d06e..6e103ee75 100644
--- a/src/apps/viewer/index.ts
+++ b/src/apps/viewer/index.ts
@@ -6,5 +6,6 @@
 
 import { createPlugin } from 'mol-plugin';
 import './index.html'
+require('mol-plugin/skin/light.scss')
 
 createPlugin(document.getElementById('app')!);
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/base.scss b/src/mol-plugin/skin/base/base.scss
new file mode 100644
index 000000000..93c90ce11
--- /dev/null
+++ b/src/mol-plugin/skin/base/base.scss
@@ -0,0 +1,44 @@
+@font-face {
+  font-family: 'fontello';
+  src: url('./fonts/fontello.eot?22556350');
+  src: url('./fonts/fontello.eot?22556350#iefix') format('embedded-opentype'),
+       url('./fonts/fontello.woff2?22556350') format('woff2'),
+       url('./fonts/fontello.woff?22556350') format('woff'),
+       url('./fonts/fontello.ttf?22556350') format('truetype'),
+       url('./fonts/fontello.svg?22556350#fontello') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+
+@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400italic,700);
+
+.msp-plugin {
+    font-family: "Helvetica Neue", "Source Sans Pro", Helvetica, Arial, sans-serif;
+    font-size: 14px;
+    line-height: 1.42857143;
+    
+    position: absolute;
+    left: 0;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    @import 'variables';
+    
+    // for bootstrap
+    $border-radius-base:        0;
+    $border-radius-large:       0;
+    $border-radius-small:       0;
+    
+    @import 'bootstrap/bootstrap';
+
+    @import 'icons';   
+    @import 'layout';
+    @import 'ui';
+    @import 'logo';
+        
+    .msp-plugin-content {
+        color: $font-color;
+    }
+    
+    background: $default-background;
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/bootstrap/_bootstrap-compass.scss b/src/mol-plugin/skin/base/bootstrap/_bootstrap-compass.scss
new file mode 100644
index 000000000..8fbc3cda5
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/_bootstrap-compass.scss
@@ -0,0 +1,9 @@
+@function twbs-font-path($path) {
+  @return font-url($path, true);
+}
+
+@function twbs-image-path($path) {
+  @return image-url($path, true);
+}
+
+$bootstrap-sass-asset-helper: true;
diff --git a/src/mol-plugin/skin/base/bootstrap/_bootstrap-mincer.scss b/src/mol-plugin/skin/base/bootstrap/_bootstrap-mincer.scss
new file mode 100644
index 000000000..0c4655e32
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/_bootstrap-mincer.scss
@@ -0,0 +1,19 @@
+// Mincer asset helper functions
+//
+// This must be imported into a .css.ejs.scss file.
+// Then, <% %>-interpolations will be parsed as strings by Sass, and evaluated by EJS after Sass compilation.
+
+
+@function twbs-font-path($path) {
+  // do something like following
+  // from "path/to/font.ext#suffix" to "<%- asset_path(path/to/font.ext)) + #suffix %>"
+  // from "path/to/font.ext?#suffix" to "<%- asset_path(path/to/font.ext)) + ?#suffix %>"
+  // or from "path/to/font.ext" just "<%- asset_path(path/to/font.ext)) %>"
+  @return "<%- asset_path("#{$path}".replace(/[#?].*$/, '')) + "#{$path}".replace(/(^[^#?]*)([#?]?.*$)/, '$2') %>";
+}
+
+@function twbs-image-path($file) {
+  @return "<%- asset_path("#{$file}") %>";
+}
+
+$bootstrap-sass-asset-helper: true;
diff --git a/src/mol-plugin/skin/base/bootstrap/_bootstrap-sprockets.scss b/src/mol-plugin/skin/base/bootstrap/_bootstrap-sprockets.scss
new file mode 100644
index 000000000..9fffc1eb4
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/_bootstrap-sprockets.scss
@@ -0,0 +1,9 @@
+@function twbs-font-path($path) {
+  @return font-path($path);
+}
+
+@function twbs-image-path($path) {
+  @return image-path($path);
+}
+
+$bootstrap-sass-asset-helper: true;
diff --git a/src/mol-plugin/skin/base/bootstrap/_bootstrap.scss b/src/mol-plugin/skin/base/bootstrap/_bootstrap.scss
new file mode 100644
index 000000000..932fea7ad
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/_bootstrap.scss
@@ -0,0 +1,57 @@
+/*!
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+// Core variables and mixins
+@import "bootstrap/variables";
+
+@import "bootstrap/mixins";
+
+// Reset and dependencies
+@import "bootstrap/normalize";
+//@import "bootstrap/print";
+//@import "bootstrap/glyphicons";
+
+// Core CSS
+@import "bootstrap/scaffolding";
+@import "bootstrap/type";
+//@import "bootstrap/code";
+//@import "bootstrap/grid";
+//@import "bootstrap/tables";
+@import "bootstrap/forms";
+@import "bootstrap/buttons";
+
+// Components
+//@import "bootstrap/component-animations";
+// @import "bootstrap/dropdowns";
+ @import "bootstrap/button-groups";
+ @import "bootstrap/input-groups";
+// @import "bootstrap/navs";
+// @import "bootstrap/navbar";
+// @import "bootstrap/breadcrumbs";
+// @import "bootstrap/pagination";
+// @import "bootstrap/pager";
+@import "bootstrap/labels";
+@import "bootstrap/badges";
+// @import "bootstrap/jumbotron";
+// @import "bootstrap/thumbnails";
+// @import "bootstrap/alerts";
+// @import "bootstrap/progress-bars";
+// @import "bootstrap/media";
+//@import "bootstrap/list-group";
+// @import "bootstrap/panels";
+// @import "bootstrap/responsive-embed";
+// @import "bootstrap/wells";
+//@import "bootstrap/close";
+
+// Components w/ JavaScript
+// @import "bootstrap/modals";
+// @import "bootstrap/tooltip";
+// @import "bootstrap/popovers";
+// @import "bootstrap/carousel";
+
+// // Utility classes
+ //@import "bootstrap/utilities";
+// @import "bootstrap/responsive-utilities";
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_alerts.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_alerts.scss
new file mode 100644
index 000000000..7d1e1fddd
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_alerts.scss
@@ -0,0 +1,73 @@
+//
+// Alerts
+// --------------------------------------------------
+
+
+// Base styles
+// -------------------------
+
+.alert {
+  padding: $alert-padding;
+  margin-bottom: $line-height-computed;
+  border: 1px solid transparent;
+  border-radius: $alert-border-radius;
+
+  // Headings for larger alerts
+  h4 {
+    margin-top: 0;
+    // Specified for the h4 to prevent conflicts of changing $headings-color
+    color: inherit;
+  }
+
+  // Provide class for links that match alerts
+  .alert-link {
+    font-weight: $alert-link-font-weight;
+  }
+
+  // Improve alignment and spacing of inner content
+  > p,
+  > ul {
+    margin-bottom: 0;
+  }
+
+  > p + p {
+    margin-top: 5px;
+  }
+}
+
+// Dismissible alerts
+//
+// Expand the right padding and account for the close button's positioning.
+
+.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
+.alert-dismissible {
+  padding-right: ($alert-padding + 20);
+
+  // Adjust close link position
+  .close {
+    position: relative;
+    top: -2px;
+    right: -21px;
+    color: inherit;
+  }
+}
+
+// Alternate styles
+//
+// Generate contextual modifier classes for colorizing the alert.
+
+.alert-success {
+  @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text);
+}
+
+.alert-info {
+  @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text);
+}
+
+.alert-warning {
+  @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text);
+}
+
+.alert-danger {
+  @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_badges.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_badges.scss
new file mode 100644
index 000000000..06d25a80e
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_badges.scss
@@ -0,0 +1,68 @@
+//
+// Badges
+// --------------------------------------------------
+
+
+// Base class
+.badge {
+  display: inline-block;
+  min-width: 10px;
+  padding: 3px 7px;
+  font-size: $font-size-small;
+  font-weight: $badge-font-weight;
+  color: $badge-color;
+  line-height: $badge-line-height;
+  vertical-align: middle;
+  white-space: nowrap;
+  text-align: center;
+  background-color: $badge-bg;
+  border-radius: $badge-border-radius;
+
+  // Empty badges collapse automatically (not available in IE8)
+  &:empty {
+    display: none;
+  }
+
+  // Quick fix for badges in buttons
+  .msp-btn & {
+    position: relative;
+    top: -1px;
+  }
+
+  .msp-btn-xs &,
+  .msp-btn-group-xs > .msp-btn & {
+    top: 0;
+    padding: 1px 5px;
+  }
+
+  // [converter] extracted a& to a.badge
+
+  // Account for badges in navs
+  .list-group-item.active > &,
+  .nav-pills > .active > a > & {
+    color: $badge-active-color;
+    background-color: $badge-active-bg;
+  }
+
+  .list-group-item > & {
+    float: right;
+  }
+
+  .list-group-item > & + & {
+    margin-right: 5px;
+  }
+
+  .nav-pills > li > a > & {
+    margin-left: 3px;
+  }
+}
+
+// Hover state, but only for links
+a.badge {
+  &:hover,
+  &:focus {
+    color: $badge-link-hover-color;
+    text-decoration: none;
+    cursor: pointer;
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_breadcrumbs.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_breadcrumbs.scss
new file mode 100644
index 000000000..b61f0c731
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_breadcrumbs.scss
@@ -0,0 +1,28 @@
+//
+// Breadcrumbs
+// --------------------------------------------------
+
+
+.breadcrumb {
+  padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal;
+  margin-bottom: $line-height-computed;
+  list-style: none;
+  background-color: $breadcrumb-bg;
+  border-radius: $border-radius-base;
+
+  > li {
+    display: inline-block;
+
+    + li:before {
+      // [converter] Workaround for https://github.com/sass/libsass/issues/1115
+      $nbsp: "\00a0";
+      content: "#{$breadcrumb-separator}#{$nbsp}"; // Unicode space added since inline-block means non-collapsing white-space
+      padding: 0 5px;
+      color: $breadcrumb-color;
+    }
+  }
+
+  > .active {
+    color: $breadcrumb-active-color;
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_button-groups.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_button-groups.scss
new file mode 100644
index 000000000..6f66f8fcf
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_button-groups.scss
@@ -0,0 +1,244 @@
+//
+// Button groups
+// --------------------------------------------------
+
+// Make the div behave like a button
+.msp-btn-group,
+.msp-btn-group-vertical {
+  position: relative;
+  display: inline-block;
+  vertical-align: middle; // match .msp-btn alignment given font-size hack above
+  > .msp-btn {
+    position: relative;
+    float: left;
+    // Bring the "active" button to the front
+    &:hover,
+    &:focus,
+    &:active,
+    &.active {
+      z-index: 2;
+    }
+  }
+}
+
+// Prevent double borders when buttons are next to each other
+.msp-btn-group {
+  .msp-btn + .msp-btn,
+  .msp-btn + .msp-btn-group,
+  .msp-btn-group + .msp-btn,
+  .msp-btn-group + .msp-btn-group {
+    margin-left: -1px;
+  }
+}
+
+// Optional: Group multiple button groups together for a toolbar
+.msp-btn-toolbar {
+  margin-left: -5px; // Offset the first child's margin
+  @include clearfix;
+
+  .msp-btn,
+  .msp-btn-group,
+  .input-group {
+    float: left;
+  }
+  > .msp-btn,
+  > .msp-btn-group,
+  > .input-group {
+    margin-left: 5px;
+  }
+}
+
+.msp-btn-group > .msp-btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+  border-radius: 0;
+}
+
+// Set corners individual because sometimes a single button can be in a .msp-btn-group and we need :first-child and :last-child to both match
+.msp-btn-group > .msp-btn:first-child {
+  margin-left: 0;
+  &:not(:last-child):not(.dropdown-toggle) {
+    @include border-right-radius(0);
+  }
+}
+// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
+.msp-btn-group > .msp-btn:last-child:not(:first-child),
+.msp-btn-group > .dropdown-toggle:not(:first-child) {
+  @include border-left-radius(0);
+}
+
+// Custom edits for including msp-btn-groups within msp-btn-groups (useful for including dropdown buttons within a msp-btn-group)
+.msp-btn-group > .msp-btn-group {
+  float: left;
+}
+.msp-btn-group > .msp-btn-group:not(:first-child):not(:last-child) > .msp-btn {
+  border-radius: 0;
+}
+.msp-btn-group > .msp-btn-group:first-child:not(:last-child) {
+  > .msp-btn:last-child,
+  > .dropdown-toggle {
+    @include border-right-radius(0);
+  }
+}
+.msp-btn-group > .msp-btn-group:last-child:not(:first-child) > .msp-btn:first-child {
+  @include border-left-radius(0);
+}
+
+// On active and open, don't show outline
+.msp-btn-group .dropdown-toggle:active,
+.msp-btn-group.open .dropdown-toggle {
+  outline: 0;
+}
+
+
+// Sizing
+//
+// Remix the default button sizing classes into new ones for easier manipulation.
+
+.msp-btn-group-xs > .msp-btn { @extend .msp-btn-xs; }
+.msp-btn-group-sm > .msp-btn { @extend .msp-btn-sm; }
+.msp-btn-group-lg > .msp-btn { @extend .msp-btn-lg; }
+
+
+// Split button dropdowns
+// ----------------------
+
+// Give the line between buttons some depth
+.msp-btn-group > .msp-btn + .dropdown-toggle {
+  padding-left: 8px;
+  padding-right: 8px;
+}
+.msp-btn-group > .msp-btn-lg + .dropdown-toggle {
+  padding-left: 12px;
+  padding-right: 12px;
+}
+
+// The clickable button for toggling the menu
+// Remove the gradient and set the same inset shadow as the :active state
+.msp-btn-group.open .dropdown-toggle {
+  @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+
+  // Show no shadow for `.msp-btn-link` since it has no other button styles.
+  &.msp-btn-link {
+    @include box-shadow(none);
+  }
+}
+
+
+// Reposition the caret
+.msp-btn .caret {
+  margin-left: 0;
+}
+// Carets in other button sizes
+.msp-btn-lg .caret {
+  border-width: $caret-width-large $caret-width-large 0;
+  border-bottom-width: 0;
+}
+// Upside down carets for .dropup
+.dropup .msp-btn-lg .caret {
+  border-width: 0 $caret-width-large $caret-width-large;
+}
+
+
+// Vertical button groups
+// ----------------------
+
+.msp-btn-group-vertical {
+  > .msp-btn,
+  > .msp-btn-group,
+  > .msp-btn-group > .msp-btn {
+    display: block;
+    float: none;
+    width: 100%;
+    max-width: 100%;
+  }
+
+  // Clear floats so dropdown menus can be properly placed
+  > .msp-btn-group {
+    @include clearfix;
+    > .msp-btn {
+      float: none;
+    }
+  }
+
+  > .msp-btn + .msp-btn,
+  > .msp-btn + .msp-btn-group,
+  > .msp-btn-group + .msp-btn,
+  > .msp-btn-group + .msp-btn-group {
+    margin-top: -1px;
+    margin-left: 0;
+  }
+}
+
+.msp-btn-group-vertical > .msp-btn {
+  &:not(:first-child):not(:last-child) {
+    border-radius: 0;
+  }
+  &:first-child:not(:last-child) {
+    @include border-top-radius($msp-btn-border-radius-base);
+    @include border-bottom-radius(0);
+  }
+  &:last-child:not(:first-child) {
+    @include border-top-radius(0);
+    @include border-bottom-radius($msp-btn-border-radius-base);
+  }
+}
+.msp-btn-group-vertical > .msp-btn-group:not(:first-child):not(:last-child) > .msp-btn {
+  border-radius: 0;
+}
+.msp-btn-group-vertical > .msp-btn-group:first-child:not(:last-child) {
+  > .msp-btn:last-child,
+  > .dropdown-toggle {
+    @include border-bottom-radius(0);
+  }
+}
+.msp-btn-group-vertical > .msp-btn-group:last-child:not(:first-child) > .msp-btn:first-child {
+  @include border-top-radius(0);
+}
+
+
+// Justified button groups
+// ----------------------
+
+.msp-btn-group-justified {
+  display: table;
+  width: 100%;
+  table-layout: fixed;
+  border-collapse: separate;
+  > .msp-btn,
+  > .msp-btn-group {
+    float: none;
+    display: table-cell;
+    width: 1%;
+  }
+  > .msp-btn-group .msp-btn {
+    width: 100%;
+  }
+
+  > .msp-btn-group .dropdown-menu {
+    left: auto;
+  }
+}
+
+
+// Checkbox and radio options
+//
+// In order to support the browser's form validation feedback, powered by the
+// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
+// `display: none;` or `visibility: hidden;` as that also hides the popover.
+// Simply visually hiding the inputs via `opacity` would leave them clickable in
+// certain cases which is prevented by using `clip` and `pointer-events`.
+// This way, we ensure a DOM element is visible to position the popover from.
+//
+// See https://github.com/twbs/bootstrap/pull/12794 and
+// https://github.com/twbs/bootstrap/pull/14559 for more information.
+
+[data-toggle="buttons"] {
+  > .msp-btn,
+  > .msp-btn-group > .msp-btn {
+    input[type="radio"],
+    input[type="checkbox"] {
+      position: absolute;
+      clip: rect(0,0,0,0);
+      pointer-events: none;
+    }
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_buttons.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_buttons.scss
new file mode 100644
index 000000000..03c0bfe44
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_buttons.scss
@@ -0,0 +1,168 @@
+//
+// Buttons
+// --------------------------------------------------
+
+
+// Base styles
+// --------------------------------------------------
+
+.msp-btn {
+  display: inline-block;
+  margin-bottom: 0; // For input.msp-btn
+  font-weight: $msp-btn-font-weight;
+  text-align: center;
+  vertical-align: middle;
+  touch-action: manipulation;
+  cursor: pointer;
+  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
+  border: 1px solid transparent;
+  white-space: nowrap;
+  @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $msp-btn-border-radius-base);
+  @include user-select(none);
+
+  &,
+  &:active,
+  &.active {
+    &:focus,
+    &.focus {
+      @include tab-focus;
+    }
+  }
+
+  &:hover,
+  &:focus,
+  &.focus {
+    color: $msp-btn-default-color;
+    text-decoration: none;
+  }
+
+  &:active,
+  &.active {
+    outline: 0;
+    background-image: none;
+    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+  }
+
+  &.disabled,
+  &[disabled],
+  fieldset[disabled] & {
+    cursor: $cursor-disabled;
+    @include opacity(.65);
+    @include box-shadow(none);
+  }
+
+  // [converter] extracted a& to a.msp-btn
+}
+
+a.msp-btn {
+  &.disabled,
+  fieldset[disabled] & {
+    pointer-events: none; // Future-proof disabling of clicks on `<a>` elements
+  }
+}
+
+
+// Alternate buttons
+// --------------------------------------------------
+
+.msp-btn-default {
+  @include button-variant($msp-btn-default-color, $msp-btn-default-bg, $msp-btn-default-border);
+}
+.msp-btn-primary {
+  @include button-variant($msp-btn-primary-color, $msp-btn-primary-bg, $msp-btn-primary-border);
+}
+// Success appears as green
+.msp-btn-success {
+  @include button-variant($msp-btn-success-color, $msp-btn-success-bg, $msp-btn-success-border);
+}
+// Info appears as blue-green
+.msp-btn-info {
+  @include button-variant($msp-btn-info-color, $msp-btn-info-bg, $msp-btn-info-border);
+}
+// Warning appears as orange
+.msp-btn-warning {
+  @include button-variant($msp-btn-warning-color, $msp-btn-warning-bg, $msp-btn-warning-border);
+}
+// Danger and error appear as red
+.msp-btn-danger {
+  @include button-variant($msp-btn-danger-color, $msp-btn-danger-bg, $msp-btn-danger-border);
+}
+
+
+// Link buttons
+// -------------------------
+
+// Make a button look and behave like a link
+.msp-btn-link {
+  color: $link-color;
+  font-weight: normal;
+  border-radius: 0;
+
+  &,
+  &:active,
+  &.active,
+  &[disabled],
+  fieldset[disabled] & {
+    background-color: transparent;
+    @include box-shadow(none);
+  }
+  &,
+  &:hover,
+  &:focus,
+  &:active {
+    border-color: transparent;
+  }
+  &:hover,
+  &:focus {
+    color: $link-hover-color;
+    text-decoration: $link-hover-decoration;
+    background-color: transparent;
+  }
+  &[disabled],
+  fieldset[disabled] & {
+    &:hover,
+    &:focus {
+      color: $msp-btn-link-disabled-color;
+      text-decoration: none;
+    }
+  }
+}
+
+
+// Button Sizes
+// --------------------------------------------------
+
+.msp-btn-lg {
+  // line-height: ensure even-numbered height of button next to large input
+  @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $msp-btn-border-radius-large);
+}
+.msp-btn-sm {
+  // line-height: ensure proper height of button next to small input
+  @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $msp-btn-border-radius-small);
+}
+.msp-btn-xs {
+  @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $msp-btn-border-radius-small);
+}
+
+
+// Block button
+// --------------------------------------------------
+
+.msp-btn-block {
+  display: block;
+  width: 100%;
+}
+
+// Vertically space out multiple block buttons
+.msp-btn-block + .msp-btn-block {
+  margin-top: 5px;
+}
+
+// Specificity overrides
+input[type="submit"],
+input[type="reset"],
+input[type="button"] {
+  &.msp-btn-block {
+    width: 100%;
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_carousel.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_carousel.scss
new file mode 100644
index 000000000..965a82e12
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_carousel.scss
@@ -0,0 +1,270 @@
+//
+// Carousel
+// --------------------------------------------------
+
+
+// Wrapper for the slide container and indicators
+.carousel {
+  position: relative;
+}
+
+.carousel-inner {
+  position: relative;
+  overflow: hidden;
+  width: 100%;
+
+  > .item {
+    display: none;
+    position: relative;
+    @include transition(.6s ease-in-out left);
+
+    // Account for jankitude on images
+    > img,
+    > a > img {
+      @include img-responsive;
+      line-height: 1;
+    }
+
+    // WebKit CSS3 transforms for supported devices
+    @media all and (transform-3d), (-webkit-transform-3d) {
+      @include transition-transform(0.6s ease-in-out);
+      @include backface-visibility(hidden);
+      @include perspective(1000px);
+
+      &.next,
+      &.active.right {
+        @include translate3d(100%, 0, 0);
+        left: 0;
+      }
+      &.prev,
+      &.active.left {
+        @include translate3d(-100%, 0, 0);
+        left: 0;
+      }
+      &.next.left,
+      &.prev.right,
+      &.active {
+        @include translate3d(0, 0, 0);
+        left: 0;
+      }
+    }
+  }
+
+  > .active,
+  > .next,
+  > .prev {
+    display: block;
+  }
+
+  > .active {
+    left: 0;
+  }
+
+  > .next,
+  > .prev {
+    position: absolute;
+    top: 0;
+    width: 100%;
+  }
+
+  > .next {
+    left: 100%;
+  }
+  > .prev {
+    left: -100%;
+  }
+  > .next.left,
+  > .prev.right {
+    left: 0;
+  }
+
+  > .active.left {
+    left: -100%;
+  }
+  > .active.right {
+    left: 100%;
+  }
+
+}
+
+// Left/right controls for nav
+// ---------------------------
+
+.carousel-control {
+  position: absolute;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  width: $carousel-control-width;
+  @include opacity($carousel-control-opacity);
+  font-size: $carousel-control-font-size;
+  color: $carousel-control-color;
+  text-align: center;
+  text-shadow: $carousel-text-shadow;
+  background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug
+  // We can't have this transition here because WebKit cancels the carousel
+  // animation if you trip this while in the middle of another animation.
+
+  // Set gradients for backgrounds
+  &.left {
+    @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001));
+  }
+  &.right {
+    left: auto;
+    right: 0;
+    @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5));
+  }
+
+  // Hover/focus state
+  &:hover,
+  &:focus {
+    outline: 0;
+    color: $carousel-control-color;
+    text-decoration: none;
+    @include opacity(.9);
+  }
+
+  // Toggles
+  .icon-prev,
+  .icon-next,
+  .glyphicon-chevron-left,
+  .glyphicon-chevron-right {
+    position: absolute;
+    top: 50%;
+    margin-top: -10px;
+    z-index: 5;
+    display: inline-block;
+  }
+  .icon-prev,
+  .glyphicon-chevron-left {
+    left: 50%;
+    margin-left: -10px;
+  }
+  .icon-next,
+  .glyphicon-chevron-right {
+    right: 50%;
+    margin-right: -10px;
+  }
+  .icon-prev,
+  .icon-next {
+    width:  20px;
+    height: 20px;
+    line-height: 1;
+    font-family: serif;
+  }
+
+
+  .icon-prev {
+    &:before {
+      content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
+    }
+  }
+  .icon-next {
+    &:before {
+      content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
+    }
+  }
+}
+
+// Optional indicator pips
+//
+// Add an unordered list with the following class and add a list item for each
+// slide your carousel holds.
+
+.carousel-indicators {
+  position: absolute;
+  bottom: 10px;
+  left: 50%;
+  z-index: 15;
+  width: 60%;
+  margin-left: -30%;
+  padding-left: 0;
+  list-style: none;
+  text-align: center;
+
+  li {
+    display: inline-block;
+    width:  10px;
+    height: 10px;
+    margin: 1px;
+    text-indent: -999px;
+    border: 1px solid $carousel-indicator-border-color;
+    border-radius: 10px;
+    cursor: pointer;
+
+    // IE8-9 hack for event handling
+    //
+    // Internet Explorer 8-9 does not support clicks on elements without a set
+    // `background-color`. We cannot use `filter` since that's not viewed as a
+    // background color by the browser. Thus, a hack is needed.
+    // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer
+    //
+    // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
+    // set alpha transparency for the best results possible.
+    background-color: #000 \9; // IE8
+    background-color: rgba(0,0,0,0); // IE9
+  }
+  .active {
+    margin: 0;
+    width:  12px;
+    height: 12px;
+    background-color: $carousel-indicator-active-bg;
+  }
+}
+
+// Optional captions
+// -----------------------------
+// Hidden by default for smaller viewports
+.carousel-caption {
+  position: absolute;
+  left: 15%;
+  right: 15%;
+  bottom: 20px;
+  z-index: 10;
+  padding-top: 20px;
+  padding-bottom: 20px;
+  color: $carousel-caption-color;
+  text-align: center;
+  text-shadow: $carousel-text-shadow;
+  & .msp-btn {
+    text-shadow: none; // No shadow for button elements in carousel-caption
+  }
+}
+
+
+// Scale up controls for tablets and up
+@media screen and (min-width: $screen-sm-min) {
+
+  // Scale up the controls a smidge
+  .carousel-control {
+    .glyphicon-chevron-left,
+    .glyphicon-chevron-right,
+    .icon-prev,
+    .icon-next {
+      width: ($carousel-control-font-size * 1.5);
+      height: ($carousel-control-font-size * 1.5);
+      margin-top: ($carousel-control-font-size / -2);
+      font-size: ($carousel-control-font-size * 1.5);
+    }
+    .glyphicon-chevron-left,
+    .icon-prev {
+      margin-left: ($carousel-control-font-size / -2);
+    }
+    .glyphicon-chevron-right,
+    .icon-next {
+      margin-right: ($carousel-control-font-size / -2);
+    }
+  }
+
+  // Show and left align the captions
+  .carousel-caption {
+    left: 20%;
+    right: 20%;
+    padding-bottom: 30px;
+  }
+
+  // Move up the indicators
+  .carousel-indicators {
+    bottom: 20px;
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_close.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_close.scss
new file mode 100644
index 000000000..3b74d8a97
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_close.scss
@@ -0,0 +1,36 @@
+//
+// Close icons
+// --------------------------------------------------
+
+
+.close {
+  float: right;
+  font-size: ($font-size-base * 1.5);
+  font-weight: $close-font-weight;
+  line-height: 1;
+  color: $close-color;
+  text-shadow: $close-text-shadow;
+  @include opacity(.2);
+
+  &:hover,
+  &:focus {
+    color: $close-color;
+    text-decoration: none;
+    cursor: pointer;
+    @include opacity(.5);
+  }
+
+  // [converter] extracted button& to button.close
+}
+
+// Additional properties for button version
+// iOS requires the button element instead of an anchor tag.
+// If you want the anchor version, it requires `href="#"`.
+// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
+button.close {
+  padding: 0;
+  cursor: pointer;
+  background: transparent;
+  border: 0;
+  -webkit-appearance: none;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_code.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_code.scss
new file mode 100644
index 000000000..caa5f0630
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_code.scss
@@ -0,0 +1,69 @@
+//
+// Code (inline and block)
+// --------------------------------------------------
+
+
+// Inline and block code styles
+code,
+kbd,
+pre,
+samp {
+  font-family: $font-family-monospace;
+}
+
+// Inline code
+code {
+  padding: 2px 4px;
+  font-size: 90%;
+  color: $code-color;
+  background-color: $code-bg;
+  border-radius: $border-radius-base;
+}
+
+// User input typically entered via keyboard
+kbd {
+  padding: 2px 4px;
+  font-size: 90%;
+  color: $kbd-color;
+  background-color: $kbd-bg;
+  border-radius: $border-radius-small;
+  box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
+
+  kbd {
+    padding: 0;
+    font-size: 100%;
+    font-weight: bold;
+    box-shadow: none;
+  }
+}
+
+// Blocks of code
+pre {
+  display: block;
+  padding: (($line-height-computed - 1) / 2);
+  margin: 0 0 ($line-height-computed / 2);
+  font-size: ($font-size-base - 1); // 14px to 13px
+  line-height: $line-height-base;
+  word-break: break-all;
+  word-wrap: break-word;
+  color: $pre-color;
+  background-color: $pre-bg;
+  border: 1px solid $pre-border-color;
+  border-radius: $border-radius-base;
+
+  // Account for some code outputs that place code tags in pre tags
+  code {
+    padding: 0;
+    font-size: inherit;
+    color: inherit;
+    white-space: pre-wrap;
+    background-color: transparent;
+    border-radius: 0;
+  }
+}
+
+// Enable scrollable blocks of code
+.pre-scrollable {
+  max-height: $pre-scrollable-max-height;
+  overflow-y: scroll;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_component-animations.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_component-animations.scss
new file mode 100644
index 000000000..ca3b43ca7
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_component-animations.scss
@@ -0,0 +1,37 @@
+//
+// Component animations
+// --------------------------------------------------
+
+// Heads up!
+//
+// We don't use the `.opacity()` mixin here since it causes a bug with text
+// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
+
+.fade {
+  opacity: 0;
+  @include transition(opacity .15s linear);
+  &.in {
+    opacity: 1;
+  }
+}
+
+.collapse {
+  display: none;
+
+  &.in      { display: block; }
+  // [converter] extracted tr&.in to tr.collapse.in
+  // [converter] extracted tbody&.in to tbody.collapse.in
+}
+
+tr.collapse.in    { display: table-row; }
+
+tbody.collapse.in { display: table-row-group; }
+
+.collapsing {
+  position: relative;
+  height: 0;
+  overflow: hidden;
+  @include transition-property(height, visibility);
+  @include transition-duration(.35s);
+  @include transition-timing-function(ease);
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_dropdowns.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_dropdowns.scss
new file mode 100644
index 000000000..aac84597a
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_dropdowns.scss
@@ -0,0 +1,216 @@
+//
+// Dropdown menus
+// --------------------------------------------------
+
+
+// Dropdown arrow/caret
+.caret {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-left: 2px;
+  vertical-align: middle;
+  border-top:   $caret-width-base dashed;
+  border-top:   $caret-width-base solid \9; // IE8
+  border-right: $caret-width-base solid transparent;
+  border-left:  $caret-width-base solid transparent;
+}
+
+// The dropdown wrapper (div)
+.dropup,
+.dropdown {
+  position: relative;
+}
+
+// Prevent the focus on the dropdown toggle when closing dropdowns
+.dropdown-toggle:focus {
+  outline: 0;
+}
+
+// The dropdown menu (ul)
+.dropdown-menu {
+  position: absolute;
+  top: 100%;
+  left: 0;
+  z-index: $zindex-dropdown;
+  display: none; // none by default, but block on "open" of the menu
+  float: left;
+  min-width: 160px;
+  padding: 5px 0;
+  margin: 2px 0 0; // override default ul
+  list-style: none;
+  font-size: $font-size-base;
+  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
+  background-color: $dropdown-bg;
+  border: 1px solid $dropdown-fallback-border; // IE8 fallback
+  border: 1px solid $dropdown-border;
+  border-radius: $border-radius-base;
+  @include box-shadow(0 6px 12px rgba(0,0,0,.175));
+  background-clip: padding-box;
+
+  // Aligns the dropdown menu to right
+  //
+  // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`
+  &.pull-right {
+    right: 0;
+    left: auto;
+  }
+
+  // Dividers (basically an hr) within the dropdown
+  .divider {
+    @include nav-divider($dropdown-divider-bg);
+  }
+
+  // Links within the dropdown menu
+  > li > a {
+    display: block;
+    padding: 3px 20px;
+    clear: both;
+    font-weight: normal;
+    line-height: $line-height-base;
+    color: $dropdown-link-color;
+    white-space: nowrap; // prevent links from randomly breaking onto new lines
+  }
+}
+
+// Hover/Focus state
+.dropdown-menu > li > a {
+  &:hover,
+  &:focus {
+    text-decoration: none;
+    color: $dropdown-link-hover-color;
+    background-color: $dropdown-link-hover-bg;
+  }
+}
+
+// Active state
+.dropdown-menu > .active > a {
+  &,
+  &:hover,
+  &:focus {
+    color: $dropdown-link-active-color;
+    text-decoration: none;
+    outline: 0;
+    background-color: $dropdown-link-active-bg;
+  }
+}
+
+// Disabled state
+//
+// Gray out text and ensure the hover/focus state remains gray
+
+.dropdown-menu > .disabled > a {
+  &,
+  &:hover,
+  &:focus {
+    color: $dropdown-link-disabled-color;
+  }
+
+  // Nuke hover/focus effects
+  &:hover,
+  &:focus {
+    text-decoration: none;
+    background-color: transparent;
+    background-image: none; // Remove CSS gradient
+    @include reset-filter;
+    cursor: $cursor-disabled;
+  }
+}
+
+// Open state for the dropdown
+.open {
+  // Show the menu
+  > .dropdown-menu {
+    display: block;
+  }
+
+  // Remove the outline when :focus is triggered
+  > a {
+    outline: 0;
+  }
+}
+
+// Menu positioning
+//
+// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
+// menu with the parent.
+.dropdown-menu-right {
+  left: auto; // Reset the default from `.dropdown-menu`
+  right: 0;
+}
+// With v3, we enabled auto-flipping if you have a dropdown within a right
+// aligned nav component. To enable the undoing of that, we provide an override
+// to restore the default dropdown menu alignment.
+//
+// This is only for left-aligning a dropdown menu within a `.navbar-right` or
+// `.pull-right` nav component.
+.dropdown-menu-left {
+  left: 0;
+  right: auto;
+}
+
+// Dropdown section headers
+.dropdown-header {
+  display: block;
+  padding: 3px 20px;
+  font-size: $font-size-small;
+  line-height: $line-height-base;
+  color: $dropdown-header-color;
+  white-space: nowrap; // as with > li > a
+}
+
+// Backdrop to catch body clicks on mobile, etc.
+.dropdown-backdrop {
+  position: fixed;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  top: 0;
+  z-index: ($zindex-dropdown - 10);
+}
+
+// Right aligned dropdowns
+.pull-right > .dropdown-menu {
+  right: 0;
+  left: auto;
+}
+
+// Allow for dropdowns to go bottom up (aka, dropup-menu)
+//
+// Just add .dropup after the standard .dropdown class and you're set, bro.
+// TODO: abstract this so that the navbar fixed styles are not placed here?
+
+.dropup,
+.navbar-fixed-bottom .dropdown {
+  // Reverse the caret
+  .caret {
+    border-top: 0;
+    border-bottom: $caret-width-base dashed;
+    border-bottom: $caret-width-base solid \9; // IE8
+    content: "";
+  }
+  // Different positioning for bottom up menu
+  .dropdown-menu {
+    top: auto;
+    bottom: 100%;
+    margin-bottom: 2px;
+  }
+}
+
+
+// Component alignment
+//
+// Reiterate per navbar.less and the modified component alignment there.
+
+@media (min-width: $grid-float-breakpoint) {
+  .navbar-right {
+    .dropdown-menu {
+      right: 0; left: auto;
+    }
+    // Necessary for overrides of the default right aligned menu.
+    // Will remove come v4 in all likelihood.
+    .dropdown-menu-left {
+      left: 0; right: auto;
+    }
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_forms.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_forms.scss
new file mode 100644
index 000000000..bd47375ad
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_forms.scss
@@ -0,0 +1,617 @@
+//
+// Forms
+// --------------------------------------------------
+
+
+// Normalize non-controls
+//
+// Restyle and baseline non-control form elements.
+
+fieldset {
+  padding: 0;
+  margin: 0;
+  border: 0;
+  // Chrome and Firefox set a `min-width: min-content;` on fieldsets,
+  // so we reset that to ensure it behaves more like a standard block element.
+  // See https://github.com/twbs/bootstrap/issues/12359.
+  min-width: 0;
+}
+
+legend {
+  display: block;
+  width: 100%;
+  padding: 0;
+  margin-bottom: $line-height-computed;
+  font-size: ($font-size-base * 1.5);
+  line-height: inherit;
+  color: $legend-color;
+  border: 0;
+  border-bottom: 1px solid $legend-border-color;
+}
+
+label {
+  display: inline-block;
+  max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
+  margin-bottom: 5px;
+  font-weight: bold;
+}
+
+
+// Normalize form controls
+//
+// While most of our form styles require extra classes, some basic normalization
+// is required to ensure optimum display with or without those classes to better
+// address browser inconsistencies.
+
+// Override content-box in Normalize (* isn't specific enough)
+input[type="search"] {
+  @include box-sizing(border-box);
+}
+
+// Position radios and checkboxes better
+input[type="radio"],
+input[type="checkbox"] {
+  margin: 4px 0 0;
+  margin-top: 1px \9; // IE8-9
+  line-height: normal;
+}
+
+input[type="file"] {
+  display: block;
+}
+
+// Make range inputs behave like textual form controls
+input[type="range"] {
+  display: block;
+  width: 100%;
+}
+
+// Make multiple select elements height not fixed
+select[multiple],
+select[size] {
+  height: auto;
+}
+
+// Focus for file, radio, and checkbox
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+  @include tab-focus;
+}
+
+// Adjust output element
+output {
+  display: block;
+  padding-top: ($padding-base-vertical + 1);
+  font-size: $font-size-base;
+  line-height: $line-height-base;
+  color: $input-color;
+}
+
+
+// Common form controls
+//
+// Shared size and type resets for form controls. Apply `.msp-form-control` to any
+// of the following form controls:
+//
+// select
+// textarea
+// input[type="text"]
+// input[type="password"]
+// input[type="datetime"]
+// input[type="datetime-local"]
+// input[type="date"]
+// input[type="month"]
+// input[type="time"]
+// input[type="week"]
+// input[type="number"]
+// input[type="email"]
+// input[type="url"]
+// input[type="search"]
+// input[type="tel"]
+// input[type="color"]
+
+.msp-form-control {
+  display: block;
+  width: 100%;
+  height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
+  padding: $padding-base-vertical $padding-base-horizontal;
+  font-size: $font-size-base;
+  line-height: $line-height-base;
+  color: $input-color;
+  background-color: $input-bg;
+  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
+  border: 1px solid $input-border;
+  border-radius: $input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.
+  //@include box-shadow(none);//inset 0 1px 1px rgba(0,0,0,.075));
+  //@include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);
+
+  // Customize the `:focus` state to imitate native WebKit styles.
+  @include msp-form-control-focus;
+
+  // Placeholder
+  @include placeholder;
+
+  // Unstyle the caret on `<select>`s in IE10+.
+  &::-ms-expand {
+    border: 0;
+    background-color: transparent;
+  }
+
+  // Disabled and read-only inputs
+  //
+  // HTML5 says that controls under a fieldset > legend:first-child won't be
+  // disabled if the fieldset is disabled. Due to implementation difficulty, we
+  // don't honor that edge case; we style them as disabled anyway.
+  &[disabled],
+  &[readonly],
+  fieldset[disabled] & {
+    background-color: $input-bg-disabled;
+    opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655
+  }
+
+  &[disabled],
+  fieldset[disabled] & {
+    cursor: $cursor-disabled;
+  }
+
+  // [converter] extracted textarea& to textarea.msp-form-control
+}
+
+// Reset height for `textarea`s
+textarea.msp-form-control {
+  height: auto;
+}
+
+
+// Search inputs in iOS
+//
+// This overrides the extra rounded corners on search inputs in iOS so that our
+// `.msp-form-control` class can properly style them. Note that this cannot simply
+// be added to `.msp-form-control` as it's not specific enough. For details, see
+// https://github.com/twbs/bootstrap/issues/11586.
+
+input[type="search"] {
+  -webkit-appearance: none;
+}
+
+
+// Special styles for iOS temporal inputs
+//
+// In Mobile Safari, setting `display: block` on temporal inputs causes the
+// text within the input to become vertically misaligned. As a workaround, we
+// set a pixel line-height that matches the given height of the input, but only
+// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
+//
+// Note that as of 8.3, iOS doesn't support `datetime` or `week`.
+
+@media screen and (-webkit-min-device-pixel-ratio: 0) {
+  input[type="date"],
+  input[type="time"],
+  input[type="datetime-local"],
+  input[type="month"] {
+    &.msp-form-control {
+      line-height: $input-height-base;
+    }
+
+    &.input-sm,
+    .input-group-sm & {
+      line-height: $input-height-small;
+    }
+
+    &.input-lg,
+    .input-group-lg & {
+      line-height: $input-height-large;
+    }
+  }
+}
+
+
+// Form groups
+//
+// Designed to help with the organization and spacing of vertical forms. For
+// horizontal forms, use the predefined grid classes.
+
+.form-group {
+  margin-bottom: $form-group-margin-bottom;
+}
+
+
+// Checkboxes and radios
+//
+// Indent the labels to position radios/checkboxes as hanging controls.
+
+.radio,
+.checkbox {
+  position: relative;
+  display: block;
+  margin-top: 10px;
+  margin-bottom: 10px;
+
+  label {
+    min-height: $line-height-computed; // Ensure the input doesn't jump when there is no text
+    padding-left: 20px;
+    margin-bottom: 0;
+    font-weight: normal;
+    cursor: pointer;
+  }
+}
+.radio input[type="radio"],
+.radio-inline input[type="radio"],
+.checkbox input[type="checkbox"],
+.checkbox-inline input[type="checkbox"] {
+  position: absolute;
+  margin-left: -20px;
+  margin-top: 4px \9;
+}
+
+.radio + .radio,
+.checkbox + .checkbox {
+  margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
+}
+
+// Radios and checkboxes on same line
+.radio-inline,
+.checkbox-inline {
+  position: relative;
+  display: inline-block;
+  padding-left: 20px;
+  margin-bottom: 0;
+  vertical-align: middle;
+  font-weight: normal;
+  cursor: pointer;
+}
+.radio-inline + .radio-inline,
+.checkbox-inline + .checkbox-inline {
+  margin-top: 0;
+  margin-left: 10px; // space out consecutive inline controls
+}
+
+// Apply same disabled cursor tweak as for inputs
+// Some special care is needed because <label>s don't inherit their parent's `cursor`.
+//
+// Note: Neither radios nor checkboxes can be readonly.
+input[type="radio"],
+input[type="checkbox"] {
+  &[disabled],
+  &.disabled,
+  fieldset[disabled] & {
+    cursor: $cursor-disabled;
+  }
+}
+// These classes are used directly on <label>s
+.radio-inline,
+.checkbox-inline {
+  &.disabled,
+  fieldset[disabled] & {
+    cursor: $cursor-disabled;
+  }
+}
+// These classes are used on elements with <label> descendants
+.radio,
+.checkbox {
+  &.disabled,
+  fieldset[disabled] & {
+    label {
+      cursor: $cursor-disabled;
+    }
+  }
+}
+
+
+// Static form control text
+//
+// Apply class to a `p` element to make any string of text align with labels in
+// a horizontal form layout.
+
+.msp-form-control-static {
+  // Size it appropriately next to real form controls
+  padding-top: ($padding-base-vertical + 1);
+  padding-bottom: ($padding-base-vertical + 1);
+  // Remove default margin from `p`
+  margin-bottom: 0;
+  min-height: ($line-height-computed + $font-size-base);
+
+  &.input-lg,
+  &.input-sm {
+    padding-left: 0;
+    padding-right: 0;
+  }
+}
+
+
+// Form control sizing
+//
+// Build on `.msp-form-control` with modifier classes to decrease or increase the
+// height and font-size of form controls.
+//
+// The `.form-group-* msp-form-control` variations are sadly duplicated to avoid the
+// issue documented in https://github.com/twbs/bootstrap/issues/15074.
+
+@include input-size('.input-sm', $input-height-small, $padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $input-border-radius-small);
+.form-group-sm {
+  .msp-form-control {
+    height: $input-height-small;
+    padding: $padding-small-vertical $padding-small-horizontal;
+    font-size: $font-size-small;
+    line-height: $line-height-small;
+    border-radius: $input-border-radius-small;
+  }
+  select.msp-form-control {
+    height: $input-height-small;
+    line-height: $input-height-small;
+  }
+  textarea.msp-form-control,
+  select[multiple].msp-form-control {
+    height: auto;
+  }
+  .msp-form-control-static {
+    height: $input-height-small;
+    min-height: ($line-height-computed + $font-size-small);
+    padding: ($padding-small-vertical + 1) $padding-small-horizontal;
+    font-size: $font-size-small;
+    line-height: $line-height-small;
+  }
+}
+
+@include input-size('.input-lg', $input-height-large, $padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $input-border-radius-large);
+.form-group-lg {
+  .msp-form-control {
+    height: $input-height-large;
+    padding: $padding-large-vertical $padding-large-horizontal;
+    font-size: $font-size-large;
+    line-height: $line-height-large;
+    border-radius: $input-border-radius-large;
+  }
+  select.msp-form-control {
+    height: $input-height-large;
+    line-height: $input-height-large;
+  }
+  textarea.msp-form-control,
+  select[multiple].msp-form-control {
+    height: auto;
+  }
+  .msp-form-control-static {
+    height: $input-height-large;
+    min-height: ($line-height-computed + $font-size-large);
+    padding: ($padding-large-vertical + 1) $padding-large-horizontal;
+    font-size: $font-size-large;
+    line-height: $line-height-large;
+  }
+}
+
+
+// Form control feedback states
+//
+// Apply contextual and semantic states to individual form controls.
+
+.has-feedback {
+  // Enable absolute positioning
+  position: relative;
+
+  // Ensure icons don't overlap text
+  .msp-form-control {
+    padding-right: ($input-height-base * 1.25);
+  }
+}
+// Feedback icon (requires .glyphicon classes)
+.msp-form-control-feedback {
+  position: absolute;
+  top: 0;
+  right: 0;
+  z-index: 2; // Ensure icon is above input groups
+  display: block;
+  width: $input-height-base;
+  height: $input-height-base;
+  line-height: $input-height-base;
+  text-align: center;
+  pointer-events: none;
+}
+.input-lg + .msp-form-control-feedback,
+.input-group-lg + .msp-form-control-feedback,
+.form-group-lg .msp-form-control + .msp-form-control-feedback {
+  width: $input-height-large;
+  height: $input-height-large;
+  line-height: $input-height-large;
+}
+.input-sm + .msp-form-control-feedback,
+.input-group-sm + .msp-form-control-feedback,
+.form-group-sm .msp-form-control + .msp-form-control-feedback {
+  width: $input-height-small;
+  height: $input-height-small;
+  line-height: $input-height-small;
+}
+
+// Feedback states
+.has-success {
+  @include msp-form-control-validation($state-success-text, $state-success-text, $state-success-bg);
+}
+.has-warning {
+  @include msp-form-control-validation($state-warning-text, $state-warning-text, $state-warning-bg);
+}
+.has-error {
+  @include msp-form-control-validation($state-danger-text, $state-danger-text, $state-danger-bg);
+}
+
+// Reposition feedback icon if input has visible label above
+.has-feedback label {
+
+  & ~ .msp-form-control-feedback {
+    top: ($line-height-computed + 5); // Height of the `label` and its margin
+  }
+  &.sr-only ~ .msp-form-control-feedback {
+    top: 0;
+  }
+}
+
+
+// Help text
+//
+// Apply to any element you wish to create light text for placement immediately
+// below a form control. Use for general help, formatting, or instructional text.
+
+.help-block {
+  display: block; // account for any element using help-block
+  margin-top: 5px;
+  margin-bottom: 10px;
+  color: lighten($text-color, 25%); // lighten the text some for contrast
+}
+
+
+// Inline forms
+//
+// Make forms appear inline(-block) by adding the `.form-inline` class. Inline
+// forms begin stacked on extra small (mobile) devices and then go inline when
+// viewports reach <768px.
+//
+// Requires wrapping inputs and labels with `.form-group` for proper display of
+// default HTML form controls and our custom form controls (e.g., input groups).
+//
+// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
+
+// [converter] extracted from `.form-inline` for libsass compatibility
+@mixin form-inline {
+
+  // Kick in the inline
+  @media (min-width: $screen-sm-min) {
+    // Inline-block all the things for "inline"
+    .form-group {
+      display: inline-block;
+      margin-bottom: 0;
+      vertical-align: middle;
+    }
+
+    // In navbar-form, allow folks to *not* use `.form-group`
+    .msp-form-control {
+      display: inline-block;
+      width: auto; // Prevent labels from stacking above inputs in `.form-group`
+      vertical-align: middle;
+    }
+
+    // Make static controls behave like regular ones
+    .msp-form-control-static {
+      display: inline-block;
+    }
+
+    .input-group {
+      display: inline-table;
+      vertical-align: middle;
+
+      .input-group-addon,
+      .input-group-msp-btn,
+      .msp-form-control {
+        width: auto;
+      }
+    }
+
+    // Input groups need that 100% width though
+    .input-group > .msp-form-control {
+      width: 100%;
+    }
+
+    .control-label {
+      margin-bottom: 0;
+      vertical-align: middle;
+    }
+
+    // Remove default margin on radios/checkboxes that were used for stacking, and
+    // then undo the floating of radios and checkboxes to match.
+    .radio,
+    .checkbox {
+      display: inline-block;
+      margin-top: 0;
+      margin-bottom: 0;
+      vertical-align: middle;
+
+      label {
+        padding-left: 0;
+      }
+    }
+    .radio input[type="radio"],
+    .checkbox input[type="checkbox"] {
+      position: relative;
+      margin-left: 0;
+    }
+
+    // Re-override the feedback icon.
+    .has-feedback .msp-form-control-feedback {
+      top: 0;
+    }
+  }
+}
+// [converter] extracted as `@mixin form-inline` for libsass compatibility
+.form-inline {
+  @include form-inline;
+}
+
+
+
+// Horizontal forms
+//
+// Horizontal forms are built on grid classes and allow you to create forms with
+// labels on the left and inputs on the right.
+
+.form-horizontal {
+
+  // Consistent vertical alignment of radios and checkboxes
+  //
+  // Labels also get some reset styles, but that is scoped to a media query below.
+  .radio,
+  .checkbox,
+  .radio-inline,
+  .checkbox-inline {
+    margin-top: 0;
+    margin-bottom: 0;
+    padding-top: ($padding-base-vertical + 1); // Default padding plus a border
+  }
+  // Account for padding we're adding to ensure the alignment and of help text
+  // and other content below items
+  .radio,
+  .checkbox {
+    min-height: ($line-height-computed + ($padding-base-vertical + 1));
+  }
+
+  // Make form groups behave like rows
+  .form-group {
+    @include make-row;
+  }
+
+  // Reset spacing and right align labels, but scope to media queries so that
+  // labels on narrow viewports stack the same as a default form example.
+  @media (min-width: $screen-sm-min) {
+    .control-label {
+      text-align: right;
+      margin-bottom: 0;
+      padding-top: ($padding-base-vertical + 1); // Default padding plus a border
+    }
+  }
+
+  // Validation states
+  //
+  // Reposition the icon because it's now within a grid column and columns have
+  // `position: relative;` on them. Also accounts for the grid gutter padding.
+  .has-feedback .msp-form-control-feedback {
+    right: floor(($grid-gutter-width / 2));
+  }
+
+  // Form group sizes
+  //
+  // Quick utility class for applying `.input-lg` and `.input-sm` styles to the
+  // inputs and labels within a `.form-group`.
+  .form-group-lg {
+    @media (min-width: $screen-sm-min) {
+      .control-label {
+        padding-top: ($padding-large-vertical + 1);
+        font-size: $font-size-large;
+      }
+    }
+  }
+  .form-group-sm {
+    @media (min-width: $screen-sm-min) {
+      .control-label {
+        padding-top: ($padding-small-vertical + 1);
+        font-size: $font-size-small;
+      }
+    }
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_glyphicons.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_glyphicons.scss
new file mode 100644
index 000000000..07a0fc91f
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_glyphicons.scss
@@ -0,0 +1,307 @@
+//
+// Glyphicons for Bootstrap
+//
+// Since icons are fonts, they can be placed anywhere text is placed and are
+// thus automatically sized to match the surrounding child. To use, create an
+// inline element with the appropriate classes, like so:
+//
+// <a href="#"><span class="glyphicon glyphicon-star"></span> Star</a>
+
+@at-root {
+  // Import the fonts
+  @font-face {
+    font-family: 'Glyphicons Halflings';
+    src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot'), '#{$icon-font-path}#{$icon-font-name}.eot'));
+    src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot?#iefix'), '#{$icon-font-path}#{$icon-font-name}.eot?#iefix')) format('embedded-opentype'),
+         url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff2'), '#{$icon-font-path}#{$icon-font-name}.woff2')) format('woff2'),
+         url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff'), '#{$icon-font-path}#{$icon-font-name}.woff')) format('woff'),
+         url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.ttf'), '#{$icon-font-path}#{$icon-font-name}.ttf')) format('truetype'),
+         url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}'), '#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}')) format('svg');
+  }
+}
+
+// Catchall baseclass
+.glyphicon {
+  position: relative;
+  top: 1px;
+  display: inline-block;
+  font-family: 'Glyphicons Halflings';
+  font-style: normal;
+  font-weight: normal;
+  line-height: 1;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+// Individual icons
+.glyphicon-asterisk               { &:before { content: "\002a"; } }
+.glyphicon-plus                   { &:before { content: "\002b"; } }
+.glyphicon-euro,
+.glyphicon-eur                    { &:before { content: "\20ac"; } }
+.glyphicon-minus                  { &:before { content: "\2212"; } }
+.glyphicon-cloud                  { &:before { content: "\2601"; } }
+.glyphicon-envelope               { &:before { content: "\2709"; } }
+.glyphicon-pencil                 { &:before { content: "\270f"; } }
+.glyphicon-glass                  { &:before { content: "\e001"; } }
+.glyphicon-music                  { &:before { content: "\e002"; } }
+.glyphicon-search                 { &:before { content: "\e003"; } }
+.glyphicon-heart                  { &:before { content: "\e005"; } }
+.glyphicon-star                   { &:before { content: "\e006"; } }
+.glyphicon-star-empty             { &:before { content: "\e007"; } }
+.glyphicon-user                   { &:before { content: "\e008"; } }
+.glyphicon-film                   { &:before { content: "\e009"; } }
+.glyphicon-th-large               { &:before { content: "\e010"; } }
+.glyphicon-th                     { &:before { content: "\e011"; } }
+.glyphicon-th-list                { &:before { content: "\e012"; } }
+.glyphicon-ok                     { &:before { content: "\e013"; } }
+.glyphicon-remove                 { &:before { content: "\e014"; } }
+.glyphicon-zoom-in                { &:before { content: "\e015"; } }
+.glyphicon-zoom-out               { &:before { content: "\e016"; } }
+.glyphicon-off                    { &:before { content: "\e017"; } }
+.glyphicon-signal                 { &:before { content: "\e018"; } }
+.glyphicon-cog                    { &:before { content: "\e019"; } }
+.glyphicon-trash                  { &:before { content: "\e020"; } }
+.glyphicon-home                   { &:before { content: "\e021"; } }
+.glyphicon-file                   { &:before { content: "\e022"; } }
+.glyphicon-time                   { &:before { content: "\e023"; } }
+.glyphicon-road                   { &:before { content: "\e024"; } }
+.glyphicon-download-alt           { &:before { content: "\e025"; } }
+.glyphicon-download               { &:before { content: "\e026"; } }
+.glyphicon-upload                 { &:before { content: "\e027"; } }
+.glyphicon-inbox                  { &:before { content: "\e028"; } }
+.glyphicon-play-circle            { &:before { content: "\e029"; } }
+.glyphicon-repeat                 { &:before { content: "\e030"; } }
+.glyphicon-refresh                { &:before { content: "\e031"; } }
+.glyphicon-list-alt               { &:before { content: "\e032"; } }
+.glyphicon-lock                   { &:before { content: "\e033"; } }
+.glyphicon-flag                   { &:before { content: "\e034"; } }
+.glyphicon-headphones             { &:before { content: "\e035"; } }
+.glyphicon-volume-off             { &:before { content: "\e036"; } }
+.glyphicon-volume-down            { &:before { content: "\e037"; } }
+.glyphicon-volume-up              { &:before { content: "\e038"; } }
+.glyphicon-qrcode                 { &:before { content: "\e039"; } }
+.glyphicon-barcode                { &:before { content: "\e040"; } }
+.glyphicon-tag                    { &:before { content: "\e041"; } }
+.glyphicon-tags                   { &:before { content: "\e042"; } }
+.glyphicon-book                   { &:before { content: "\e043"; } }
+.glyphicon-bookmark               { &:before { content: "\e044"; } }
+.glyphicon-print                  { &:before { content: "\e045"; } }
+.glyphicon-camera                 { &:before { content: "\e046"; } }
+.glyphicon-font                   { &:before { content: "\e047"; } }
+.glyphicon-bold                   { &:before { content: "\e048"; } }
+.glyphicon-italic                 { &:before { content: "\e049"; } }
+.glyphicon-text-height            { &:before { content: "\e050"; } }
+.glyphicon-text-width             { &:before { content: "\e051"; } }
+.glyphicon-align-left             { &:before { content: "\e052"; } }
+.glyphicon-align-center           { &:before { content: "\e053"; } }
+.glyphicon-align-right            { &:before { content: "\e054"; } }
+.glyphicon-align-justify          { &:before { content: "\e055"; } }
+.glyphicon-list                   { &:before { content: "\e056"; } }
+.glyphicon-indent-left            { &:before { content: "\e057"; } }
+.glyphicon-indent-right           { &:before { content: "\e058"; } }
+.glyphicon-facetime-video         { &:before { content: "\e059"; } }
+.glyphicon-picture                { &:before { content: "\e060"; } }
+.glyphicon-map-marker             { &:before { content: "\e062"; } }
+.glyphicon-adjust                 { &:before { content: "\e063"; } }
+.glyphicon-tint                   { &:before { content: "\e064"; } }
+.glyphicon-edit                   { &:before { content: "\e065"; } }
+.glyphicon-share                  { &:before { content: "\e066"; } }
+.glyphicon-check                  { &:before { content: "\e067"; } }
+.glyphicon-move                   { &:before { content: "\e068"; } }
+.glyphicon-step-backward          { &:before { content: "\e069"; } }
+.glyphicon-fast-backward          { &:before { content: "\e070"; } }
+.glyphicon-backward               { &:before { content: "\e071"; } }
+.glyphicon-play                   { &:before { content: "\e072"; } }
+.glyphicon-pause                  { &:before { content: "\e073"; } }
+.glyphicon-stop                   { &:before { content: "\e074"; } }
+.glyphicon-forward                { &:before { content: "\e075"; } }
+.glyphicon-fast-forward           { &:before { content: "\e076"; } }
+.glyphicon-step-forward           { &:before { content: "\e077"; } }
+.glyphicon-eject                  { &:before { content: "\e078"; } }
+.glyphicon-chevron-left           { &:before { content: "\e079"; } }
+.glyphicon-chevron-right          { &:before { content: "\e080"; } }
+.glyphicon-plus-sign              { &:before { content: "\e081"; } }
+.glyphicon-minus-sign             { &:before { content: "\e082"; } }
+.glyphicon-remove-sign            { &:before { content: "\e083"; } }
+.glyphicon-ok-sign                { &:before { content: "\e084"; } }
+.glyphicon-question-sign          { &:before { content: "\e085"; } }
+.glyphicon-info-sign              { &:before { content: "\e086"; } }
+.glyphicon-screenshot             { &:before { content: "\e087"; } }
+.glyphicon-remove-circle          { &:before { content: "\e088"; } }
+.glyphicon-ok-circle              { &:before { content: "\e089"; } }
+.glyphicon-ban-circle             { &:before { content: "\e090"; } }
+.glyphicon-arrow-left             { &:before { content: "\e091"; } }
+.glyphicon-arrow-right            { &:before { content: "\e092"; } }
+.glyphicon-arrow-up               { &:before { content: "\e093"; } }
+.glyphicon-arrow-down             { &:before { content: "\e094"; } }
+.glyphicon-share-alt              { &:before { content: "\e095"; } }
+.glyphicon-resize-full            { &:before { content: "\e096"; } }
+.glyphicon-resize-small           { &:before { content: "\e097"; } }
+.glyphicon-exclamation-sign       { &:before { content: "\e101"; } }
+.glyphicon-gift                   { &:before { content: "\e102"; } }
+.glyphicon-leaf                   { &:before { content: "\e103"; } }
+.glyphicon-fire                   { &:before { content: "\e104"; } }
+.glyphicon-eye-open               { &:before { content: "\e105"; } }
+.glyphicon-eye-close              { &:before { content: "\e106"; } }
+.glyphicon-warning-sign           { &:before { content: "\e107"; } }
+.glyphicon-plane                  { &:before { content: "\e108"; } }
+.glyphicon-calendar               { &:before { content: "\e109"; } }
+.glyphicon-random                 { &:before { content: "\e110"; } }
+.glyphicon-comment                { &:before { content: "\e111"; } }
+.glyphicon-magnet                 { &:before { content: "\e112"; } }
+.glyphicon-chevron-up             { &:before { content: "\e113"; } }
+.glyphicon-chevron-down           { &:before { content: "\e114"; } }
+.glyphicon-retweet                { &:before { content: "\e115"; } }
+.glyphicon-shopping-cart          { &:before { content: "\e116"; } }
+.glyphicon-folder-close           { &:before { content: "\e117"; } }
+.glyphicon-folder-open            { &:before { content: "\e118"; } }
+.glyphicon-resize-vertical        { &:before { content: "\e119"; } }
+.glyphicon-resize-horizontal      { &:before { content: "\e120"; } }
+.glyphicon-hdd                    { &:before { content: "\e121"; } }
+.glyphicon-bullhorn               { &:before { content: "\e122"; } }
+.glyphicon-bell                   { &:before { content: "\e123"; } }
+.glyphicon-certificate            { &:before { content: "\e124"; } }
+.glyphicon-thumbs-up              { &:before { content: "\e125"; } }
+.glyphicon-thumbs-down            { &:before { content: "\e126"; } }
+.glyphicon-hand-right             { &:before { content: "\e127"; } }
+.glyphicon-hand-left              { &:before { content: "\e128"; } }
+.glyphicon-hand-up                { &:before { content: "\e129"; } }
+.glyphicon-hand-down              { &:before { content: "\e130"; } }
+.glyphicon-circle-arrow-right     { &:before { content: "\e131"; } }
+.glyphicon-circle-arrow-left      { &:before { content: "\e132"; } }
+.glyphicon-circle-arrow-up        { &:before { content: "\e133"; } }
+.glyphicon-circle-arrow-down      { &:before { content: "\e134"; } }
+.glyphicon-globe                  { &:before { content: "\e135"; } }
+.glyphicon-wrench                 { &:before { content: "\e136"; } }
+.glyphicon-tasks                  { &:before { content: "\e137"; } }
+.glyphicon-filter                 { &:before { content: "\e138"; } }
+.glyphicon-briefcase              { &:before { content: "\e139"; } }
+.glyphicon-fullscreen             { &:before { content: "\e140"; } }
+.glyphicon-dashboard              { &:before { content: "\e141"; } }
+.glyphicon-paperclip              { &:before { content: "\e142"; } }
+.glyphicon-heart-empty            { &:before { content: "\e143"; } }
+.glyphicon-link                   { &:before { content: "\e144"; } }
+.glyphicon-phone                  { &:before { content: "\e145"; } }
+.glyphicon-pushpin                { &:before { content: "\e146"; } }
+.glyphicon-usd                    { &:before { content: "\e148"; } }
+.glyphicon-gbp                    { &:before { content: "\e149"; } }
+.glyphicon-sort                   { &:before { content: "\e150"; } }
+.glyphicon-sort-by-alphabet       { &:before { content: "\e151"; } }
+.glyphicon-sort-by-alphabet-alt   { &:before { content: "\e152"; } }
+.glyphicon-sort-by-order          { &:before { content: "\e153"; } }
+.glyphicon-sort-by-order-alt      { &:before { content: "\e154"; } }
+.glyphicon-sort-by-attributes     { &:before { content: "\e155"; } }
+.glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } }
+.glyphicon-unchecked              { &:before { content: "\e157"; } }
+.glyphicon-expand                 { &:before { content: "\e158"; } }
+.glyphicon-collapse-down          { &:before { content: "\e159"; } }
+.glyphicon-collapse-up            { &:before { content: "\e160"; } }
+.glyphicon-log-in                 { &:before { content: "\e161"; } }
+.glyphicon-flash                  { &:before { content: "\e162"; } }
+.glyphicon-log-out                { &:before { content: "\e163"; } }
+.glyphicon-new-window             { &:before { content: "\e164"; } }
+.glyphicon-record                 { &:before { content: "\e165"; } }
+.glyphicon-save                   { &:before { content: "\e166"; } }
+.glyphicon-open                   { &:before { content: "\e167"; } }
+.glyphicon-saved                  { &:before { content: "\e168"; } }
+.glyphicon-import                 { &:before { content: "\e169"; } }
+.glyphicon-export                 { &:before { content: "\e170"; } }
+.glyphicon-send                   { &:before { content: "\e171"; } }
+.glyphicon-floppy-disk            { &:before { content: "\e172"; } }
+.glyphicon-floppy-saved           { &:before { content: "\e173"; } }
+.glyphicon-floppy-remove          { &:before { content: "\e174"; } }
+.glyphicon-floppy-save            { &:before { content: "\e175"; } }
+.glyphicon-floppy-open            { &:before { content: "\e176"; } }
+.glyphicon-credit-card            { &:before { content: "\e177"; } }
+.glyphicon-transfer               { &:before { content: "\e178"; } }
+.glyphicon-cutlery                { &:before { content: "\e179"; } }
+.glyphicon-header                 { &:before { content: "\e180"; } }
+.glyphicon-compressed             { &:before { content: "\e181"; } }
+.glyphicon-earphone               { &:before { content: "\e182"; } }
+.glyphicon-phone-alt              { &:before { content: "\e183"; } }
+.glyphicon-tower                  { &:before { content: "\e184"; } }
+.glyphicon-stats                  { &:before { content: "\e185"; } }
+.glyphicon-sd-video               { &:before { content: "\e186"; } }
+.glyphicon-hd-video               { &:before { content: "\e187"; } }
+.glyphicon-subtitles              { &:before { content: "\e188"; } }
+.glyphicon-sound-stereo           { &:before { content: "\e189"; } }
+.glyphicon-sound-dolby            { &:before { content: "\e190"; } }
+.glyphicon-sound-5-1              { &:before { content: "\e191"; } }
+.glyphicon-sound-6-1              { &:before { content: "\e192"; } }
+.glyphicon-sound-7-1              { &:before { content: "\e193"; } }
+.glyphicon-copyright-mark         { &:before { content: "\e194"; } }
+.glyphicon-registration-mark      { &:before { content: "\e195"; } }
+.glyphicon-cloud-download         { &:before { content: "\e197"; } }
+.glyphicon-cloud-upload           { &:before { content: "\e198"; } }
+.glyphicon-tree-conifer           { &:before { content: "\e199"; } }
+.glyphicon-tree-deciduous         { &:before { content: "\e200"; } }
+.glyphicon-cd                     { &:before { content: "\e201"; } }
+.glyphicon-save-file              { &:before { content: "\e202"; } }
+.glyphicon-open-file              { &:before { content: "\e203"; } }
+.glyphicon-level-up               { &:before { content: "\e204"; } }
+.glyphicon-copy                   { &:before { content: "\e205"; } }
+.glyphicon-paste                  { &:before { content: "\e206"; } }
+// The following 2 Glyphicons are omitted for the time being because
+// they currently use Unicode codepoints that are outside the
+// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle
+// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.
+// Notably, the bug affects some older versions of the Android Browser.
+// More info: https://github.com/twbs/bootstrap/issues/10106
+// .glyphicon-door                   { &:before { content: "\1f6aa"; } }
+// .glyphicon-key                    { &:before { content: "\1f511"; } }
+.glyphicon-alert                  { &:before { content: "\e209"; } }
+.glyphicon-equalizer              { &:before { content: "\e210"; } }
+.glyphicon-king                   { &:before { content: "\e211"; } }
+.glyphicon-queen                  { &:before { content: "\e212"; } }
+.glyphicon-pawn                   { &:before { content: "\e213"; } }
+.glyphicon-bishop                 { &:before { content: "\e214"; } }
+.glyphicon-knight                 { &:before { content: "\e215"; } }
+.glyphicon-baby-formula           { &:before { content: "\e216"; } }
+.glyphicon-tent                   { &:before { content: "\26fa"; } }
+.glyphicon-blackboard             { &:before { content: "\e218"; } }
+.glyphicon-bed                    { &:before { content: "\e219"; } }
+.glyphicon-apple                  { &:before { content: "\f8ff"; } }
+.glyphicon-erase                  { &:before { content: "\e221"; } }
+.glyphicon-hourglass              { &:before { content: "\231b"; } }
+.glyphicon-lamp                   { &:before { content: "\e223"; } }
+.glyphicon-duplicate              { &:before { content: "\e224"; } }
+.glyphicon-piggy-bank             { &:before { content: "\e225"; } }
+.glyphicon-scissors               { &:before { content: "\e226"; } }
+.glyphicon-bitcoin                { &:before { content: "\e227"; } }
+.glyphicon-btc                    { &:before { content: "\e227"; } }
+.glyphicon-xbt                    { &:before { content: "\e227"; } }
+.glyphicon-yen                    { &:before { content: "\00a5"; } }
+.glyphicon-jpy                    { &:before { content: "\00a5"; } }
+.glyphicon-ruble                  { &:before { content: "\20bd"; } }
+.glyphicon-rub                    { &:before { content: "\20bd"; } }
+.glyphicon-scale                  { &:before { content: "\e230"; } }
+.glyphicon-ice-lolly              { &:before { content: "\e231"; } }
+.glyphicon-ice-lolly-tasted       { &:before { content: "\e232"; } }
+.glyphicon-education              { &:before { content: "\e233"; } }
+.glyphicon-option-horizontal      { &:before { content: "\e234"; } }
+.glyphicon-option-vertical        { &:before { content: "\e235"; } }
+.glyphicon-menu-hamburger         { &:before { content: "\e236"; } }
+.glyphicon-modal-window           { &:before { content: "\e237"; } }
+.glyphicon-oil                    { &:before { content: "\e238"; } }
+.glyphicon-grain                  { &:before { content: "\e239"; } }
+.glyphicon-sunglasses             { &:before { content: "\e240"; } }
+.glyphicon-text-size              { &:before { content: "\e241"; } }
+.glyphicon-text-color             { &:before { content: "\e242"; } }
+.glyphicon-text-background        { &:before { content: "\e243"; } }
+.glyphicon-object-align-top       { &:before { content: "\e244"; } }
+.glyphicon-object-align-bottom    { &:before { content: "\e245"; } }
+.glyphicon-object-align-horizontal{ &:before { content: "\e246"; } }
+.glyphicon-object-align-left      { &:before { content: "\e247"; } }
+.glyphicon-object-align-vertical  { &:before { content: "\e248"; } }
+.glyphicon-object-align-right     { &:before { content: "\e249"; } }
+.glyphicon-triangle-right         { &:before { content: "\e250"; } }
+.glyphicon-triangle-left          { &:before { content: "\e251"; } }
+.glyphicon-triangle-bottom        { &:before { content: "\e252"; } }
+.glyphicon-triangle-top           { &:before { content: "\e253"; } }
+.glyphicon-console                { &:before { content: "\e254"; } }
+.glyphicon-superscript            { &:before { content: "\e255"; } }
+.glyphicon-subscript              { &:before { content: "\e256"; } }
+.glyphicon-menu-left              { &:before { content: "\e257"; } }
+.glyphicon-menu-right             { &:before { content: "\e258"; } }
+.glyphicon-menu-down              { &:before { content: "\e259"; } }
+.glyphicon-menu-up                { &:before { content: "\e260"; } }
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_grid.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_grid.scss
new file mode 100644
index 000000000..b15ca27bb
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_grid.scss
@@ -0,0 +1,84 @@
+//
+// Grid system
+// --------------------------------------------------
+
+
+// Container widths
+//
+// Set the container width, and override it for fixed navbars in media queries.
+
+.container {
+  @include container-fixed;
+
+  @media (min-width: $screen-sm-min) {
+    width: $container-sm;
+  }
+  @media (min-width: $screen-md-min) {
+    width: $container-md;
+  }
+  @media (min-width: $screen-lg-min) {
+    width: $container-lg;
+  }
+}
+
+
+// Fluid container
+//
+// Utilizes the mixin meant for fixed width containers, but without any defined
+// width for fluid, full width layouts.
+
+.container-fluid {
+  @include container-fixed;
+}
+
+
+// Row
+//
+// Rows contain and clear the floats of your columns.
+
+.row {
+  @include make-row;
+}
+
+
+// Columns
+//
+// Common styles for small and large grid columns
+
+@include make-grid-columns;
+
+
+// Extra small grid
+//
+// Columns, offsets, pushes, and pulls for extra small devices like
+// smartphones.
+
+@include make-grid(xs);
+
+
+// Small grid
+//
+// Columns, offsets, pushes, and pulls for the small device range, from phones
+// to tablets.
+
+@media (min-width: $screen-sm-min) {
+  @include make-grid(sm);
+}
+
+
+// Medium grid
+//
+// Columns, offsets, pushes, and pulls for the desktop device range.
+
+@media (min-width: $screen-md-min) {
+  @include make-grid(md);
+}
+
+
+// Large grid
+//
+// Columns, offsets, pushes, and pulls for the large desktop device range.
+
+@media (min-width: $screen-lg-min) {
+  @include make-grid(lg);
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_input-groups.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_input-groups.scss
new file mode 100644
index 000000000..cda75934c
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_input-groups.scss
@@ -0,0 +1,171 @@
+//
+// Input groups
+// --------------------------------------------------
+
+// Base styles
+// -------------------------
+.input-group {
+  position: relative; // For dropdowns
+  display: table;
+  border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
+
+  // Undo padding and float of grid classes
+  &[class*="col-"] {
+    float: none;
+    padding-left: 0;
+    padding-right: 0;
+  }
+
+  .msp-form-control {
+    // Ensure that the input is always above the *appended* addon button for
+    // proper border colors.
+    position: relative;
+    z-index: 2;
+
+    // IE9 fubars the placeholder attribute in text inputs and the arrows on
+    // select elements in input groups. To fix it, we float the input. Details:
+    // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855
+    float: left;
+
+    width: 100%;
+    margin-bottom: 0;
+    
+    &:focus {
+      z-index: 3;
+    }
+  }
+}
+
+// Sizing options
+//
+// Remix the default form control sizing classes into new ones for easier
+// manipulation.
+
+.input-group-lg > .msp-form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-msp-btn > .msp-btn {
+  @extend .input-lg;
+}
+.input-group-sm > .msp-form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-msp-btn > .msp-btn {
+  @extend .input-sm;
+}
+
+
+// Display as table-cell
+// -------------------------
+.input-group-addon,
+.input-group-msp-btn,
+.input-group .msp-form-control {
+  display: table-cell;
+
+  &:not(:first-child):not(:last-child) {
+    border-radius: 0;
+  }
+}
+// Addon and addon wrapper for buttons
+.input-group-addon,
+.input-group-msp-btn {
+  width: 1%;
+  white-space: nowrap;
+  vertical-align: middle; // Match the inputs
+}
+
+// Text input groups
+// -------------------------
+.input-group-addon {
+  padding: $padding-base-vertical $padding-base-horizontal;
+  font-size: $font-size-base;
+  font-weight: normal;
+  line-height: 1;
+  color: $input-color;
+  text-align: center;
+  background-color: $input-group-addon-bg;
+  border: 1px solid $input-group-addon-border-color;
+  border-radius: $input-border-radius;
+
+  // Sizing
+  &.input-sm {
+    padding: $padding-small-vertical $padding-small-horizontal;
+    font-size: $font-size-small;
+    border-radius: $input-border-radius-small;
+  }
+  &.input-lg {
+    padding: $padding-large-vertical $padding-large-horizontal;
+    font-size: $font-size-large;
+    border-radius: $input-border-radius-large;
+  }
+
+  // Nuke default margins from checkboxes and radios to vertically center within.
+  input[type="radio"],
+  input[type="checkbox"] {
+    margin-top: 0;
+  }
+}
+
+// Reset rounded corners
+.input-group .msp-form-control:first-child,
+.input-group-addon:first-child,
+.input-group-msp-btn:first-child > .msp-btn,
+.input-group-msp-btn:first-child > .msp-btn-group > .msp-btn,
+.input-group-msp-btn:first-child > .dropdown-toggle,
+.input-group-msp-btn:last-child > .msp-btn:not(:last-child):not(.dropdown-toggle),
+.input-group-msp-btn:last-child > .msp-btn-group:not(:last-child) > .msp-btn {
+  @include border-right-radius(0);
+}
+.input-group-addon:first-child {
+  border-right: 0;
+}
+.input-group .msp-form-control:last-child,
+.input-group-addon:last-child,
+.input-group-msp-btn:last-child > .msp-btn,
+.input-group-msp-btn:last-child > .msp-btn-group > .msp-btn,
+.input-group-msp-btn:last-child > .dropdown-toggle,
+.input-group-msp-btn:first-child > .msp-btn:not(:first-child),
+.input-group-msp-btn:first-child > .msp-btn-group:not(:first-child) > .msp-btn {
+  @include border-left-radius(0);
+}
+.input-group-addon:last-child {
+  border-left: 0;
+}
+
+// Button input groups
+// -------------------------
+.input-group-msp-btn {
+  position: relative;
+  // Jankily prevent input button groups from wrapping with `white-space` and
+  // `font-size` in combination with `inline-block` on buttons.
+  font-size: 0;
+  white-space: nowrap;
+
+  // Negative margin for spacing, position for bringing hovered/focused/actived
+  // element above the siblings.
+  > .msp-btn {
+    position: relative;
+    + .msp-btn {
+      margin-left: -1px;
+    }
+    // Bring the "active" button to the front
+    &:hover,
+    &:focus,
+    &:active {
+      z-index: 2;
+    }
+  }
+
+  // Negative margin to only have a 1px border between the two
+  &:first-child {
+    > .msp-btn,
+    > .msp-btn-group {
+      margin-right: -1px;
+    }
+  }
+  &:last-child {
+    > .msp-btn,
+    > .msp-btn-group {
+      z-index: 2;
+      margin-left: -1px;
+    }
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_jumbotron.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_jumbotron.scss
new file mode 100644
index 000000000..a27da4738
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_jumbotron.scss
@@ -0,0 +1,54 @@
+//
+// Jumbotron
+// --------------------------------------------------
+
+
+.jumbotron {
+  padding-top:    $jumbotron-padding;
+  padding-bottom: $jumbotron-padding;
+  margin-bottom: $jumbotron-padding;
+  color: $jumbotron-color;
+  background-color: $jumbotron-bg;
+
+  h1,
+  .h1 {
+    color: $jumbotron-heading-color;
+  }
+
+  p {
+    margin-bottom: ($jumbotron-padding / 2);
+    font-size: $jumbotron-font-size;
+    font-weight: 200;
+  }
+
+  > hr {
+    border-top-color: darken($jumbotron-bg, 10%);
+  }
+
+  .container &,
+  .container-fluid & {
+    border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container
+    padding-left:  ($grid-gutter-width / 2);
+    padding-right: ($grid-gutter-width / 2);
+  }
+
+  .container {
+    max-width: 100%;
+  }
+
+  @media screen and (min-width: $screen-sm-min) {
+    padding-top:    ($jumbotron-padding * 1.6);
+    padding-bottom: ($jumbotron-padding * 1.6);
+
+    .container &,
+    .container-fluid & {
+      padding-left:  ($jumbotron-padding * 2);
+      padding-right: ($jumbotron-padding * 2);
+    }
+
+    h1,
+    .h1 {
+      font-size: $jumbotron-heading-font-size;
+    }
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_labels.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_labels.scss
new file mode 100644
index 000000000..8afe53e37
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_labels.scss
@@ -0,0 +1,66 @@
+//
+// Labels
+// --------------------------------------------------
+
+.label {
+  display: inline;
+  padding: .2em .6em .3em;
+  font-size: 75%;
+  font-weight: bold;
+  line-height: 1;
+  color: $label-color;
+  text-align: center;
+  white-space: nowrap;
+  vertical-align: baseline;
+  border-radius: .25em;
+
+  // [converter] extracted a& to a.label
+
+  // Empty labels collapse automatically (not available in IE8)
+  &:empty {
+    display: none;
+  }
+
+  // Quick fix for labels in buttons
+  .msp-btn & {
+    position: relative;
+    top: -1px;
+  }
+}
+
+// Add hover effects, but only for links
+a.label {
+  &:hover,
+  &:focus {
+    color: $label-link-hover-color;
+    text-decoration: none;
+    cursor: pointer;
+  }
+}
+
+// Colors
+// Contextual variations (linked labels get darker on :hover)
+
+.label-default {
+  @include label-variant($label-default-bg);
+}
+
+.label-primary {
+  @include label-variant($label-primary-bg);
+}
+
+.label-success {
+  @include label-variant($label-success-bg);
+}
+
+.label-info {
+  @include label-variant($label-info-bg);
+}
+
+.label-warning {
+  @include label-variant($label-warning-bg);
+}
+
+.label-danger {
+  @include label-variant($label-danger-bg);
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_list-group.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_list-group.scss
new file mode 100644
index 000000000..7cb83aab0
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_list-group.scss
@@ -0,0 +1,130 @@
+//
+// List groups
+// --------------------------------------------------
+
+
+// Base class
+//
+// Easily usable on <ul>, <ol>, or <div>.
+
+.list-group {
+  // No need to set list-style: none; since .list-group-item is block level
+  margin-bottom: 20px;
+  padding-left: 0; // reset padding because ul and ol
+}
+
+
+// Individual list items
+//
+// Use on `li`s or `div`s within the `.list-group` parent.
+
+.list-group-item {
+  position: relative;
+  display: block;
+  padding: 10px 15px;
+  // Place the border on the list items and negative margin up for better styling
+  margin-bottom: -1px;
+  background-color: $list-group-bg;
+  border: 1px solid $list-group-border;
+
+  // Round the first and last items
+  &:first-child {
+    @include border-top-radius($list-group-border-radius);
+  }
+  &:last-child {
+    margin-bottom: 0;
+    @include border-bottom-radius($list-group-border-radius);
+  }
+}
+
+
+// Interactive list items
+//
+// Use anchor or button elements instead of `li`s or `div`s to create interactive items.
+// Includes an extra `.active` modifier class for showing selected items.
+
+a.list-group-item,
+button.list-group-item {
+  color: $list-group-link-color;
+
+  .list-group-item-heading {
+    color: $list-group-link-heading-color;
+  }
+
+  // Hover state
+  &:hover,
+  &:focus {
+    text-decoration: none;
+    color: $list-group-link-hover-color;
+    background-color: $list-group-hover-bg;
+  }
+}
+
+button.list-group-item {
+  width: 100%;
+  text-align: left;
+}
+
+.list-group-item {
+  // Disabled state
+  &.disabled,
+  &.disabled:hover,
+  &.disabled:focus {
+    background-color: $list-group-disabled-bg;
+    color: $list-group-disabled-color;
+    cursor: $cursor-disabled;
+
+    // Force color to inherit for custom content
+    .list-group-item-heading {
+      color: inherit;
+    }
+    .list-group-item-text {
+      color: $list-group-disabled-text-color;
+    }
+  }
+
+  // Active class on item itself, not parent
+  &.active,
+  &.active:hover,
+  &.active:focus {
+    z-index: 2; // Place active items above their siblings for proper border styling
+    color: $list-group-active-color;
+    background-color: $list-group-active-bg;
+    border-color: $list-group-active-border;
+
+    // Force color to inherit for custom content
+    .list-group-item-heading,
+    .list-group-item-heading > small,
+    .list-group-item-heading > .small {
+      color: inherit;
+    }
+    .list-group-item-text {
+      color: $list-group-active-text-color;
+    }
+  }
+}
+
+
+// Contextual variants
+//
+// Add modifier classes to change text and background color on individual items.
+// Organizationally, this must come after the `:hover` states.
+
+@include list-group-item-variant(success, $state-success-bg, $state-success-text);
+@include list-group-item-variant(info, $state-info-bg, $state-info-text);
+@include list-group-item-variant(warning, $state-warning-bg, $state-warning-text);
+@include list-group-item-variant(danger, $state-danger-bg, $state-danger-text);
+
+
+// Custom content options
+//
+// Extra classes for creating well-formatted content within `.list-group-item`s.
+
+.list-group-item-heading {
+  margin-top: 0;
+  margin-bottom: 5px;
+}
+.list-group-item-text {
+  margin-bottom: 0;
+  line-height: 1.3;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_media.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_media.scss
new file mode 100644
index 000000000..8c835e861
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_media.scss
@@ -0,0 +1,66 @@
+.media {
+  // Proper spacing between instances of .media
+  margin-top: 15px;
+
+  &:first-child {
+    margin-top: 0;
+  }
+}
+
+.media,
+.media-body {
+  zoom: 1;
+  overflow: hidden;
+}
+
+.media-body {
+  width: 10000px;
+}
+
+.media-object {
+  display: block;
+
+  // Fix collapse in webkit from max-width: 100% and display: table-cell.
+  &.img-thumbnail {
+    max-width: none;
+  }
+}
+
+.media-right,
+.media > .pull-right {
+  padding-left: 10px;
+}
+
+.media-left,
+.media > .pull-left {
+  padding-right: 10px;
+}
+
+.media-left,
+.media-right,
+.media-body {
+  display: table-cell;
+  vertical-align: top;
+}
+
+.media-middle {
+  vertical-align: middle;
+}
+
+.media-bottom {
+  vertical-align: bottom;
+}
+
+// Reset margins on headings for tighter default spacing
+.media-heading {
+  margin-top: 0;
+  margin-bottom: 5px;
+}
+
+// Media list variation
+//
+// Undo default ul/ol styles
+.media-list {
+  padding-left: 0;
+  list-style: none;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_mixins.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_mixins.scss
new file mode 100644
index 000000000..78cd5aa0f
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_mixins.scss
@@ -0,0 +1,40 @@
+// Mixins
+// --------------------------------------------------
+
+// Utilities
+@import "mixins/hide-text";
+@import "mixins/opacity";
+@import "mixins/image";
+@import "mixins/labels";
+@import "mixins/reset-filter";
+@import "mixins/resize";
+@import "mixins/responsive-visibility";
+@import "mixins/size";
+@import "mixins/tab-focus";
+@import "mixins/reset-text";
+@import "mixins/text-emphasis";
+@import "mixins/text-overflow";
+@import "mixins/vendor-prefixes";
+
+// Components
+@import "mixins/alerts";
+@import "mixins/buttons";
+@import "mixins/panels";
+@import "mixins/pagination";
+@import "mixins/list-group";
+@import "mixins/nav-divider";
+@import "mixins/forms";
+@import "mixins/progress-bar";
+@import "mixins/table-row";
+
+// Skins
+@import "mixins/background-variant";
+@import "mixins/border-radius";
+@import "mixins/gradients";
+
+// Layout
+@import "mixins/clearfix";
+@import "mixins/center-block";
+@import "mixins/nav-vertical-align";
+@import "mixins/grid-framework";
+@import "mixins/grid";
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_modals.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_modals.scss
new file mode 100644
index 000000000..0aa400422
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_modals.scss
@@ -0,0 +1,150 @@
+//
+// Modals
+// --------------------------------------------------
+
+// .modal-open      - body class for killing the scroll
+// .modal           - container to scroll within
+// .modal-dialog    - positioning shell for the actual modal
+// .modal-content   - actual modal w/ bg and corners and shit
+
+// Kill the scroll on the body
+.modal-open {
+  overflow: hidden;
+}
+
+// Container that the modal scrolls within
+.modal {
+  display: none;
+  overflow: hidden;
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: $zindex-modal;
+  -webkit-overflow-scrolling: touch;
+
+  // Prevent Chrome on Windows from adding a focus outline. For details, see
+  // https://github.com/twbs/bootstrap/pull/10951.
+  outline: 0;
+
+  // When fading in the modal, animate it to slide down
+  &.fade .modal-dialog {
+    @include translate(0, -25%);
+    @include transition-transform(0.3s ease-out);
+  }
+  &.in .modal-dialog { @include translate(0, 0) }
+}
+.modal-open .modal {
+  overflow-x: hidden;
+  overflow-y: auto;
+}
+
+// Shell div to position the modal with bottom padding
+.modal-dialog {
+  position: relative;
+  width: auto;
+  margin: 10px;
+}
+
+// Actual modal
+.modal-content {
+  position: relative;
+  background-color: $modal-content-bg;
+  border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
+  border: 1px solid $modal-content-border-color;
+  border-radius: $border-radius-large;
+  @include box-shadow(0 3px 9px rgba(0,0,0,.5));
+  background-clip: padding-box;
+  // Remove focus outline from opened modal
+  outline: 0;
+}
+
+// Modal background
+.modal-backdrop {
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: $zindex-modal-background;
+  background-color: $modal-backdrop-bg;
+  // Fade for backdrop
+  &.fade { @include opacity(0); }
+  &.in { @include opacity($modal-backdrop-opacity); }
+}
+
+// Modal header
+// Top section of the modal w/ title and dismiss
+.modal-header {
+  padding: $modal-title-padding;
+  border-bottom: 1px solid $modal-header-border-color;
+  @include clearfix;
+}
+// Close icon
+.modal-header .close {
+  margin-top: -2px;
+}
+
+// Title text within header
+.modal-title {
+  margin: 0;
+  line-height: $modal-title-line-height;
+}
+
+// Modal body
+// Where all modal content resides (sibling of .modal-header and .modal-footer)
+.modal-body {
+  position: relative;
+  padding: $modal-inner-padding;
+}
+
+// Footer (for actions)
+.modal-footer {
+  padding: $modal-inner-padding;
+  text-align: right; // right align buttons
+  border-top: 1px solid $modal-footer-border-color;
+  @include clearfix; // clear it in case folks use .pull-* classes on buttons
+
+  // Properly space out buttons
+  .msp-btn + .msp-btn {
+    margin-left: 5px;
+    margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
+  }
+  // but override that for button groups
+  .msp-btn-group .msp-btn + .msp-btn {
+    margin-left: -1px;
+  }
+  // and override it for block buttons as well
+  .msp-btn-block + .msp-btn-block {
+    margin-left: 0;
+  }
+}
+
+// Measure scrollbar width for padding body during modal show/hide
+.modal-scrollbar-measure {
+  position: absolute;
+  top: -9999px;
+  width: 50px;
+  height: 50px;
+  overflow: scroll;
+}
+
+// Scale up the modal
+@media (min-width: $screen-sm-min) {
+  // Automatically set modal's width for larger viewports
+  .modal-dialog {
+    width: $modal-md;
+    margin: 30px auto;
+  }
+  .modal-content {
+    @include box-shadow(0 5px 15px rgba(0,0,0,.5));
+  }
+
+  // Modal sizes
+  .modal-sm { width: $modal-sm; }
+}
+
+@media (min-width: $screen-md-min) {
+  .modal-lg { width: $modal-lg; }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_navbar.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_navbar.scss
new file mode 100644
index 000000000..6f8cc029c
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_navbar.scss
@@ -0,0 +1,662 @@
+//
+// Navbars
+// --------------------------------------------------
+
+
+// Wrapper and base class
+//
+// Provide a static navbar from which we expand to create full-width, fixed, and
+// other navbar variations.
+
+.navbar {
+  position: relative;
+  min-height: $navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
+  margin-bottom: $navbar-margin-bottom;
+  border: 1px solid transparent;
+
+  // Prevent floats from breaking the navbar
+  @include clearfix;
+
+  @media (min-width: $grid-float-breakpoint) {
+    border-radius: $navbar-border-radius;
+  }
+}
+
+
+// Navbar heading
+//
+// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
+// styling of responsive aspects.
+
+.navbar-header {
+  @include clearfix;
+
+  @media (min-width: $grid-float-breakpoint) {
+    float: left;
+  }
+}
+
+
+// Navbar collapse (body)
+//
+// Group your navbar content into this for easy collapsing and expanding across
+// various device sizes. By default, this content is collapsed when <768px, but
+// will expand past that for a horizontal display.
+//
+// To start (on mobile devices) the navbar links, forms, and buttons are stacked
+// vertically and include a `max-height` to overflow in case you have too much
+// content for the user's viewport.
+
+.navbar-collapse {
+  overflow-x: visible;
+  padding-right: $navbar-padding-horizontal;
+  padding-left:  $navbar-padding-horizontal;
+  border-top: 1px solid transparent;
+  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
+  @include clearfix;
+  -webkit-overflow-scrolling: touch;
+
+  &.in {
+    overflow-y: auto;
+  }
+
+  @media (min-width: $grid-float-breakpoint) {
+    width: auto;
+    border-top: 0;
+    box-shadow: none;
+
+    &.collapse {
+      display: block !important;
+      height: auto !important;
+      padding-bottom: 0; // Override default setting
+      overflow: visible !important;
+    }
+
+    &.in {
+      overflow-y: visible;
+    }
+
+    // Undo the collapse side padding for navbars with containers to ensure
+    // alignment of right-aligned contents.
+    .navbar-fixed-top &,
+    .navbar-static-top &,
+    .navbar-fixed-bottom & {
+      padding-left: 0;
+      padding-right: 0;
+    }
+  }
+}
+
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+  .navbar-collapse {
+    max-height: $navbar-collapse-max-height;
+
+    @media (max-device-width: $screen-xs-min) and (orientation: landscape) {
+      max-height: 200px;
+    }
+  }
+}
+
+
+// Both navbar header and collapse
+//
+// When a container is present, change the behavior of the header and collapse.
+
+.container,
+.container-fluid {
+  > .navbar-header,
+  > .navbar-collapse {
+    margin-right: -$navbar-padding-horizontal;
+    margin-left:  -$navbar-padding-horizontal;
+
+    @media (min-width: $grid-float-breakpoint) {
+      margin-right: 0;
+      margin-left:  0;
+    }
+  }
+}
+
+
+//
+// Navbar alignment options
+//
+// Display the navbar across the entirety of the page or fixed it to the top or
+// bottom of the page.
+
+// Static top (unfixed, but 100% wide) navbar
+.navbar-static-top {
+  z-index: $zindex-navbar;
+  border-width: 0 0 1px;
+
+  @media (min-width: $grid-float-breakpoint) {
+    border-radius: 0;
+  }
+}
+
+// Fix the top/bottom navbars when screen real estate supports it
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+  position: fixed;
+  right: 0;
+  left: 0;
+  z-index: $zindex-navbar-fixed;
+
+  // Undo the rounded corners
+  @media (min-width: $grid-float-breakpoint) {
+    border-radius: 0;
+  }
+}
+.navbar-fixed-top {
+  top: 0;
+  border-width: 0 0 1px;
+}
+.navbar-fixed-bottom {
+  bottom: 0;
+  margin-bottom: 0; // override .navbar defaults
+  border-width: 1px 0 0;
+}
+
+
+// Brand/project name
+
+.navbar-brand {
+  float: left;
+  padding: $navbar-padding-vertical $navbar-padding-horizontal;
+  font-size: $font-size-large;
+  line-height: $line-height-computed;
+  height: $navbar-height;
+
+  &:hover,
+  &:focus {
+    text-decoration: none;
+  }
+
+  > img {
+    display: block;
+  }
+
+  @media (min-width: $grid-float-breakpoint) {
+    .navbar > .container &,
+    .navbar > .container-fluid & {
+      margin-left: -$navbar-padding-horizontal;
+    }
+  }
+}
+
+
+// Navbar toggle
+//
+// Custom button for toggling the `.navbar-collapse`, powered by the collapse
+// JavaScript plugin.
+
+.navbar-toggle {
+  position: relative;
+  float: right;
+  margin-right: $navbar-padding-horizontal;
+  padding: 9px 10px;
+  @include navbar-vertical-align(34px);
+  background-color: transparent;
+  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
+  border: 1px solid transparent;
+  border-radius: $border-radius-base;
+
+  // We remove the `outline` here, but later compensate by attaching `:hover`
+  // styles to `:focus`.
+  &:focus {
+    outline: 0;
+  }
+
+  // Bars
+  .icon-bar {
+    display: block;
+    width: 22px;
+    height: 2px;
+    border-radius: 1px;
+  }
+  .icon-bar + .icon-bar {
+    margin-top: 4px;
+  }
+
+  @media (min-width: $grid-float-breakpoint) {
+    display: none;
+  }
+}
+
+
+// Navbar nav links
+//
+// Builds on top of the `.nav` components with its own modifier class to make
+// the nav the full height of the horizontal nav (above 768px).
+
+.navbar-nav {
+  margin: ($navbar-padding-vertical / 2) (-$navbar-padding-horizontal);
+
+  > li > a {
+    padding-top:    10px;
+    padding-bottom: 10px;
+    line-height: $line-height-computed;
+  }
+
+  @media (max-width: $grid-float-breakpoint-max) {
+    // Dropdowns get custom display when collapsed
+    .open .dropdown-menu {
+      position: static;
+      float: none;
+      width: auto;
+      margin-top: 0;
+      background-color: transparent;
+      border: 0;
+      box-shadow: none;
+      > li > a,
+      .dropdown-header {
+        padding: 5px 15px 5px 25px;
+      }
+      > li > a {
+        line-height: $line-height-computed;
+        &:hover,
+        &:focus {
+          background-image: none;
+        }
+      }
+    }
+  }
+
+  // Uncollapse the nav
+  @media (min-width: $grid-float-breakpoint) {
+    float: left;
+    margin: 0;
+
+    > li {
+      float: left;
+      > a {
+        padding-top:    $navbar-padding-vertical;
+        padding-bottom: $navbar-padding-vertical;
+      }
+    }
+  }
+}
+
+
+// Navbar form
+//
+// Extension of the `.form-inline` with some extra flavor for optimum display in
+// our navbars.
+
+.navbar-form {
+  margin-left: -$navbar-padding-horizontal;
+  margin-right: -$navbar-padding-horizontal;
+  padding: 10px $navbar-padding-horizontal;
+  border-top: 1px solid transparent;
+  border-bottom: 1px solid transparent;
+  $shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
+  @include box-shadow($shadow);
+
+  // Mixin behavior for optimum display
+  @include form-inline;
+
+  .form-group {
+    @media (max-width: $grid-float-breakpoint-max) {
+      margin-bottom: 5px;
+
+      &:last-child {
+        margin-bottom: 0;
+      }
+    }
+  }
+
+  // Vertically center in expanded, horizontal navbar
+  @include navbar-vertical-align($input-height-base);
+
+  // Undo 100% width for pull classes
+  @media (min-width: $grid-float-breakpoint) {
+    width: auto;
+    border: 0;
+    margin-left: 0;
+    margin-right: 0;
+    padding-top: 0;
+    padding-bottom: 0;
+    @include box-shadow(none);
+  }
+}
+
+
+// Dropdown menus
+
+// Menu position and menu carets
+.navbar-nav > li > .dropdown-menu {
+  margin-top: 0;
+  @include border-top-radius(0);
+}
+// Menu position and menu caret support for dropups via extra dropup class
+.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+  margin-bottom: 0;
+  @include border-top-radius($navbar-border-radius);
+  @include border-bottom-radius(0);
+}
+
+
+// Buttons in navbars
+//
+// Vertically center a button within a navbar (when *not* in a form).
+
+.navbar-msp-btn {
+  @include navbar-vertical-align($input-height-base);
+
+  &.msp-btn-sm {
+    @include navbar-vertical-align($input-height-small);
+  }
+  &.msp-btn-xs {
+    @include navbar-vertical-align(22);
+  }
+}
+
+
+// Text in navbars
+//
+// Add a class to make any element properly align itself vertically within the navbars.
+
+.navbar-text {
+  @include navbar-vertical-align($line-height-computed);
+
+  @media (min-width: $grid-float-breakpoint) {
+    float: left;
+    margin-left: $navbar-padding-horizontal;
+    margin-right: $navbar-padding-horizontal;
+  }
+}
+
+
+// Component alignment
+//
+// Repurpose the pull utilities as their own navbar utilities to avoid specificity
+// issues with parents and chaining. Only do this when the navbar is uncollapsed
+// though so that navbar contents properly stack and align in mobile.
+//
+// Declared after the navbar components to ensure more specificity on the margins.
+
+@media (min-width: $grid-float-breakpoint) {
+  .navbar-left {
+    float: left !important;
+  }
+  .navbar-right {
+    float: right !important;
+  margin-right: -$navbar-padding-horizontal;
+
+    ~ .navbar-right {
+      margin-right: 0;
+    }
+  }
+}
+
+
+// Alternate navbars
+// --------------------------------------------------
+
+// Default navbar
+.navbar-default {
+  background-color: $navbar-default-bg;
+  border-color: $navbar-default-border;
+
+  .navbar-brand {
+    color: $navbar-default-brand-color;
+    &:hover,
+    &:focus {
+      color: $navbar-default-brand-hover-color;
+      background-color: $navbar-default-brand-hover-bg;
+    }
+  }
+
+  .navbar-text {
+    color: $navbar-default-color;
+  }
+
+  .navbar-nav {
+    > li > a {
+      color: $navbar-default-link-color;
+
+      &:hover,
+      &:focus {
+        color: $navbar-default-link-hover-color;
+        background-color: $navbar-default-link-hover-bg;
+      }
+    }
+    > .active > a {
+      &,
+      &:hover,
+      &:focus {
+        color: $navbar-default-link-active-color;
+        background-color: $navbar-default-link-active-bg;
+      }
+    }
+    > .disabled > a {
+      &,
+      &:hover,
+      &:focus {
+        color: $navbar-default-link-disabled-color;
+        background-color: $navbar-default-link-disabled-bg;
+      }
+    }
+  }
+
+  .navbar-toggle {
+    border-color: $navbar-default-toggle-border-color;
+    &:hover,
+    &:focus {
+      background-color: $navbar-default-toggle-hover-bg;
+    }
+    .icon-bar {
+      background-color: $navbar-default-toggle-icon-bar-bg;
+    }
+  }
+
+  .navbar-collapse,
+  .navbar-form {
+    border-color: $navbar-default-border;
+  }
+
+  // Dropdown menu items
+  .navbar-nav {
+    // Remove background color from open dropdown
+    > .open > a {
+      &,
+      &:hover,
+      &:focus {
+        background-color: $navbar-default-link-active-bg;
+        color: $navbar-default-link-active-color;
+      }
+    }
+
+    @media (max-width: $grid-float-breakpoint-max) {
+      // Dropdowns get custom display when collapsed
+      .open .dropdown-menu {
+        > li > a {
+          color: $navbar-default-link-color;
+          &:hover,
+          &:focus {
+            color: $navbar-default-link-hover-color;
+            background-color: $navbar-default-link-hover-bg;
+          }
+        }
+        > .active > a {
+          &,
+          &:hover,
+          &:focus {
+            color: $navbar-default-link-active-color;
+            background-color: $navbar-default-link-active-bg;
+          }
+        }
+        > .disabled > a {
+          &,
+          &:hover,
+          &:focus {
+            color: $navbar-default-link-disabled-color;
+            background-color: $navbar-default-link-disabled-bg;
+          }
+        }
+      }
+    }
+  }
+
+
+  // Links in navbars
+  //
+  // Add a class to ensure links outside the navbar nav are colored correctly.
+
+  .navbar-link {
+    color: $navbar-default-link-color;
+    &:hover {
+      color: $navbar-default-link-hover-color;
+    }
+  }
+
+  .msp-btn-link {
+    color: $navbar-default-link-color;
+    &:hover,
+    &:focus {
+      color: $navbar-default-link-hover-color;
+    }
+    &[disabled],
+    fieldset[disabled] & {
+      &:hover,
+      &:focus {
+        color: $navbar-default-link-disabled-color;
+      }
+    }
+  }
+}
+
+// Inverse navbar
+
+.navbar-inverse {
+  background-color: $navbar-inverse-bg;
+  border-color: $navbar-inverse-border;
+
+  .navbar-brand {
+    color: $navbar-inverse-brand-color;
+    &:hover,
+    &:focus {
+      color: $navbar-inverse-brand-hover-color;
+      background-color: $navbar-inverse-brand-hover-bg;
+    }
+  }
+
+  .navbar-text {
+    color: $navbar-inverse-color;
+  }
+
+  .navbar-nav {
+    > li > a {
+      color: $navbar-inverse-link-color;
+
+      &:hover,
+      &:focus {
+        color: $navbar-inverse-link-hover-color;
+        background-color: $navbar-inverse-link-hover-bg;
+      }
+    }
+    > .active > a {
+      &,
+      &:hover,
+      &:focus {
+        color: $navbar-inverse-link-active-color;
+        background-color: $navbar-inverse-link-active-bg;
+      }
+    }
+    > .disabled > a {
+      &,
+      &:hover,
+      &:focus {
+        color: $navbar-inverse-link-disabled-color;
+        background-color: $navbar-inverse-link-disabled-bg;
+      }
+    }
+  }
+
+  // Darken the responsive nav toggle
+  .navbar-toggle {
+    border-color: $navbar-inverse-toggle-border-color;
+    &:hover,
+    &:focus {
+      background-color: $navbar-inverse-toggle-hover-bg;
+    }
+    .icon-bar {
+      background-color: $navbar-inverse-toggle-icon-bar-bg;
+    }
+  }
+
+  .navbar-collapse,
+  .navbar-form {
+    border-color: darken($navbar-inverse-bg, 7%);
+  }
+
+  // Dropdowns
+  .navbar-nav {
+    > .open > a {
+      &,
+      &:hover,
+      &:focus {
+        background-color: $navbar-inverse-link-active-bg;
+        color: $navbar-inverse-link-active-color;
+      }
+    }
+
+    @media (max-width: $grid-float-breakpoint-max) {
+      // Dropdowns get custom display
+      .open .dropdown-menu {
+        > .dropdown-header {
+          border-color: $navbar-inverse-border;
+        }
+        .divider {
+          background-color: $navbar-inverse-border;
+        }
+        > li > a {
+          color: $navbar-inverse-link-color;
+          &:hover,
+          &:focus {
+            color: $navbar-inverse-link-hover-color;
+            background-color: $navbar-inverse-link-hover-bg;
+          }
+        }
+        > .active > a {
+          &,
+          &:hover,
+          &:focus {
+            color: $navbar-inverse-link-active-color;
+            background-color: $navbar-inverse-link-active-bg;
+          }
+        }
+        > .disabled > a {
+          &,
+          &:hover,
+          &:focus {
+            color: $navbar-inverse-link-disabled-color;
+            background-color: $navbar-inverse-link-disabled-bg;
+          }
+        }
+      }
+    }
+  }
+
+  .navbar-link {
+    color: $navbar-inverse-link-color;
+    &:hover {
+      color: $navbar-inverse-link-hover-color;
+    }
+  }
+
+  .msp-btn-link {
+    color: $navbar-inverse-link-color;
+    &:hover,
+    &:focus {
+      color: $navbar-inverse-link-hover-color;
+    }
+    &[disabled],
+    fieldset[disabled] & {
+      &:hover,
+      &:focus {
+        color: $navbar-inverse-link-disabled-color;
+      }
+    }
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_navs.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_navs.scss
new file mode 100644
index 000000000..9d369f307
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_navs.scss
@@ -0,0 +1,242 @@
+//
+// Navs
+// --------------------------------------------------
+
+
+// Base class
+// --------------------------------------------------
+
+.nav {
+  margin-bottom: 0;
+  padding-left: 0; // Override default ul/ol
+  list-style: none;
+  @include clearfix;
+
+  > li {
+    position: relative;
+    display: block;
+
+    > a {
+      position: relative;
+      display: block;
+      padding: $nav-link-padding;
+      &:hover,
+      &:focus {
+        text-decoration: none;
+        background-color: $nav-link-hover-bg;
+      }
+    }
+
+    // Disabled state sets text to gray and nukes hover/tab effects
+    &.disabled > a {
+      color: $nav-disabled-link-color;
+
+      &:hover,
+      &:focus {
+        color: $nav-disabled-link-hover-color;
+        text-decoration: none;
+        background-color: transparent;
+        cursor: $cursor-disabled;
+      }
+    }
+  }
+
+  // Open dropdowns
+  .open > a {
+    &,
+    &:hover,
+    &:focus {
+      background-color: $nav-link-hover-bg;
+      border-color: $link-color;
+    }
+  }
+
+  // Nav dividers (deprecated with v3.0.1)
+  //
+  // This should have been removed in v3 with the dropping of `.nav-list`, but
+  // we missed it. We don't currently support this anywhere, but in the interest
+  // of maintaining backward compatibility in case you use it, it's deprecated.
+  .nav-divider {
+    @include nav-divider;
+  }
+
+  // Prevent IE8 from misplacing imgs
+  //
+  // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
+  > li > a > img {
+    max-width: none;
+  }
+}
+
+
+// Tabs
+// -------------------------
+
+// Give the tabs something to sit on
+.nav-tabs {
+  border-bottom: 1px solid $nav-tabs-border-color;
+  > li {
+    float: left;
+    // Make the list-items overlay the bottom border
+    margin-bottom: -1px;
+
+    // Actual tabs (as links)
+    > a {
+      margin-right: 2px;
+      line-height: $line-height-base;
+      border: 1px solid transparent;
+      border-radius: $border-radius-base $border-radius-base 0 0;
+      &:hover {
+        border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color;
+      }
+    }
+
+    // Active state, and its :hover to override normal :hover
+    &.active > a {
+      &,
+      &:hover,
+      &:focus {
+        color: $nav-tabs-active-link-hover-color;
+        background-color: $nav-tabs-active-link-hover-bg;
+        border: 1px solid $nav-tabs-active-link-hover-border-color;
+        border-bottom-color: transparent;
+        cursor: default;
+      }
+    }
+  }
+  // pulling this in mainly for less shorthand
+  &.nav-justified {
+    @extend .nav-justified;
+    @extend .nav-tabs-justified;
+  }
+}
+
+
+// Pills
+// -------------------------
+.nav-pills {
+  > li {
+    float: left;
+
+    // Links rendered as pills
+    > a {
+      border-radius: $nav-pills-border-radius;
+    }
+    + li {
+      margin-left: 2px;
+    }
+
+    // Active state
+    &.active > a {
+      &,
+      &:hover,
+      &:focus {
+        color: $nav-pills-active-link-hover-color;
+        background-color: $nav-pills-active-link-hover-bg;
+      }
+    }
+  }
+}
+
+
+// Stacked pills
+.nav-stacked {
+  > li {
+    float: none;
+    + li {
+      margin-top: 2px;
+      margin-left: 0; // no need for this gap between nav items
+    }
+  }
+}
+
+
+// Nav variations
+// --------------------------------------------------
+
+// Justified nav links
+// -------------------------
+
+.nav-justified {
+  width: 100%;
+
+  > li {
+    float: none;
+    > a {
+      text-align: center;
+      margin-bottom: 5px;
+    }
+  }
+
+  > .dropdown .dropdown-menu {
+    top: auto;
+    left: auto;
+  }
+
+  @media (min-width: $screen-sm-min) {
+    > li {
+      display: table-cell;
+      width: 1%;
+      > a {
+        margin-bottom: 0;
+      }
+    }
+  }
+}
+
+// Move borders to anchors instead of bottom of list
+//
+// Mixin for adding on top the shared `.nav-justified` styles for our tabs
+.nav-tabs-justified {
+  border-bottom: 0;
+
+  > li > a {
+    // Override margin from .nav-tabs
+    margin-right: 0;
+    border-radius: $border-radius-base;
+  }
+
+  > .active > a,
+  > .active > a:hover,
+  > .active > a:focus {
+    border: 1px solid $nav-tabs-justified-link-border-color;
+  }
+
+  @media (min-width: $screen-sm-min) {
+    > li > a {
+      border-bottom: 1px solid $nav-tabs-justified-link-border-color;
+      border-radius: $border-radius-base $border-radius-base 0 0;
+    }
+    > .active > a,
+    > .active > a:hover,
+    > .active > a:focus {
+      border-bottom-color: $nav-tabs-justified-active-link-border-color;
+    }
+  }
+}
+
+
+// Tabbable tabs
+// -------------------------
+
+// Hide tabbable panes to start, show them when `.active`
+.tab-content {
+  > .tab-pane {
+    display: none;
+  }
+  > .active {
+    display: block;
+  }
+}
+
+
+// Dropdowns
+// -------------------------
+
+// Specific dropdowns
+.nav-tabs .dropdown-menu {
+  // make dropdown border overlap tab border
+  margin-top: -1px;
+  // Remove the top rounded corners here since there is a hard edge above the menu
+  @include border-top-radius(0);
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_normalize.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_normalize.scss
new file mode 100644
index 000000000..9dddf73ad
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_normalize.scss
@@ -0,0 +1,424 @@
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
+
+//
+// 1. Set default font family to sans-serif.
+// 2. Prevent iOS and IE text size adjust after device orientation change,
+//    without disabling user zoom.
+//
+
+html {
+  font-family: sans-serif; // 1
+  -ms-text-size-adjust: 100%; // 2
+  -webkit-text-size-adjust: 100%; // 2
+}
+
+//
+// Remove default margin.
+//
+
+body {
+  margin: 0;
+}
+
+// HTML5 display definitions
+// ==========================================================================
+
+//
+// Correct `block` display not defined for any HTML5 element in IE 8/9.
+// Correct `block` display not defined for `details` or `summary` in IE 10/11
+// and Firefox.
+// Correct `block` display not defined for `main` in IE 11.
+//
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+  display: block;
+}
+
+//
+// 1. Correct `inline-block` display not defined in IE 8/9.
+// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
+//
+
+audio,
+canvas,
+progress,
+video {
+  display: inline-block; // 1
+  vertical-align: baseline; // 2
+}
+
+//
+// Prevent modern browsers from displaying `audio` without controls.
+// Remove excess height in iOS 5 devices.
+//
+
+audio:not([controls]) {
+  display: none;
+  height: 0;
+}
+
+//
+// Address `[hidden]` styling not present in IE 8/9/10.
+// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
+//
+
+[hidden],
+template {
+  display: none;
+}
+
+// Links
+// ==========================================================================
+
+//
+// Remove the gray background color from active links in IE 10.
+//
+
+a {
+  background-color: transparent;
+}
+
+//
+// Improve readability of focused elements when they are also in an
+// active/hover state.
+//
+
+a:active,
+a:hover {
+  outline: 0;
+}
+
+// Text-level semantics
+// ==========================================================================
+
+//
+// Address styling not present in IE 8/9/10/11, Safari, and Chrome.
+//
+
+abbr[title] {
+  border-bottom: 1px dotted;
+}
+
+//
+// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
+//
+
+b,
+strong {
+  font-weight: bold;
+}
+
+//
+// Address styling not present in Safari and Chrome.
+//
+
+dfn {
+  font-style: italic;
+}
+
+//
+// Address variable `h1` font-size and margin within `section` and `article`
+// contexts in Firefox 4+, Safari, and Chrome.
+//
+
+h1 {
+  font-size: 2em;
+  margin: 0.67em 0;
+}
+
+//
+// Address styling not present in IE 8/9.
+//
+
+mark {
+  background: #ff0;
+  color: #000;
+}
+
+//
+// Address inconsistent and variable font size in all browsers.
+//
+
+small {
+  font-size: 80%;
+}
+
+//
+// Prevent `sub` and `sup` affecting `line-height` in all browsers.
+//
+
+sub,
+sup {
+  font-size: 75%;
+  line-height: 0;
+  position: relative;
+  vertical-align: baseline;
+}
+
+sup {
+  top: -0.5em;
+}
+
+sub {
+  bottom: -0.25em;
+}
+
+// Embedded content
+// ==========================================================================
+
+//
+// Remove border when inside `a` element in IE 8/9/10.
+//
+
+img {
+  border: 0;
+}
+
+//
+// Correct overflow not hidden in IE 9/10/11.
+//
+
+svg:not(:root) {
+  overflow: hidden;
+}
+
+// Grouping content
+// ==========================================================================
+
+//
+// Address margin not present in IE 8/9 and Safari.
+//
+
+figure {
+  margin: 1em 40px;
+}
+
+//
+// Address differences between Firefox and other browsers.
+//
+
+hr {
+  box-sizing: content-box;
+  height: 0;
+}
+
+//
+// Contain overflow in all browsers.
+//
+
+pre {
+  overflow: auto;
+}
+
+//
+// Address odd `em`-unit font size rendering in all browsers.
+//
+
+code,
+kbd,
+pre,
+samp {
+  font-family: monospace, monospace;
+  font-size: 1em;
+}
+
+// Forms
+// ==========================================================================
+
+//
+// Known limitation: by default, Chrome and Safari on OS X allow very limited
+// styling of `select`, unless a `border` property is set.
+//
+
+//
+// 1. Correct color not being inherited.
+//    Known issue: affects color of disabled elements.
+// 2. Correct font properties not being inherited.
+// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
+//
+
+button,
+input,
+optgroup,
+select,
+textarea {
+  color: inherit; // 1
+  font: inherit; // 2
+  margin: 0; // 3
+}
+
+//
+// Address `overflow` set to `hidden` in IE 8/9/10/11.
+//
+
+button {
+  overflow: visible;
+}
+
+//
+// Address inconsistent `text-transform` inheritance for `button` and `select`.
+// All other form control elements do not inherit `text-transform` values.
+// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
+// Correct `select` style inheritance in Firefox.
+//
+
+button,
+select {
+  text-transform: none;
+}
+
+//
+// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+//    and `video` controls.
+// 2. Correct inability to style clickable `input` types in iOS.
+// 3. Improve usability and consistency of cursor style between image-type
+//    `input` and others.
+//
+
+button,
+html input[type="button"], // 1
+input[type="reset"],
+input[type="submit"] {
+  -webkit-appearance: button; // 2
+  cursor: pointer; // 3
+}
+
+//
+// Re-set default cursor for disabled elements.
+//
+
+button[disabled],
+html input[disabled] {
+  cursor: default;
+}
+
+//
+// Remove inner padding and border in Firefox 4+.
+//
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+  border: 0;
+  padding: 0;
+}
+
+//
+// Address Firefox 4+ setting `line-height` on `input` using `!important` in
+// the UA stylesheet.
+//
+
+input {
+  line-height: normal;
+}
+
+//
+// It's recommended that you don't attempt to style these elements.
+// Firefox's implementation doesn't respect box-sizing, padding, or width.
+//
+// 1. Address box sizing set to `content-box` in IE 8/9/10.
+// 2. Remove excess padding in IE 8/9/10.
+//
+
+input[type="checkbox"],
+input[type="radio"] {
+  box-sizing: border-box; // 1
+  padding: 0; // 2
+}
+
+//
+// Fix the cursor style for Chrome's increment/decrement buttons. For certain
+// `font-size` values of the `input`, it causes the cursor style of the
+// decrement button to change from `default` to `text`.
+//
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+  height: auto;
+}
+
+//
+// 1. Address `appearance` set to `searchfield` in Safari and Chrome.
+// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
+//
+
+input[type="search"] {
+  -webkit-appearance: textfield; // 1
+  box-sizing: content-box; //2
+}
+
+//
+// Remove inner padding and search cancel button in Safari and Chrome on OS X.
+// Safari (but not Chrome) clips the cancel button when the search input has
+// padding (and `textfield` appearance).
+//
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+  -webkit-appearance: none;
+}
+
+//
+// Define consistent border, margin, and padding.
+//
+
+fieldset {
+  border: 1px solid #c0c0c0;
+  margin: 0 2px;
+  padding: 0.35em 0.625em 0.75em;
+}
+
+//
+// 1. Correct `color` not being inherited in IE 8/9/10/11.
+// 2. Remove padding so people aren't caught out if they zero out fieldsets.
+//
+
+legend {
+  border: 0; // 1
+  padding: 0; // 2
+}
+
+//
+// Remove default vertical scrollbar in IE 8/9/10/11.
+//
+
+textarea {
+  overflow: auto;
+}
+
+//
+// Don't inherit the `font-weight` (applied by a rule above).
+// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
+//
+
+optgroup {
+  font-weight: bold;
+}
+
+// Tables
+// ==========================================================================
+
+//
+// Remove most spacing between table cells.
+//
+
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+
+td,
+th {
+  padding: 0;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_pager.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_pager.scss
new file mode 100644
index 000000000..c2342174f
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_pager.scss
@@ -0,0 +1,54 @@
+//
+// Pager pagination
+// --------------------------------------------------
+
+
+.pager {
+  padding-left: 0;
+  margin: $line-height-computed 0;
+  list-style: none;
+  text-align: center;
+  @include clearfix;
+  li {
+    display: inline;
+    > a,
+    > span {
+      display: inline-block;
+      padding: 5px 14px;
+      background-color: $pager-bg;
+      border: 1px solid $pager-border;
+      border-radius: $pager-border-radius;
+    }
+
+    > a:hover,
+    > a:focus {
+      text-decoration: none;
+      background-color: $pager-hover-bg;
+    }
+  }
+
+  .next {
+    > a,
+    > span {
+      float: right;
+    }
+  }
+
+  .previous {
+    > a,
+    > span {
+      float: left;
+    }
+  }
+
+  .disabled {
+    > a,
+    > a:hover,
+    > a:focus,
+    > span {
+      color: $pager-disabled-color;
+      background-color: $pager-bg;
+      cursor: $cursor-disabled;
+    }
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_pagination.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_pagination.scss
new file mode 100644
index 000000000..fecfa9c64
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_pagination.scss
@@ -0,0 +1,89 @@
+//
+// Pagination (multiple pages)
+// --------------------------------------------------
+.pagination {
+  display: inline-block;
+  padding-left: 0;
+  margin: $line-height-computed 0;
+  border-radius: $border-radius-base;
+
+  > li {
+    display: inline; // Remove list-style and block-level defaults
+    > a,
+    > span {
+      position: relative;
+      float: left; // Collapse white-space
+      padding: $padding-base-vertical $padding-base-horizontal;
+      line-height: $line-height-base;
+      text-decoration: none;
+      color: $pagination-color;
+      background-color: $pagination-bg;
+      border: 1px solid $pagination-border;
+      margin-left: -1px;
+    }
+    &:first-child {
+      > a,
+      > span {
+        margin-left: 0;
+        @include border-left-radius($border-radius-base);
+      }
+    }
+    &:last-child {
+      > a,
+      > span {
+        @include border-right-radius($border-radius-base);
+      }
+    }
+  }
+
+  > li > a,
+  > li > span {
+    &:hover,
+    &:focus {
+      z-index: 2;
+      color: $pagination-hover-color;
+      background-color: $pagination-hover-bg;
+      border-color: $pagination-hover-border;
+    }
+  }
+
+  > .active > a,
+  > .active > span {
+    &,
+    &:hover,
+    &:focus {
+      z-index: 3;
+      color: $pagination-active-color;
+      background-color: $pagination-active-bg;
+      border-color: $pagination-active-border;
+      cursor: default;
+    }
+  }
+
+  > .disabled {
+    > span,
+    > span:hover,
+    > span:focus,
+    > a,
+    > a:hover,
+    > a:focus {
+      color: $pagination-disabled-color;
+      background-color: $pagination-disabled-bg;
+      border-color: $pagination-disabled-border;
+      cursor: $cursor-disabled;
+    }
+  }
+}
+
+// Sizing
+// --------------------------------------------------
+
+// Large
+.pagination-lg {
+  @include pagination-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);
+}
+
+// Small
+.pagination-sm {
+  @include pagination-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_panels.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_panels.scss
new file mode 100644
index 000000000..be9410f5b
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_panels.scss
@@ -0,0 +1,271 @@
+//
+// Panels
+// --------------------------------------------------
+
+
+// Base class
+.panel {
+  margin-bottom: $line-height-computed;
+  background-color: $panel-bg;
+  border: 1px solid transparent;
+  border-radius: $panel-border-radius;
+  @include box-shadow(0 1px 1px rgba(0,0,0,.05));
+}
+
+// Panel contents
+.panel-body {
+  padding: $panel-body-padding;
+  @include clearfix;
+}
+
+// Optional heading
+.panel-heading {
+  padding: $panel-heading-padding;
+  border-bottom: 1px solid transparent;
+  @include border-top-radius(($panel-border-radius - 1));
+
+  > .dropdown .dropdown-toggle {
+    color: inherit;
+  }
+}
+
+// Within heading, strip any `h*` tag of its default margins for spacing.
+.panel-title {
+  margin-top: 0;
+  margin-bottom: 0;
+  font-size: ceil(($font-size-base * 1.125));
+  color: inherit;
+
+  > a,
+  > small,
+  > .small,
+  > small > a,
+  > .small > a {
+    color: inherit;
+  }
+}
+
+// Optional footer (stays gray in every modifier class)
+.panel-footer {
+  padding: $panel-footer-padding;
+  background-color: $panel-footer-bg;
+  border-top: 1px solid $panel-inner-border;
+  @include border-bottom-radius(($panel-border-radius - 1));
+}
+
+
+// List groups in panels
+//
+// By default, space out list group content from panel headings to account for
+// any kind of custom content between the two.
+
+.panel {
+  > .list-group,
+  > .panel-collapse > .list-group {
+    margin-bottom: 0;
+
+    .list-group-item {
+      border-width: 1px 0;
+      border-radius: 0;
+    }
+
+    // Add border top radius for first one
+    &:first-child {
+      .list-group-item:first-child {
+        border-top: 0;
+        @include border-top-radius(($panel-border-radius - 1));
+      }
+    }
+
+    // Add border bottom radius for last one
+    &:last-child {
+      .list-group-item:last-child {
+        border-bottom: 0;
+        @include border-bottom-radius(($panel-border-radius - 1));
+      }
+    }
+  }
+  > .panel-heading + .panel-collapse > .list-group {
+    .list-group-item:first-child {
+      @include border-top-radius(0);
+    }
+  }
+}
+// Collapse space between when there's no additional content.
+.panel-heading + .list-group {
+  .list-group-item:first-child {
+    border-top-width: 0;
+  }
+}
+.list-group + .panel-footer {
+  border-top-width: 0;
+}
+
+// Tables in panels
+//
+// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and
+// watch it go full width.
+
+.panel {
+  > .table,
+  > .table-responsive > .table,
+  > .panel-collapse > .table {
+    margin-bottom: 0;
+
+    caption {
+      padding-left: $panel-body-padding;
+      padding-right: $panel-body-padding;
+    }
+  }
+  // Add border top radius for first one
+  > .table:first-child,
+  > .table-responsive:first-child > .table:first-child {
+    @include border-top-radius(($panel-border-radius - 1));
+
+    > thead:first-child,
+    > tbody:first-child {
+      > tr:first-child {
+        border-top-left-radius: ($panel-border-radius - 1);
+        border-top-right-radius: ($panel-border-radius - 1);
+
+        td:first-child,
+        th:first-child {
+          border-top-left-radius: ($panel-border-radius - 1);
+        }
+        td:last-child,
+        th:last-child {
+          border-top-right-radius: ($panel-border-radius - 1);
+        }
+      }
+    }
+  }
+  // Add border bottom radius for last one
+  > .table:last-child,
+  > .table-responsive:last-child > .table:last-child {
+    @include border-bottom-radius(($panel-border-radius - 1));
+
+    > tbody:last-child,
+    > tfoot:last-child {
+      > tr:last-child {
+        border-bottom-left-radius: ($panel-border-radius - 1);
+        border-bottom-right-radius: ($panel-border-radius - 1);
+
+        td:first-child,
+        th:first-child {
+          border-bottom-left-radius: ($panel-border-radius - 1);
+        }
+        td:last-child,
+        th:last-child {
+          border-bottom-right-radius: ($panel-border-radius - 1);
+        }
+      }
+    }
+  }
+  > .panel-body + .table,
+  > .panel-body + .table-responsive,
+  > .table + .panel-body,
+  > .table-responsive + .panel-body {
+    border-top: 1px solid $table-border-color;
+  }
+  > .table > tbody:first-child > tr:first-child th,
+  > .table > tbody:first-child > tr:first-child td {
+    border-top: 0;
+  }
+  > .table-bordered,
+  > .table-responsive > .table-bordered {
+    border: 0;
+    > thead,
+    > tbody,
+    > tfoot {
+      > tr {
+        > th:first-child,
+        > td:first-child {
+          border-left: 0;
+        }
+        > th:last-child,
+        > td:last-child {
+          border-right: 0;
+        }
+      }
+    }
+    > thead,
+    > tbody {
+      > tr:first-child {
+        > td,
+        > th {
+          border-bottom: 0;
+        }
+      }
+    }
+    > tbody,
+    > tfoot {
+      > tr:last-child {
+        > td,
+        > th {
+          border-bottom: 0;
+        }
+      }
+    }
+  }
+  > .table-responsive {
+    border: 0;
+    margin-bottom: 0;
+  }
+}
+
+
+// Collapsable panels (aka, accordion)
+//
+// Wrap a series of panels in `.panel-group` to turn them into an accordion with
+// the help of our collapse JavaScript plugin.
+
+.panel-group {
+  margin-bottom: $line-height-computed;
+
+  // Tighten up margin so it's only between panels
+  .panel {
+    margin-bottom: 0;
+    border-radius: $panel-border-radius;
+
+    + .panel {
+      margin-top: 5px;
+    }
+  }
+
+  .panel-heading {
+    border-bottom: 0;
+
+    + .panel-collapse > .panel-body,
+    + .panel-collapse > .list-group {
+      border-top: 1px solid $panel-inner-border;
+    }
+  }
+
+  .panel-footer {
+    border-top: 0;
+    + .panel-collapse .panel-body {
+      border-bottom: 1px solid $panel-inner-border;
+    }
+  }
+}
+
+
+// Contextual variations
+.panel-default {
+  @include panel-variant($panel-default-border, $panel-default-text, $panel-default-heading-bg, $panel-default-border);
+}
+.panel-primary {
+  @include panel-variant($panel-primary-border, $panel-primary-text, $panel-primary-heading-bg, $panel-primary-border);
+}
+.panel-success {
+  @include panel-variant($panel-success-border, $panel-success-text, $panel-success-heading-bg, $panel-success-border);
+}
+.panel-info {
+  @include panel-variant($panel-info-border, $panel-info-text, $panel-info-heading-bg, $panel-info-border);
+}
+.panel-warning {
+  @include panel-variant($panel-warning-border, $panel-warning-text, $panel-warning-heading-bg, $panel-warning-border);
+}
+.panel-danger {
+  @include panel-variant($panel-danger-border, $panel-danger-text, $panel-danger-heading-bg, $panel-danger-border);
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_popovers.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_popovers.scss
new file mode 100644
index 000000000..9b90a2e96
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_popovers.scss
@@ -0,0 +1,131 @@
+//
+// Popovers
+// --------------------------------------------------
+
+
+.popover {
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: $zindex-popover;
+  display: none;
+  max-width: $popover-max-width;
+  padding: 1px;
+  // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.
+  // So reset our font and text properties to avoid inheriting weird values.
+  @include reset-text;
+  font-size: $font-size-base;
+
+  background-color: $popover-bg;
+  background-clip: padding-box;
+  border: 1px solid $popover-fallback-border-color;
+  border: 1px solid $popover-border-color;
+  border-radius: $border-radius-large;
+  @include box-shadow(0 5px 10px rgba(0,0,0,.2));
+
+  // Offset the popover to account for the popover arrow
+  &.top     { margin-top: -$popover-arrow-width; }
+  &.right   { margin-left: $popover-arrow-width; }
+  &.bottom  { margin-top: $popover-arrow-width; }
+  &.left    { margin-left: -$popover-arrow-width; }
+}
+
+.popover-title {
+  margin: 0; // reset heading margin
+  padding: 8px 14px;
+  font-size: $font-size-base;
+  background-color: $popover-title-bg;
+  border-bottom: 1px solid darken($popover-title-bg, 5%);
+  border-radius: ($border-radius-large - 1) ($border-radius-large - 1) 0 0;
+}
+
+.popover-content {
+  padding: 9px 14px;
+}
+
+// Arrows
+//
+// .arrow is outer, .arrow:after is inner
+
+.popover > .arrow {
+  &,
+  &:after {
+    position: absolute;
+    display: block;
+    width: 0;
+    height: 0;
+    border-color: transparent;
+    border-style: solid;
+  }
+}
+.popover > .arrow {
+  border-width: $popover-arrow-outer-width;
+}
+.popover > .arrow:after {
+  border-width: $popover-arrow-width;
+  content: "";
+}
+
+.popover {
+  &.top > .arrow {
+    left: 50%;
+    margin-left: -$popover-arrow-outer-width;
+    border-bottom-width: 0;
+    border-top-color: $popover-arrow-outer-fallback-color; // IE8 fallback
+    border-top-color: $popover-arrow-outer-color;
+    bottom: -$popover-arrow-outer-width;
+    &:after {
+      content: " ";
+      bottom: 1px;
+      margin-left: -$popover-arrow-width;
+      border-bottom-width: 0;
+      border-top-color: $popover-arrow-color;
+    }
+  }
+  &.right > .arrow {
+    top: 50%;
+    left: -$popover-arrow-outer-width;
+    margin-top: -$popover-arrow-outer-width;
+    border-left-width: 0;
+    border-right-color: $popover-arrow-outer-fallback-color; // IE8 fallback
+    border-right-color: $popover-arrow-outer-color;
+    &:after {
+      content: " ";
+      left: 1px;
+      bottom: -$popover-arrow-width;
+      border-left-width: 0;
+      border-right-color: $popover-arrow-color;
+    }
+  }
+  &.bottom > .arrow {
+    left: 50%;
+    margin-left: -$popover-arrow-outer-width;
+    border-top-width: 0;
+    border-bottom-color: $popover-arrow-outer-fallback-color; // IE8 fallback
+    border-bottom-color: $popover-arrow-outer-color;
+    top: -$popover-arrow-outer-width;
+    &:after {
+      content: " ";
+      top: 1px;
+      margin-left: -$popover-arrow-width;
+      border-top-width: 0;
+      border-bottom-color: $popover-arrow-color;
+    }
+  }
+
+  &.left > .arrow {
+    top: 50%;
+    right: -$popover-arrow-outer-width;
+    margin-top: -$popover-arrow-outer-width;
+    border-right-width: 0;
+    border-left-color: $popover-arrow-outer-fallback-color; // IE8 fallback
+    border-left-color: $popover-arrow-outer-color;
+    &:after {
+      content: " ";
+      right: 1px;
+      border-right-width: 0;
+      border-left-color: $popover-arrow-color;
+      bottom: -$popover-arrow-width;
+    }
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_print.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_print.scss
new file mode 100644
index 000000000..18287467a
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_print.scss
@@ -0,0 +1,101 @@
+/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
+
+// ==========================================================================
+// Print styles.
+// Inlined to avoid the additional HTTP request: h5bp.com/r
+// ==========================================================================
+
+@media print {
+    *,
+    *:before,
+    *:after {
+        background: transparent !important;
+        color: #000 !important; // Black prints faster: h5bp.com/s
+        box-shadow: none !important;
+        text-shadow: none !important;
+    }
+
+    a,
+    a:visited {
+        text-decoration: underline;
+    }
+
+    a[href]:after {
+        content: " (" attr(href) ")";
+    }
+
+    abbr[title]:after {
+        content: " (" attr(title) ")";
+    }
+
+    // Don't show links that are fragment identifiers,
+    // or use the `javascript:` pseudo protocol
+    a[href^="#"]:after,
+    a[href^="javascript:"]:after {
+        content: "";
+    }
+
+    pre,
+    blockquote {
+        border: 1px solid #999;
+        page-break-inside: avoid;
+    }
+
+    thead {
+        display: table-header-group; // h5bp.com/t
+    }
+
+    tr,
+    img {
+        page-break-inside: avoid;
+    }
+
+    img {
+        max-width: 100% !important;
+    }
+
+    p,
+    h2,
+    h3 {
+        orphans: 3;
+        widows: 3;
+    }
+
+    h2,
+    h3 {
+        page-break-after: avoid;
+    }
+
+    // Bootstrap specific changes start
+
+    // Bootstrap components
+    .navbar {
+        display: none;
+    }
+    .msp-btn,
+    .dropup > .msp-btn {
+        > .caret {
+            border-top-color: #000 !important;
+        }
+    }
+    .label {
+        border: 1px solid #000;
+    }
+
+    .table {
+        border-collapse: collapse !important;
+
+        td,
+        th {
+            background-color: #fff !important;
+        }
+    }
+    .table-bordered {
+        th,
+        td {
+            border: 1px solid #ddd !important;
+        }
+    }
+
+    // Bootstrap specific changes end
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_progress-bars.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_progress-bars.scss
new file mode 100644
index 000000000..343df6323
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_progress-bars.scss
@@ -0,0 +1,87 @@
+//
+// Progress bars
+// --------------------------------------------------
+
+
+// Bar animations
+// -------------------------
+
+// WebKit
+@-webkit-keyframes progress-bar-stripes {
+  from  { background-position: 40px 0; }
+  to    { background-position: 0 0; }
+}
+
+// Spec and IE10+
+@keyframes progress-bar-stripes {
+  from  { background-position: 40px 0; }
+  to    { background-position: 0 0; }
+}
+
+
+// Bar itself
+// -------------------------
+
+// Outer container
+.progress {
+  overflow: hidden;
+  height: $line-height-computed;
+  margin-bottom: $line-height-computed;
+  background-color: $progress-bg;
+  border-radius: $progress-border-radius;
+  @include box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
+}
+
+// Bar of progress
+.progress-bar {
+  float: left;
+  width: 0%;
+  height: 100%;
+  font-size: $font-size-small;
+  line-height: $line-height-computed;
+  color: $progress-bar-color;
+  text-align: center;
+  background-color: $progress-bar-bg;
+  @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
+  @include transition(width .6s ease);
+}
+
+// Striped bars
+//
+// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the
+// `.progress-bar-striped` class, which you just add to an existing
+// `.progress-bar`.
+.progress-striped .progress-bar,
+.progress-bar-striped {
+  @include gradient-striped;
+  background-size: 40px 40px;
+}
+
+// Call animation for the active one
+//
+// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the
+// `.progress-bar.active` approach.
+.progress.active .progress-bar,
+.progress-bar.active {
+  @include animation(progress-bar-stripes 2s linear infinite);
+}
+
+
+// Variations
+// -------------------------
+
+.progress-bar-success {
+  @include progress-bar-variant($progress-bar-success-bg);
+}
+
+.progress-bar-info {
+  @include progress-bar-variant($progress-bar-info-bg);
+}
+
+.progress-bar-warning {
+  @include progress-bar-variant($progress-bar-warning-bg);
+}
+
+.progress-bar-danger {
+  @include progress-bar-variant($progress-bar-danger-bg);
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_responsive-embed.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_responsive-embed.scss
new file mode 100644
index 000000000..080a5118f
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_responsive-embed.scss
@@ -0,0 +1,35 @@
+// Embeds responsive
+//
+// Credit: Nicolas Gallagher and SUIT CSS.
+
+.embed-responsive {
+  position: relative;
+  display: block;
+  height: 0;
+  padding: 0;
+  overflow: hidden;
+
+  .embed-responsive-item,
+  iframe,
+  embed,
+  object,
+  video {
+    position: absolute;
+    top: 0;
+    left: 0;
+    bottom: 0;
+    height: 100%;
+    width: 100%;
+    border: 0;
+  }
+}
+
+// Modifier class for 16:9 aspect ratio
+.embed-responsive-16by9 {
+  padding-bottom: 56.25%;
+}
+
+// Modifier class for 4:3 aspect ratio
+.embed-responsive-4by3 {
+  padding-bottom: 75%;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_responsive-utilities.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_responsive-utilities.scss
new file mode 100644
index 000000000..f3f0c839b
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_responsive-utilities.scss
@@ -0,0 +1,179 @@
+//
+// Responsive: Utility classes
+// --------------------------------------------------
+
+
+// IE10 in Windows (Phone) 8
+//
+// Support for responsive views via media queries is kind of borked in IE10, for
+// Surface/desktop in split view and for Windows Phone 8. This particular fix
+// must be accompanied by a snippet of JavaScript to sniff the user agent and
+// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at
+// our Getting Started page for more information on this bug.
+//
+// For more information, see the following:
+//
+// Issue: https://github.com/twbs/bootstrap/issues/10497
+// Docs: http://getbootstrap.com/getting-started/#support-ie10-width
+// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
+// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
+
+@at-root {
+  @-ms-viewport {
+    width: device-width;
+  }
+}
+
+
+// Visibility utilities
+// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0
+
+@include responsive-invisibility('.visible-xs');
+@include responsive-invisibility('.visible-sm');
+@include responsive-invisibility('.visible-md');
+@include responsive-invisibility('.visible-lg');
+
+.visible-xs-block,
+.visible-xs-inline,
+.visible-xs-inline-block,
+.visible-sm-block,
+.visible-sm-inline,
+.visible-sm-inline-block,
+.visible-md-block,
+.visible-md-inline,
+.visible-md-inline-block,
+.visible-lg-block,
+.visible-lg-inline,
+.visible-lg-inline-block {
+  display: none !important;
+}
+
+@media (max-width: $screen-xs-max) {
+  @include responsive-visibility('.visible-xs');
+}
+.visible-xs-block {
+  @media (max-width: $screen-xs-max) {
+    display: block !important;
+  }
+}
+.visible-xs-inline {
+  @media (max-width: $screen-xs-max) {
+    display: inline !important;
+  }
+}
+.visible-xs-inline-block {
+  @media (max-width: $screen-xs-max) {
+    display: inline-block !important;
+  }
+}
+
+@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
+  @include responsive-visibility('.visible-sm');
+}
+.visible-sm-block {
+  @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
+    display: block !important;
+  }
+}
+.visible-sm-inline {
+  @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
+    display: inline !important;
+  }
+}
+.visible-sm-inline-block {
+  @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
+    display: inline-block !important;
+  }
+}
+
+@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
+  @include responsive-visibility('.visible-md');
+}
+.visible-md-block {
+  @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
+    display: block !important;
+  }
+}
+.visible-md-inline {
+  @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
+    display: inline !important;
+  }
+}
+.visible-md-inline-block {
+  @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
+    display: inline-block !important;
+  }
+}
+
+@media (min-width: $screen-lg-min) {
+  @include responsive-visibility('.visible-lg');
+}
+.visible-lg-block {
+  @media (min-width: $screen-lg-min) {
+    display: block !important;
+  }
+}
+.visible-lg-inline {
+  @media (min-width: $screen-lg-min) {
+    display: inline !important;
+  }
+}
+.visible-lg-inline-block {
+  @media (min-width: $screen-lg-min) {
+    display: inline-block !important;
+  }
+}
+
+@media (max-width: $screen-xs-max) {
+  @include responsive-invisibility('.hidden-xs');
+}
+
+@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
+  @include responsive-invisibility('.hidden-sm');
+}
+
+@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
+  @include responsive-invisibility('.hidden-md');
+}
+
+@media (min-width: $screen-lg-min) {
+  @include responsive-invisibility('.hidden-lg');
+}
+
+
+// Print utilities
+//
+// Media queries are placed on the inside to be mixin-friendly.
+
+// Note: Deprecated .visible-print as of v3.2.0
+
+@include responsive-invisibility('.visible-print');
+
+@media print {
+  @include responsive-visibility('.visible-print');
+}
+.visible-print-block {
+  display: none !important;
+
+  @media print {
+    display: block !important;
+  }
+}
+.visible-print-inline {
+  display: none !important;
+
+  @media print {
+    display: inline !important;
+  }
+}
+.visible-print-inline-block {
+  display: none !important;
+
+  @media print {
+    display: inline-block !important;
+  }
+}
+
+@media print {
+  @include responsive-invisibility('.hidden-print');
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_scaffolding.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_scaffolding.scss
new file mode 100644
index 000000000..83adb5dd5
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_scaffolding.scss
@@ -0,0 +1,161 @@
+//
+// Scaffolding
+// --------------------------------------------------
+
+
+// Reset the box-sizing
+//
+// Heads up! This reset may cause conflicts with some third-party widgets.
+// For recommendations on resolving such conflicts, see
+// http://getbootstrap.com/getting-started/#third-box-sizing
+* {
+  @include box-sizing(border-box);
+}
+*:before,
+*:after {
+  @include box-sizing(border-box);
+}
+
+
+// Body reset
+
+html {
+  font-size: 10px;
+  -webkit-tap-highlight-color: rgba(0,0,0,0);
+}
+
+body {
+  font-family: $font-family-base;
+  font-size: $font-size-base;
+  line-height: $line-height-base;
+  color: $text-color;
+  background-color: $body-bg;
+}
+
+// Reset fonts for relevant elements
+input,
+button,
+select,
+textarea {
+  font-family: inherit;
+  font-size: inherit;
+  line-height: inherit;
+}
+
+
+// Links
+
+a {
+  color: $link-color;
+  text-decoration: none;
+
+  &:hover,
+  &:focus {
+    color: $link-hover-color;
+    text-decoration: $link-hover-decoration;
+  }
+
+  &:focus {
+    @include tab-focus;
+  }
+}
+
+
+// Figures
+//
+// We reset this here because previously Normalize had no `figure` margins. This
+// ensures we don't break anyone's use of the element.
+
+figure {
+  margin: 0;
+}
+
+
+// Images
+
+img {
+  vertical-align: middle;
+}
+
+// Responsive images (ensure images don't scale beyond their parents)
+.img-responsive {
+  @include img-responsive;
+}
+
+// Rounded corners
+.img-rounded {
+  border-radius: $border-radius-large;
+}
+
+// Image thumbnails
+//
+// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.
+.img-thumbnail {
+  padding: $thumbnail-padding;
+  line-height: $line-height-base;
+  background-color: $thumbnail-bg;
+  border: 1px solid $thumbnail-border;
+  border-radius: $thumbnail-border-radius;
+  @include transition(all .2s ease-in-out);
+
+  // Keep them at most 100% wide
+  @include img-responsive(inline-block);
+}
+
+// Perfect circle
+.img-circle {
+  border-radius: 50%; // set radius in percents
+}
+
+
+// Horizontal rules
+
+hr {
+  margin-top:    $line-height-computed;
+  margin-bottom: $line-height-computed;
+  border: 0;
+  border-top: 1px solid $hr-border;
+}
+
+
+// Only display content to screen readers
+//
+// See: http://a11yproject.com/posts/how-to-hide-content/
+
+.sr-only {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  margin: -1px;
+  padding: 0;
+  overflow: hidden;
+  clip: rect(0,0,0,0);
+  border: 0;
+}
+
+// Use in conjunction with .sr-only to only display content when it's focused.
+// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
+// Credit: HTML5 Boilerplate
+
+.sr-only-focusable {
+  &:active,
+  &:focus {
+    position: static;
+    width: auto;
+    height: auto;
+    margin: 0;
+    overflow: visible;
+    clip: auto;
+  }
+}
+
+
+// iOS "clickable elements" fix for role="button"
+//
+// Fixes "clickability" issue (and more generally, the firing of events such as focus as well)
+// for traditionally non-focusable elements with role="button"
+// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
+
+[role="button"] {
+  cursor: pointer;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_tables.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_tables.scss
new file mode 100644
index 000000000..affcc58c0
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_tables.scss
@@ -0,0 +1,234 @@
+//
+// Tables
+// --------------------------------------------------
+
+
+table {
+  background-color: $table-bg;
+}
+caption {
+  padding-top: $table-cell-padding;
+  padding-bottom: $table-cell-padding;
+  color: $text-muted;
+  text-align: left;
+}
+th {
+  text-align: left;
+}
+
+
+// Baseline styles
+
+.table {
+  width: 100%;
+  max-width: 100%;
+  margin-bottom: $line-height-computed;
+  // Cells
+  > thead,
+  > tbody,
+  > tfoot {
+    > tr {
+      > th,
+      > td {
+        padding: $table-cell-padding;
+        line-height: $line-height-base;
+        vertical-align: top;
+        border-top: 1px solid $table-border-color;
+      }
+    }
+  }
+  // Bottom align for column headings
+  > thead > tr > th {
+    vertical-align: bottom;
+    border-bottom: 2px solid $table-border-color;
+  }
+  // Remove top border from thead by default
+  > caption + thead,
+  > colgroup + thead,
+  > thead:first-child {
+    > tr:first-child {
+      > th,
+      > td {
+        border-top: 0;
+      }
+    }
+  }
+  // Account for multiple tbody instances
+  > tbody + tbody {
+    border-top: 2px solid $table-border-color;
+  }
+
+  // Nesting
+  .table {
+    background-color: $body-bg;
+  }
+}
+
+
+// Condensed table w/ half padding
+
+.table-condensed {
+  > thead,
+  > tbody,
+  > tfoot {
+    > tr {
+      > th,
+      > td {
+        padding: $table-condensed-cell-padding;
+      }
+    }
+  }
+}
+
+
+// Bordered version
+//
+// Add borders all around the table and between all the columns.
+
+.table-bordered {
+  border: 1px solid $table-border-color;
+  > thead,
+  > tbody,
+  > tfoot {
+    > tr {
+      > th,
+      > td {
+        border: 1px solid $table-border-color;
+      }
+    }
+  }
+  > thead > tr {
+    > th,
+    > td {
+      border-bottom-width: 2px;
+    }
+  }
+}
+
+
+// Zebra-striping
+//
+// Default zebra-stripe styles (alternating gray and transparent backgrounds)
+
+.table-striped {
+  > tbody > tr:nth-of-type(odd) {
+    background-color: $table-bg-accent;
+  }
+}
+
+
+// Hover effect
+//
+// Placed here since it has to come after the potential zebra striping
+
+.table-hover {
+  > tbody > tr:hover {
+    background-color: $table-bg-hover;
+  }
+}
+
+
+// Table cell sizing
+//
+// Reset default table behavior
+
+table col[class*="col-"] {
+  position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
+  float: none;
+  display: table-column;
+}
+table {
+  td,
+  th {
+    &[class*="col-"] {
+      position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
+      float: none;
+      display: table-cell;
+    }
+  }
+}
+
+
+// Table backgrounds
+//
+// Exact selectors below required to override `.table-striped` and prevent
+// inheritance to nested tables.
+
+// Generate the contextual variants
+@include table-row-variant('active', $table-bg-active);
+@include table-row-variant('success', $state-success-bg);
+@include table-row-variant('info', $state-info-bg);
+@include table-row-variant('warning', $state-warning-bg);
+@include table-row-variant('danger', $state-danger-bg);
+
+
+// Responsive tables
+//
+// Wrap your tables in `.table-responsive` and we'll make them mobile friendly
+// by enabling horizontal scrolling. Only applies <768px. Everything above that
+// will display normally.
+
+.table-responsive {
+  overflow-x: auto;
+  min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)
+
+  @media screen and (max-width: $screen-xs-max) {
+    width: 100%;
+    margin-bottom: ($line-height-computed * 0.75);
+    overflow-y: hidden;
+    -ms-overflow-style: -ms-autohiding-scrollbar;
+    border: 1px solid $table-border-color;
+
+    // Tighten up spacing
+    > .table {
+      margin-bottom: 0;
+
+      // Ensure the content doesn't wrap
+      > thead,
+      > tbody,
+      > tfoot {
+        > tr {
+          > th,
+          > td {
+            white-space: nowrap;
+          }
+        }
+      }
+    }
+
+    // Special overrides for the bordered tables
+    > .table-bordered {
+      border: 0;
+
+      // Nuke the appropriate borders so that the parent can handle them
+      > thead,
+      > tbody,
+      > tfoot {
+        > tr {
+          > th:first-child,
+          > td:first-child {
+            border-left: 0;
+          }
+          > th:last-child,
+          > td:last-child {
+            border-right: 0;
+          }
+        }
+      }
+
+      // Only nuke the last row's bottom-border in `tbody` and `tfoot` since
+      // chances are there will be only one `tr` in a `thead` and that would
+      // remove the border altogether.
+      > tbody,
+      > tfoot {
+        > tr:last-child {
+          > th,
+          > td {
+            border-bottom: 0;
+          }
+        }
+      }
+
+    }
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_theme.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_theme.scss
new file mode 100644
index 000000000..eec012b9e
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_theme.scss
@@ -0,0 +1,291 @@
+/*!
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+//
+// Load core variables and mixins
+// --------------------------------------------------
+
+@import "variables";
+@import "mixins";
+
+
+//
+// Buttons
+// --------------------------------------------------
+
+// Common styles
+.msp-btn-default,
+.msp-btn-primary,
+.msp-btn-success,
+.msp-btn-info,
+.msp-btn-warning,
+.msp-btn-danger {
+  text-shadow: 0 -1px 0 rgba(0,0,0,.2);
+  $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
+  @include box-shadow($shadow);
+
+  // Reset the shadow
+  &:active,
+  &.active {
+    @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+  }
+
+  &.disabled,
+  &[disabled],
+  fieldset[disabled] & {
+    @include box-shadow(none);
+  }
+
+  .badge {
+    text-shadow: none;
+  }
+}
+
+// Mixin for generating new styles
+@mixin msp-btn-styles($msp-btn-color: #555) {
+  @include gradient-vertical($start-color: $msp-btn-color, $end-color: darken($msp-btn-color, 12%));
+  @include reset-filter; // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620
+  background-repeat: repeat-x;
+  border-color: darken($msp-btn-color, 14%);
+
+  &:hover,
+  &:focus  {
+    background-color: darken($msp-btn-color, 12%);
+    background-position: 0 -15px;
+  }
+
+  &:active,
+  &.active {
+    background-color: darken($msp-btn-color, 12%);
+    border-color: darken($msp-btn-color, 14%);
+  }
+
+  &.disabled,
+  &[disabled],
+  fieldset[disabled] & {
+    &,
+    &:hover,
+    &:focus,
+    &.focus,
+    &:active,
+    &.active {
+      background-color: darken($msp-btn-color, 12%);
+      background-image: none;
+    }
+  }
+}
+
+// Common styles
+.msp-btn {
+  // Remove the gradient for the pressed/active state
+  &:active,
+  &.active {
+    background-image: none;
+  }
+}
+
+// Apply the mixin to the buttons
+.msp-btn-default { @include msp-btn-styles($msp-btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
+.msp-btn-primary { @include msp-btn-styles($msp-btn-primary-bg); }
+.msp-btn-success { @include msp-btn-styles($msp-btn-success-bg); }
+.msp-btn-info    { @include msp-btn-styles($msp-btn-info-bg); }
+.msp-btn-warning { @include msp-btn-styles($msp-btn-warning-bg); }
+.msp-btn-danger  { @include msp-btn-styles($msp-btn-danger-bg); }
+
+
+//
+// Images
+// --------------------------------------------------
+
+.thumbnail,
+.img-thumbnail {
+  @include box-shadow(0 1px 2px rgba(0,0,0,.075));
+}
+
+
+//
+// Dropdowns
+// --------------------------------------------------
+
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+  @include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%));
+  background-color: darken($dropdown-link-hover-bg, 5%);
+}
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+  @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));
+  background-color: darken($dropdown-link-active-bg, 5%);
+}
+
+
+//
+// Navbar
+// --------------------------------------------------
+
+// Default navbar
+.navbar-default {
+  @include gradient-vertical($start-color: lighten($navbar-default-bg, 10%), $end-color: $navbar-default-bg);
+  @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
+  border-radius: $navbar-border-radius;
+  $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
+  @include box-shadow($shadow);
+
+  .navbar-nav > .open > a,
+  .navbar-nav > .active > a {
+    @include gradient-vertical($start-color: darken($navbar-default-link-active-bg, 5%), $end-color: darken($navbar-default-link-active-bg, 2%));
+    @include box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
+  }
+}
+.navbar-brand,
+.navbar-nav > li > a {
+  text-shadow: 0 1px 0 rgba(255,255,255,.25);
+}
+
+// Inverted navbar
+.navbar-inverse {
+  @include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg);
+  @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257
+  border-radius: $navbar-border-radius;
+  .navbar-nav > .open > a,
+  .navbar-nav > .active > a {
+    @include gradient-vertical($start-color: $navbar-inverse-link-active-bg, $end-color: lighten($navbar-inverse-link-active-bg, 2.5%));
+    @include box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
+  }
+
+  .navbar-brand,
+  .navbar-nav > li > a {
+    text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+  }
+}
+
+// Undo rounded corners in static and fixed navbars
+.navbar-static-top,
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+  border-radius: 0;
+}
+
+// Fix active state of dropdown items in collapsed mode
+@media (max-width: $grid-float-breakpoint-max) {
+  .navbar .navbar-nav .open .dropdown-menu > .active > a {
+    &,
+    &:hover,
+    &:focus {
+      color: #fff;
+      @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));
+    }
+  }
+}
+
+
+//
+// Alerts
+// --------------------------------------------------
+
+// Common styles
+.alert {
+  text-shadow: 0 1px 0 rgba(255,255,255,.2);
+  $shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
+  @include box-shadow($shadow);
+}
+
+// Mixin for generating new styles
+@mixin alert-styles($color) {
+  @include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%));
+  border-color: darken($color, 15%);
+}
+
+// Apply the mixin to the alerts
+.alert-success    { @include alert-styles($alert-success-bg); }
+.alert-info       { @include alert-styles($alert-info-bg); }
+.alert-warning    { @include alert-styles($alert-warning-bg); }
+.alert-danger     { @include alert-styles($alert-danger-bg); }
+
+
+//
+// Progress bars
+// --------------------------------------------------
+
+// Give the progress background some depth
+.progress {
+  @include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg)
+}
+
+// Mixin for generating new styles
+@mixin progress-bar-styles($color) {
+  @include gradient-vertical($start-color: $color, $end-color: darken($color, 10%));
+}
+
+// Apply the mixin to the progress bars
+.progress-bar            { @include progress-bar-styles($progress-bar-bg); }
+.progress-bar-success    { @include progress-bar-styles($progress-bar-success-bg); }
+.progress-bar-info       { @include progress-bar-styles($progress-bar-info-bg); }
+.progress-bar-warning    { @include progress-bar-styles($progress-bar-warning-bg); }
+.progress-bar-danger     { @include progress-bar-styles($progress-bar-danger-bg); }
+
+// Reset the striped class because our mixins don't do multiple gradients and
+// the above custom styles override the new `.progress-bar-striped` in v3.2.0.
+.progress-bar-striped {
+  @include gradient-striped;
+}
+
+
+//
+// List groups
+// --------------------------------------------------
+
+.list-group {
+  border-radius: $border-radius-base;
+  @include box-shadow(0 1px 2px rgba(0,0,0,.075));
+}
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+  text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%);
+  @include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%));
+  border-color: darken($list-group-active-border, 7.5%);
+
+  .badge {
+    text-shadow: none;
+  }
+}
+
+
+//
+// Panels
+// --------------------------------------------------
+
+// Common styles
+.panel {
+  @include box-shadow(0 1px 2px rgba(0,0,0,.05));
+}
+
+// Mixin for generating new styles
+@mixin panel-heading-styles($color) {
+  @include gradient-vertical($start-color: $color, $end-color: darken($color, 5%));
+}
+
+// Apply the mixin to the panel headings only
+.panel-default > .panel-heading   { @include panel-heading-styles($panel-default-heading-bg); }
+.panel-primary > .panel-heading   { @include panel-heading-styles($panel-primary-heading-bg); }
+.panel-success > .panel-heading   { @include panel-heading-styles($panel-success-heading-bg); }
+.panel-info > .panel-heading      { @include panel-heading-styles($panel-info-heading-bg); }
+.panel-warning > .panel-heading   { @include panel-heading-styles($panel-warning-heading-bg); }
+.panel-danger > .panel-heading    { @include panel-heading-styles($panel-danger-heading-bg); }
+
+
+//
+// Wells
+// --------------------------------------------------
+
+.well {
+  @include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg);
+  border-color: darken($well-bg, 10%);
+  $shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
+  @include box-shadow($shadow);
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_thumbnails.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_thumbnails.scss
new file mode 100644
index 000000000..da0e1e76c
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_thumbnails.scss
@@ -0,0 +1,38 @@
+//
+// Thumbnails
+// --------------------------------------------------
+
+
+// Mixin and adjust the regular image class
+.thumbnail {
+  display: block;
+  padding: $thumbnail-padding;
+  margin-bottom: $line-height-computed;
+  line-height: $line-height-base;
+  background-color: $thumbnail-bg;
+  border: 1px solid $thumbnail-border;
+  border-radius: $thumbnail-border-radius;
+  @include transition(border .2s ease-in-out);
+
+  > img,
+  a > img {
+    @include img-responsive;
+    margin-left: auto;
+    margin-right: auto;
+  }
+
+  // [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active
+
+  // Image captions
+  .caption {
+    padding: $thumbnail-caption-padding;
+    color: $thumbnail-caption-color;
+  }
+}
+
+// Add a hover state for linked versions only
+a.thumbnail:hover,
+a.thumbnail:focus,
+a.thumbnail.active {
+  border-color: $link-color;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_tooltip.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_tooltip.scss
new file mode 100644
index 000000000..f0c165827
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_tooltip.scss
@@ -0,0 +1,101 @@
+//
+// Tooltips
+// --------------------------------------------------
+
+
+// Base class
+.tooltip {
+  position: absolute;
+  z-index: $zindex-tooltip;
+  display: block;
+  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
+  // So reset our font and text properties to avoid inheriting weird values.
+  @include reset-text;
+  font-size: $font-size-small;
+
+  @include opacity(0);
+
+  &.in     { @include opacity($tooltip-opacity); }
+  &.top    { margin-top:  -3px; padding: $tooltip-arrow-width 0; }
+  &.right  { margin-left:  3px; padding: 0 $tooltip-arrow-width; }
+  &.bottom { margin-top:   3px; padding: $tooltip-arrow-width 0; }
+  &.left   { margin-left: -3px; padding: 0 $tooltip-arrow-width; }
+}
+
+// Wrapper for the tooltip content
+.tooltip-inner {
+  max-width: $tooltip-max-width;
+  padding: 3px 8px;
+  color: $tooltip-color;
+  text-align: center;
+  background-color: $tooltip-bg;
+  border-radius: $border-radius-base;
+}
+
+// Arrows
+.tooltip-arrow {
+  position: absolute;
+  width: 0;
+  height: 0;
+  border-color: transparent;
+  border-style: solid;
+}
+// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1
+.tooltip {
+  &.top .tooltip-arrow {
+    bottom: 0;
+    left: 50%;
+    margin-left: -$tooltip-arrow-width;
+    border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
+    border-top-color: $tooltip-arrow-color;
+  }
+  &.top-left .tooltip-arrow {
+    bottom: 0;
+    right: $tooltip-arrow-width;
+    margin-bottom: -$tooltip-arrow-width;
+    border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
+    border-top-color: $tooltip-arrow-color;
+  }
+  &.top-right .tooltip-arrow {
+    bottom: 0;
+    left: $tooltip-arrow-width;
+    margin-bottom: -$tooltip-arrow-width;
+    border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
+    border-top-color: $tooltip-arrow-color;
+  }
+  &.right .tooltip-arrow {
+    top: 50%;
+    left: 0;
+    margin-top: -$tooltip-arrow-width;
+    border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
+    border-right-color: $tooltip-arrow-color;
+  }
+  &.left .tooltip-arrow {
+    top: 50%;
+    right: 0;
+    margin-top: -$tooltip-arrow-width;
+    border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
+    border-left-color: $tooltip-arrow-color;
+  }
+  &.bottom .tooltip-arrow {
+    top: 0;
+    left: 50%;
+    margin-left: -$tooltip-arrow-width;
+    border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
+    border-bottom-color: $tooltip-arrow-color;
+  }
+  &.bottom-left .tooltip-arrow {
+    top: 0;
+    right: $tooltip-arrow-width;
+    margin-top: -$tooltip-arrow-width;
+    border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
+    border-bottom-color: $tooltip-arrow-color;
+  }
+  &.bottom-right .tooltip-arrow {
+    top: 0;
+    left: $tooltip-arrow-width;
+    margin-top: -$tooltip-arrow-width;
+    border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
+    border-bottom-color: $tooltip-arrow-color;
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_type.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_type.scss
new file mode 100644
index 000000000..20c4d00ac
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_type.scss
@@ -0,0 +1,298 @@
+//
+// Typography
+// --------------------------------------------------
+
+
+// Headings
+// -------------------------
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+  font-family: $headings-font-family;
+  font-weight: $headings-font-weight;
+  line-height: $headings-line-height;
+  color: $headings-color;
+
+  small,
+  .small {
+    font-weight: normal;
+    line-height: 1;
+    color: $headings-small-color;
+  }
+}
+
+h1, .h1,
+h2, .h2,
+h3, .h3 {
+  margin-top: $line-height-computed;
+  margin-bottom: ($line-height-computed / 2);
+
+  small,
+  .small {
+    font-size: 65%;
+  }
+}
+h4, .h4,
+h5, .h5,
+h6, .h6 {
+  margin-top: ($line-height-computed / 2);
+  margin-bottom: ($line-height-computed / 2);
+
+  small,
+  .small {
+    font-size: 75%;
+  }
+}
+
+h1, .h1 { font-size: $font-size-h1; }
+h2, .h2 { font-size: $font-size-h2; }
+h3, .h3 { font-size: $font-size-h3; }
+h4, .h4 { font-size: $font-size-h4; }
+h5, .h5 { font-size: $font-size-h5; }
+h6, .h6 { font-size: $font-size-h6; }
+
+
+// Body text
+// -------------------------
+
+p {
+  margin: 0 0 ($line-height-computed / 2);
+}
+
+.lead {
+  margin-bottom: $line-height-computed;
+  font-size: floor(($font-size-base * 1.15));
+  font-weight: 300;
+  line-height: 1.4;
+
+  @media (min-width: $screen-sm-min) {
+    font-size: ($font-size-base * 1.5);
+  }
+}
+
+
+// Emphasis & misc
+// -------------------------
+
+// Ex: (12px small font / 14px base font) * 100% = about 85%
+small,
+.small {
+  font-size: floor((100% * $font-size-small / $font-size-base));
+}
+
+mark,
+.mark {
+  background-color: $state-warning-bg;
+  padding: .2em;
+}
+
+// Alignment
+.text-left           { text-align: left; }
+.text-right          { text-align: right; }
+.text-center         { text-align: center; }
+.text-justify        { text-align: justify; }
+.text-nowrap         { white-space: nowrap; }
+
+// Transformation
+.text-lowercase      { text-transform: lowercase; }
+.text-uppercase      { text-transform: uppercase; }
+.text-capitalize     { text-transform: capitalize; }
+
+// Contextual colors
+.text-muted {
+  color: $text-muted;
+}
+
+@include text-emphasis-variant('.text-primary', $brand-primary);
+
+@include text-emphasis-variant('.text-success', $state-success-text);
+
+@include text-emphasis-variant('.text-info', $state-info-text);
+
+@include text-emphasis-variant('.text-warning', $state-warning-text);
+
+@include text-emphasis-variant('.text-danger', $state-danger-text);
+
+// Contextual backgrounds
+// For now we'll leave these alongside the text classes until v4 when we can
+// safely shift things around (per SemVer rules).
+.bg-primary {
+  // Given the contrast here, this is the only class to have its color inverted
+  // automatically.
+  color: #fff;
+}
+@include bg-variant('.bg-primary', $brand-primary);
+
+@include bg-variant('.bg-success', $state-success-bg);
+
+@include bg-variant('.bg-info', $state-info-bg);
+
+@include bg-variant('.bg-warning', $state-warning-bg);
+
+@include bg-variant('.bg-danger', $state-danger-bg);
+
+
+// Page header
+// -------------------------
+
+.page-header {
+  padding-bottom: (($line-height-computed / 2) - 1);
+  margin: ($line-height-computed * 2) 0 $line-height-computed;
+  border-bottom: 1px solid $page-header-border-color;
+}
+
+
+// Lists
+// -------------------------
+
+// Unordered and Ordered lists
+ul,
+ol {
+  margin-top: 0;
+  margin-bottom: ($line-height-computed / 2);
+  ul,
+  ol {
+    margin-bottom: 0;
+  }
+}
+
+// List options
+
+// [converter] extracted from `.msp-list-unstyled` for libsass compatibility
+@mixin msp-list-unstyled {
+  padding-left: 0;
+  list-style: none;
+}
+// [converter] extracted as `@mixin msp-list-unstyled` for libsass compatibility
+.msp-list-unstyled {
+  @include msp-list-unstyled;
+}
+
+
+// Inline turns list items into inline-block
+.list-inline {
+  @include msp-list-unstyled;
+  margin-left: -5px;
+
+  > li {
+    display: inline-block;
+    padding-left: 5px;
+    padding-right: 5px;
+  }
+}
+
+// Description Lists
+dl {
+  margin-top: 0; // Remove browser default
+  margin-bottom: $line-height-computed;
+}
+dt,
+dd {
+  line-height: $line-height-base;
+}
+dt {
+  font-weight: bold;
+}
+dd {
+  margin-left: 0; // Undo browser default
+}
+
+// Horizontal description lists
+//
+// Defaults to being stacked without any of the below styles applied, until the
+// grid breakpoint is reached (default of ~768px).
+
+.dl-horizontal {
+  dd {
+    @include clearfix; // Clear the floated `dt` if an empty `dd` is present
+  }
+
+  @media (min-width: $dl-horizontal-breakpoint) {
+    dt {
+      float: left;
+      width: ($dl-horizontal-offset - 20);
+      clear: left;
+      text-align: right;
+      @include text-overflow;
+    }
+    dd {
+      margin-left: $dl-horizontal-offset;
+    }
+  }
+}
+
+
+// Misc
+// -------------------------
+
+// Abbreviations and acronyms
+abbr[title],
+// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
+abbr[data-original-title] {
+  cursor: help;
+  border-bottom: 1px dotted $abbr-border-color;
+}
+.initialism {
+  font-size: 90%;
+  @extend .text-uppercase;
+}
+
+// Blockquotes
+blockquote {
+  padding: ($line-height-computed / 2) $line-height-computed;
+  margin: 0 0 $line-height-computed;
+  font-size: $blockquote-font-size;
+  border-left: 5px solid $blockquote-border-color;
+
+  p,
+  ul,
+  ol {
+    &:last-child {
+      margin-bottom: 0;
+    }
+  }
+
+  // Note: Deprecated small and .small as of v3.1.0
+  // Context: https://github.com/twbs/bootstrap/issues/11660
+  footer,
+  small,
+  .small {
+    display: block;
+    font-size: 80%; // back to default font-size
+    line-height: $line-height-base;
+    color: $blockquote-small-color;
+
+    &:before {
+      content: '\2014 \00A0'; // em dash, nbsp
+    }
+  }
+}
+
+// Opposite alignment of blockquote
+//
+// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.
+.blockquote-reverse,
+blockquote.pull-right {
+  padding-right: 15px;
+  padding-left: 0;
+  border-right: 5px solid $blockquote-border-color;
+  border-left: 0;
+  text-align: right;
+
+  // Account for citation
+  footer,
+  small,
+  .small {
+    &:before { content: ''; }
+    &:after {
+      content: '\00A0 \2014'; // nbsp, em dash
+    }
+  }
+}
+
+// Addresses
+address {
+  margin-bottom: $line-height-computed;
+  font-style: normal;
+  line-height: $line-height-base;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_utilities.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_utilities.scss
new file mode 100644
index 000000000..8c99c7164
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_utilities.scss
@@ -0,0 +1,55 @@
+//
+// Utility classes
+// --------------------------------------------------
+
+
+// Floats
+// -------------------------
+
+.clearfix {
+  @include clearfix;
+}
+.center-block {
+  @include center-block;
+}
+.pull-right {
+  float: right !important;
+}
+.pull-left {
+  float: left !important;
+}
+
+
+// Toggling content
+// -------------------------
+
+// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
+.hide {
+  display: none !important;
+}
+.show {
+  display: block !important;
+}
+.invisible {
+  visibility: hidden;
+}
+.text-hide {
+  @include text-hide;
+}
+
+
+// Hide from screenreaders and browsers
+//
+// Credit: HTML5 Boilerplate
+
+.hidden {
+  display: none !important;
+}
+
+
+// For Affix plugin
+// -------------------------
+
+.affix {
+  position: fixed;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_variables.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_variables.scss
new file mode 100644
index 000000000..965132ff2
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_variables.scss
@@ -0,0 +1,874 @@
+$bootstrap-sass-asset-helper: false !default;
+//
+// Variables
+// --------------------------------------------------
+
+
+//== Colors
+//
+//## Gray and brand colors for use across Bootstrap.
+
+$gray-base:              #000 !default;
+$gray-darker:            lighten($gray-base, 13.5%) !default; // #222
+$gray-dark:              lighten($gray-base, 20%) !default;   // #333
+$gray:                   lighten($gray-base, 33.5%) !default; // #555
+$gray-light:             lighten($gray-base, 46.7%) !default; // #777
+$gray-lighter:           lighten($gray-base, 93.5%) !default; // #eee
+
+$brand-primary:         darken(#428bca, 6.5%) !default; // #337ab7
+$brand-success:         #5cb85c !default;
+$brand-info:            #5bc0de !default;
+$brand-warning:         #f0ad4e !default;
+$brand-danger:          #d9534f !default;
+
+
+//== Scaffolding
+//
+//## Settings for some of the most global styles.
+
+//** Background color for `<body>`.
+$body-bg:               #fff !default;
+//** Global text color on `<body>`.
+$text-color:            $gray-dark !default;
+
+//** Global textual link color.
+$link-color:            $brand-primary !default;
+//** Link hover color set via `darken()` function.
+$link-hover-color:      darken($link-color, 15%) !default;
+//** Link hover decoration.
+$link-hover-decoration: underline !default;
+
+
+//== Typography
+//
+//## Font, line-height, and color for body text, headings, and more.
+
+$font-family-sans-serif:  "Helvetica Neue", Helvetica, Arial, sans-serif !default;
+$font-family-serif:       Georgia, "Times New Roman", Times, serif !default;
+//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
+$font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace !default;
+$font-family-base:        $font-family-sans-serif !default;
+
+$font-size-base:          14px !default;
+$font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px
+$font-size-small:         ceil(($font-size-base * 0.85)) !default; // ~12px
+
+$font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px
+$font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px
+$font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px
+$font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px
+$font-size-h5:            $font-size-base !default;
+$font-size-h6:            ceil(($font-size-base * 0.85)) !default; // ~12px
+
+//** Unit-less `line-height` for use in components like buttons.
+$line-height-base:        1.428571429 !default; // 20/14
+//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
+$line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px
+
+//** By default, this inherits from the `<body>`.
+$headings-font-family:    inherit !default;
+$headings-font-weight:    500 !default;
+$headings-line-height:    1.1 !default;
+$headings-color:          inherit !default;
+
+
+//== Iconography
+//
+//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
+
+//** Load fonts from this directory.
+
+// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.
+// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.
+$icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "../fonts/bootstrap/") !default;
+
+//** File name for all font files.
+$icon-font-name:          "glyphicons-halflings-regular" !default;
+//** Element ID within SVG icon file.
+$icon-font-svg-id:        "glyphicons_halflingsregular" !default;
+
+
+//== Components
+//
+//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
+
+$padding-base-vertical:     6px !default;
+$padding-base-horizontal:   12px !default;
+
+$padding-large-vertical:    10px !default;
+$padding-large-horizontal:  16px !default;
+
+$padding-small-vertical:    5px !default;
+$padding-small-horizontal:  10px !default;
+
+$padding-xs-vertical:       1px !default;
+$padding-xs-horizontal:     5px !default;
+
+$line-height-large:         1.3333333 !default; // extra decimals for Win 8.1 Chrome
+$line-height-small:         1.5 !default;
+
+$border-radius-base:        4px !default;
+$border-radius-large:       6px !default;
+$border-radius-small:       3px !default;
+
+//** Global color for active items (e.g., navs or dropdowns).
+$component-active-color:    #fff !default;
+//** Global background color for active items (e.g., navs or dropdowns).
+$component-active-bg:       $brand-primary !default;
+
+//** Width of the `border` for generating carets that indicator dropdowns.
+$caret-width-base:          4px !default;
+//** Carets increase slightly in size for larger components.
+$caret-width-large:         5px !default;
+
+
+//== Tables
+//
+//## Customizes the `.table` component with basic values, each used across all table variations.
+
+//** Padding for `<th>`s and `<td>`s.
+$table-cell-padding:            8px !default;
+//** Padding for cells in `.table-condensed`.
+$table-condensed-cell-padding:  5px !default;
+
+//** Default background color used for all tables.
+$table-bg:                      transparent !default;
+//** Background color used for `.table-striped`.
+$table-bg-accent:               #f9f9f9 !default;
+//** Background color used for `.table-hover`.
+$table-bg-hover:                #f5f5f5 !default;
+$table-bg-active:               $table-bg-hover !default;
+
+//** Border color for table and cell borders.
+$table-border-color:            #ddd !default;
+
+
+//== Buttons
+//
+//## For each of Bootstrap's buttons, define text, background and border color.
+
+$msp-btn-font-weight:                normal !default;
+
+$msp-btn-default-color:              #333 !default;
+$msp-btn-default-bg:                 #fff !default;
+$msp-btn-default-border:             #ccc !default;
+
+$msp-btn-primary-color:              #fff !default;
+$msp-btn-primary-bg:                 $brand-primary !default;
+$msp-btn-primary-border:             darken($msp-btn-primary-bg, 5%) !default;
+
+$msp-btn-success-color:              #fff !default;
+$msp-btn-success-bg:                 $brand-success !default;
+$msp-btn-success-border:             darken($msp-btn-success-bg, 5%) !default;
+
+$msp-btn-info-color:                 #fff !default;
+$msp-btn-info-bg:                    $brand-info !default;
+$msp-btn-info-border:                darken($msp-btn-info-bg, 5%) !default;
+
+$msp-btn-warning-color:              #fff !default;
+$msp-btn-warning-bg:                 $brand-warning !default;
+$msp-btn-warning-border:             darken($msp-btn-warning-bg, 5%) !default;
+
+$msp-btn-danger-color:               #fff !default;
+$msp-btn-danger-bg:                  $brand-danger !default;
+$msp-btn-danger-border:              darken($msp-btn-danger-bg, 5%) !default;
+
+$msp-btn-link-disabled-color:        $gray-light !default;
+
+// Allows for customizing button radius independently from global border radius
+$msp-btn-border-radius-base:         $border-radius-base !default;
+$msp-btn-border-radius-large:        $border-radius-large !default;
+$msp-btn-border-radius-small:        $border-radius-small !default;
+
+
+//== Forms
+//
+//##
+
+//** `<input>` background color
+$input-bg:                       #fff !default;
+//** `<input disabled>` background color
+$input-bg-disabled:              $gray-lighter !default;
+
+//** Text color for `<input>`s
+$input-color:                    $gray !default;
+//** `<input>` border color
+$input-border:                   #ccc !default;
+
+// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
+//** Default `.msp-form-control` border radius
+// This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS.
+$input-border-radius:            $border-radius-base !default;
+//** Large `.msp-form-control` border radius
+$input-border-radius-large:      $border-radius-large !default;
+//** Small `.msp-form-control` border radius
+$input-border-radius-small:      $border-radius-small !default;
+
+//** Border color for inputs on focus
+$input-border-focus:             #66afe9 !default;
+
+//** Placeholder text color
+$input-color-placeholder:        #999 !default;
+
+//** Default `.msp-form-control` height
+$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;
+//** Large `.msp-form-control` height
+$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;
+//** Small `.msp-form-control` height
+$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;
+
+//** `.form-group` margin
+$form-group-margin-bottom:       15px !default;
+
+$legend-color:                   $gray-dark !default;
+$legend-border-color:            #e5e5e5 !default;
+
+//** Background color for textual input addons
+$input-group-addon-bg:           $gray-lighter !default;
+//** Border color for textual input addons
+$input-group-addon-border-color: $input-border !default;
+
+//** Disabled cursor for form controls and buttons.
+$cursor-disabled:                not-allowed !default;
+
+
+//== Dropdowns
+//
+//## Dropdown menu container and contents.
+
+//** Background for the dropdown menu.
+$dropdown-bg:                    #fff !default;
+//** Dropdown menu `border-color`.
+$dropdown-border:                rgba(0,0,0,.15) !default;
+//** Dropdown menu `border-color` **for IE8**.
+$dropdown-fallback-border:       #ccc !default;
+//** Divider color for between dropdown items.
+$dropdown-divider-bg:            #e5e5e5 !default;
+
+//** Dropdown link text color.
+$dropdown-link-color:            $gray-dark !default;
+//** Hover color for dropdown links.
+$dropdown-link-hover-color:      darken($gray-dark, 5%) !default;
+//** Hover background for dropdown links.
+$dropdown-link-hover-bg:         #f5f5f5 !default;
+
+//** Active dropdown menu item text color.
+$dropdown-link-active-color:     $component-active-color !default;
+//** Active dropdown menu item background color.
+$dropdown-link-active-bg:        $component-active-bg !default;
+
+//** Disabled dropdown menu item background color.
+$dropdown-link-disabled-color:   $gray-light !default;
+
+//** Text color for headers within dropdown menus.
+$dropdown-header-color:          $gray-light !default;
+
+//** Deprecated `$dropdown-caret-color` as of v3.1.0
+$dropdown-caret-color:           #000 !default;
+
+
+//-- Z-index master list
+//
+// Warning: Avoid customizing these values. They're used for a bird's eye view
+// of components dependent on the z-axis and are designed to all work together.
+//
+// Note: These variables are not generated into the Customizer.
+
+$zindex-navbar:            1000 !default;
+$zindex-dropdown:          1000 !default;
+$zindex-popover:           1060 !default;
+$zindex-tooltip:           1070 !default;
+$zindex-navbar-fixed:      1030 !default;
+$zindex-modal-background:  1040 !default;
+$zindex-modal:             1050 !default;
+
+
+//== Media queries breakpoints
+//
+//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
+
+// Extra small screen / phone
+//** Deprecated `$screen-xs` as of v3.0.1
+$screen-xs:                  480px !default;
+//** Deprecated `$screen-xs-min` as of v3.2.0
+$screen-xs-min:              $screen-xs !default;
+//** Deprecated `$screen-phone` as of v3.0.1
+$screen-phone:               $screen-xs-min !default;
+
+// Small screen / tablet
+//** Deprecated `$screen-sm` as of v3.0.1
+$screen-sm:                  768px !default;
+$screen-sm-min:              $screen-sm !default;
+//** Deprecated `$screen-tablet` as of v3.0.1
+$screen-tablet:              $screen-sm-min !default;
+
+// Medium screen / desktop
+//** Deprecated `$screen-md` as of v3.0.1
+$screen-md:                  992px !default;
+$screen-md-min:              $screen-md !default;
+//** Deprecated `$screen-desktop` as of v3.0.1
+$screen-desktop:             $screen-md-min !default;
+
+// Large screen / wide desktop
+//** Deprecated `$screen-lg` as of v3.0.1
+$screen-lg:                  1200px !default;
+$screen-lg-min:              $screen-lg !default;
+//** Deprecated `$screen-lg-desktop` as of v3.0.1
+$screen-lg-desktop:          $screen-lg-min !default;
+
+// So media queries don't overlap when required, provide a maximum
+$screen-xs-max:              ($screen-sm-min - 1) !default;
+$screen-sm-max:              ($screen-md-min - 1) !default;
+$screen-md-max:              ($screen-lg-min - 1) !default;
+
+
+//== Grid system
+//
+//## Define your custom responsive grid.
+
+//** Number of columns in the grid.
+$grid-columns:              12 !default;
+//** Padding between columns. Gets divided in half for the left and right.
+$grid-gutter-width:         30px !default;
+// Navbar collapse
+//** Point at which the navbar becomes uncollapsed.
+$grid-float-breakpoint:     $screen-sm-min !default;
+//** Point at which the navbar begins collapsing.
+$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
+
+
+//== Container sizes
+//
+//## Define the maximum width of `.container` for different screen sizes.
+
+// Small screen / tablet
+$container-tablet:             (720px + $grid-gutter-width) !default;
+//** For `$screen-sm-min` and up.
+$container-sm:                 $container-tablet !default;
+
+// Medium screen / desktop
+$container-desktop:            (940px + $grid-gutter-width) !default;
+//** For `$screen-md-min` and up.
+$container-md:                 $container-desktop !default;
+
+// Large screen / wide desktop
+$container-large-desktop:      (1140px + $grid-gutter-width) !default;
+//** For `$screen-lg-min` and up.
+$container-lg:                 $container-large-desktop !default;
+
+
+//== Navbar
+//
+//##
+
+// Basics of a navbar
+$navbar-height:                    50px !default;
+$navbar-margin-bottom:             $line-height-computed !default;
+$navbar-border-radius:             $border-radius-base !default;
+$navbar-padding-horizontal:        floor(($grid-gutter-width / 2)) !default;
+$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2) !default;
+$navbar-collapse-max-height:       340px !default;
+
+$navbar-default-color:             #777 !default;
+$navbar-default-bg:                #f8f8f8 !default;
+$navbar-default-border:            darken($navbar-default-bg, 6.5%) !default;
+
+// Navbar links
+$navbar-default-link-color:                #777 !default;
+$navbar-default-link-hover-color:          #333 !default;
+$navbar-default-link-hover-bg:             transparent !default;
+$navbar-default-link-active-color:         #555 !default;
+$navbar-default-link-active-bg:            darken($navbar-default-bg, 6.5%) !default;
+$navbar-default-link-disabled-color:       #ccc !default;
+$navbar-default-link-disabled-bg:          transparent !default;
+
+// Navbar brand label
+$navbar-default-brand-color:               $navbar-default-link-color !default;
+$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%) !default;
+$navbar-default-brand-hover-bg:            transparent !default;
+
+// Navbar toggle
+$navbar-default-toggle-hover-bg:           #ddd !default;
+$navbar-default-toggle-icon-bar-bg:        #888 !default;
+$navbar-default-toggle-border-color:       #ddd !default;
+
+
+//=== Inverted navbar
+// Reset inverted navbar basics
+$navbar-inverse-color:                      lighten($gray-light, 15%) !default;
+$navbar-inverse-bg:                         #222 !default;
+$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%) !default;
+
+// Inverted navbar links
+$navbar-inverse-link-color:                 lighten($gray-light, 15%) !default;
+$navbar-inverse-link-hover-color:           #fff !default;
+$navbar-inverse-link-hover-bg:              transparent !default;
+$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color !default;
+$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%) !default;
+$navbar-inverse-link-disabled-color:        #444 !default;
+$navbar-inverse-link-disabled-bg:           transparent !default;
+
+// Inverted navbar brand label
+$navbar-inverse-brand-color:                $navbar-inverse-link-color !default;
+$navbar-inverse-brand-hover-color:          #fff !default;
+$navbar-inverse-brand-hover-bg:             transparent !default;
+
+// Inverted navbar toggle
+$navbar-inverse-toggle-hover-bg:            #333 !default;
+$navbar-inverse-toggle-icon-bar-bg:         #fff !default;
+$navbar-inverse-toggle-border-color:        #333 !default;
+
+
+//== Navs
+//
+//##
+
+//=== Shared nav styles
+$nav-link-padding:                          10px 15px !default;
+$nav-link-hover-bg:                         $gray-lighter !default;
+
+$nav-disabled-link-color:                   $gray-light !default;
+$nav-disabled-link-hover-color:             $gray-light !default;
+
+//== Tabs
+$nav-tabs-border-color:                     #ddd !default;
+
+$nav-tabs-link-hover-border-color:          $gray-lighter !default;
+
+$nav-tabs-active-link-hover-bg:             $body-bg !default;
+$nav-tabs-active-link-hover-color:          $gray !default;
+$nav-tabs-active-link-hover-border-color:   #ddd !default;
+
+$nav-tabs-justified-link-border-color:            #ddd !default;
+$nav-tabs-justified-active-link-border-color:     $body-bg !default;
+
+//== Pills
+$nav-pills-border-radius:                   $border-radius-base !default;
+$nav-pills-active-link-hover-bg:            $component-active-bg !default;
+$nav-pills-active-link-hover-color:         $component-active-color !default;
+
+
+//== Pagination
+//
+//##
+
+$pagination-color:                     $link-color !default;
+$pagination-bg:                        #fff !default;
+$pagination-border:                    #ddd !default;
+
+$pagination-hover-color:               $link-hover-color !default;
+$pagination-hover-bg:                  $gray-lighter !default;
+$pagination-hover-border:              #ddd !default;
+
+$pagination-active-color:              #fff !default;
+$pagination-active-bg:                 $brand-primary !default;
+$pagination-active-border:             $brand-primary !default;
+
+$pagination-disabled-color:            $gray-light !default;
+$pagination-disabled-bg:               #fff !default;
+$pagination-disabled-border:           #ddd !default;
+
+
+//== Pager
+//
+//##
+
+$pager-bg:                             $pagination-bg !default;
+$pager-border:                         $pagination-border !default;
+$pager-border-radius:                  15px !default;
+
+$pager-hover-bg:                       $pagination-hover-bg !default;
+
+$pager-active-bg:                      $pagination-active-bg !default;
+$pager-active-color:                   $pagination-active-color !default;
+
+$pager-disabled-color:                 $pagination-disabled-color !default;
+
+
+//== Jumbotron
+//
+//##
+
+$jumbotron-padding:              30px !default;
+$jumbotron-color:                inherit !default;
+$jumbotron-bg:                   $gray-lighter !default;
+$jumbotron-heading-color:        inherit !default;
+$jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;
+$jumbotron-heading-font-size:    ceil(($font-size-base * 4.5)) !default;
+
+
+//== Form states and alerts
+//
+//## Define colors for form feedback states and, by default, alerts.
+
+$state-success-text:             #3c763d !default;
+$state-success-bg:               #dff0d8 !default;
+$state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%) !default;
+
+$state-info-text:                #31708f !default;
+$state-info-bg:                  #d9edf7 !default;
+$state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%) !default;
+
+$state-warning-text:             #8a6d3b !default;
+$state-warning-bg:               #fcf8e3 !default;
+$state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%) !default;
+
+$state-danger-text:              #a94442 !default;
+$state-danger-bg:                #f2dede !default;
+$state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%) !default;
+
+
+//== Tooltips
+//
+//##
+
+//** Tooltip max width
+$tooltip-max-width:           200px !default;
+//** Tooltip text color
+$tooltip-color:               #fff !default;
+//** Tooltip background color
+$tooltip-bg:                  #000 !default;
+$tooltip-opacity:             .9 !default;
+
+//** Tooltip arrow width
+$tooltip-arrow-width:         5px !default;
+//** Tooltip arrow color
+$tooltip-arrow-color:         $tooltip-bg !default;
+
+
+//== Popovers
+//
+//##
+
+//** Popover body background color
+$popover-bg:                          #fff !default;
+//** Popover maximum width
+$popover-max-width:                   276px !default;
+//** Popover border color
+$popover-border-color:                rgba(0,0,0,.2) !default;
+//** Popover fallback border color
+$popover-fallback-border-color:       #ccc !default;
+
+//** Popover title background color
+$popover-title-bg:                    darken($popover-bg, 3%) !default;
+
+//** Popover arrow width
+$popover-arrow-width:                 10px !default;
+//** Popover arrow color
+$popover-arrow-color:                 $popover-bg !default;
+
+//** Popover outer arrow width
+$popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;
+//** Popover outer arrow color
+$popover-arrow-outer-color:           fade_in($popover-border-color, 0.05) !default;
+//** Popover outer arrow fallback color
+$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;
+
+
+//== Labels
+//
+//##
+
+//** Default label background color
+$label-default-bg:            $gray-light !default;
+//** Primary label background color
+$label-primary-bg:            $brand-primary !default;
+//** Success label background color
+$label-success-bg:            $brand-success !default;
+//** Info label background color
+$label-info-bg:               $brand-info !default;
+//** Warning label background color
+$label-warning-bg:            $brand-warning !default;
+//** Danger label background color
+$label-danger-bg:             $brand-danger !default;
+
+//** Default label text color
+$label-color:                 #fff !default;
+//** Default text color of a linked label
+$label-link-hover-color:      #fff !default;
+
+
+//== Modals
+//
+//##
+
+//** Padding applied to the modal body
+$modal-inner-padding:         15px !default;
+
+//** Padding applied to the modal title
+$modal-title-padding:         15px !default;
+//** Modal title line-height
+$modal-title-line-height:     $line-height-base !default;
+
+//** Background color of modal content area
+$modal-content-bg:                             #fff !default;
+//** Modal content border color
+$modal-content-border-color:                   rgba(0,0,0,.2) !default;
+//** Modal content border color **for IE8**
+$modal-content-fallback-border-color:          #999 !default;
+
+//** Modal backdrop background color
+$modal-backdrop-bg:           #000 !default;
+//** Modal backdrop opacity
+$modal-backdrop-opacity:      .5 !default;
+//** Modal header border color
+$modal-header-border-color:   #e5e5e5 !default;
+//** Modal footer border color
+$modal-footer-border-color:   $modal-header-border-color !default;
+
+$modal-lg:                    900px !default;
+$modal-md:                    600px !default;
+$modal-sm:                    300px !default;
+
+
+//== Alerts
+//
+//## Define alert colors, border radius, and padding.
+
+$alert-padding:               15px !default;
+$alert-border-radius:         $border-radius-base !default;
+$alert-link-font-weight:      bold !default;
+
+$alert-success-bg:            $state-success-bg !default;
+$alert-success-text:          $state-success-text !default;
+$alert-success-border:        $state-success-border !default;
+
+$alert-info-bg:               $state-info-bg !default;
+$alert-info-text:             $state-info-text !default;
+$alert-info-border:           $state-info-border !default;
+
+$alert-warning-bg:            $state-warning-bg !default;
+$alert-warning-text:          $state-warning-text !default;
+$alert-warning-border:        $state-warning-border !default;
+
+$alert-danger-bg:             $state-danger-bg !default;
+$alert-danger-text:           $state-danger-text !default;
+$alert-danger-border:         $state-danger-border !default;
+
+
+//== Progress bars
+//
+//##
+
+//** Background color of the whole progress component
+$progress-bg:                 #f5f5f5 !default;
+//** Progress bar text color
+$progress-bar-color:          #fff !default;
+//** Variable for setting rounded corners on progress bar.
+$progress-border-radius:      $border-radius-base !default;
+
+//** Default progress bar color
+$progress-bar-bg:             $brand-primary !default;
+//** Success progress bar color
+$progress-bar-success-bg:     $brand-success !default;
+//** Warning progress bar color
+$progress-bar-warning-bg:     $brand-warning !default;
+//** Danger progress bar color
+$progress-bar-danger-bg:      $brand-danger !default;
+//** Info progress bar color
+$progress-bar-info-bg:        $brand-info !default;
+
+
+//== List group
+//
+//##
+
+//** Background color on `.list-group-item`
+$list-group-bg:                 #fff !default;
+//** `.list-group-item` border color
+$list-group-border:             #ddd !default;
+//** List group border radius
+$list-group-border-radius:      $border-radius-base !default;
+
+//** Background color of single list items on hover
+$list-group-hover-bg:           #f5f5f5 !default;
+//** Text color of active list items
+$list-group-active-color:       $component-active-color !default;
+//** Background color of active list items
+$list-group-active-bg:          $component-active-bg !default;
+//** Border color of active list elements
+$list-group-active-border:      $list-group-active-bg !default;
+//** Text color for content within active list items
+$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;
+
+//** Text color of disabled list items
+$list-group-disabled-color:      $gray-light !default;
+//** Background color of disabled list items
+$list-group-disabled-bg:         $gray-lighter !default;
+//** Text color for content within disabled list items
+$list-group-disabled-text-color: $list-group-disabled-color !default;
+
+$list-group-link-color:         #555 !default;
+$list-group-link-hover-color:   $list-group-link-color !default;
+$list-group-link-heading-color: #333 !default;
+
+
+//== Panels
+//
+//##
+
+$panel-bg:                    #fff !default;
+$panel-body-padding:          15px !default;
+$panel-heading-padding:       10px 15px !default;
+$panel-footer-padding:        $panel-heading-padding !default;
+$panel-border-radius:         $border-radius-base !default;
+
+//** Border color for elements within panels
+$panel-inner-border:          #ddd !default;
+$panel-footer-bg:             #f5f5f5 !default;
+
+$panel-default-text:          $gray-dark !default;
+$panel-default-border:        #ddd !default;
+$panel-default-heading-bg:    #f5f5f5 !default;
+
+$panel-primary-text:          #fff !default;
+$panel-primary-border:        $brand-primary !default;
+$panel-primary-heading-bg:    $brand-primary !default;
+
+$panel-success-text:          $state-success-text !default;
+$panel-success-border:        $state-success-border !default;
+$panel-success-heading-bg:    $state-success-bg !default;
+
+$panel-info-text:             $state-info-text !default;
+$panel-info-border:           $state-info-border !default;
+$panel-info-heading-bg:       $state-info-bg !default;
+
+$panel-warning-text:          $state-warning-text !default;
+$panel-warning-border:        $state-warning-border !default;
+$panel-warning-heading-bg:    $state-warning-bg !default;
+
+$panel-danger-text:           $state-danger-text !default;
+$panel-danger-border:         $state-danger-border !default;
+$panel-danger-heading-bg:     $state-danger-bg !default;
+
+
+//== Thumbnails
+//
+//##
+
+//** Padding around the thumbnail image
+$thumbnail-padding:           4px !default;
+//** Thumbnail background color
+$thumbnail-bg:                $body-bg !default;
+//** Thumbnail border color
+$thumbnail-border:            #ddd !default;
+//** Thumbnail border radius
+$thumbnail-border-radius:     $border-radius-base !default;
+
+//** Custom text color for thumbnail captions
+$thumbnail-caption-color:     $text-color !default;
+//** Padding around the thumbnail caption
+$thumbnail-caption-padding:   9px !default;
+
+
+//== Wells
+//
+//##
+
+$well-bg:                     #f5f5f5 !default;
+$well-border:                 darken($well-bg, 7%) !default;
+
+
+//== Badges
+//
+//##
+
+$badge-color:                 #fff !default;
+//** Linked badge text color on hover
+$badge-link-hover-color:      #fff !default;
+$badge-bg:                    $gray-light !default;
+
+//** Badge text color in active nav link
+$badge-active-color:          $link-color !default;
+//** Badge background color in active nav link
+$badge-active-bg:             #fff !default;
+
+$badge-font-weight:           bold !default;
+$badge-line-height:           1 !default;
+$badge-border-radius:         10px !default;
+
+
+//== Breadcrumbs
+//
+//##
+
+$breadcrumb-padding-vertical:   8px !default;
+$breadcrumb-padding-horizontal: 15px !default;
+//** Breadcrumb background color
+$breadcrumb-bg:                 #f5f5f5 !default;
+//** Breadcrumb text color
+$breadcrumb-color:              #ccc !default;
+//** Text color of current page in the breadcrumb
+$breadcrumb-active-color:       $gray-light !default;
+//** Textual separator for between breadcrumb elements
+$breadcrumb-separator:          "/" !default;
+
+
+//== Carousel
+//
+//##
+
+$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;
+
+$carousel-control-color:                      #fff !default;
+$carousel-control-width:                      15% !default;
+$carousel-control-opacity:                    .5 !default;
+$carousel-control-font-size:                  20px !default;
+
+$carousel-indicator-active-bg:                #fff !default;
+$carousel-indicator-border-color:             #fff !default;
+
+$carousel-caption-color:                      #fff !default;
+
+
+//== Close
+//
+//##
+
+$close-font-weight:           bold !default;
+$close-color:                 #000 !default;
+$close-text-shadow:           0 1px 0 #fff !default;
+
+
+//== Code
+//
+//##
+
+$code-color:                  #c7254e !default;
+$code-bg:                     #f9f2f4 !default;
+
+$kbd-color:                   #fff !default;
+$kbd-bg:                      #333 !default;
+
+$pre-bg:                      #f5f5f5 !default;
+$pre-color:                   $gray-dark !default;
+$pre-border-color:            #ccc !default;
+$pre-scrollable-max-height:   340px !default;
+
+
+//== Type
+//
+//##
+
+//** Horizontal offset for forms and lists.
+$component-offset-horizontal: 180px !default;
+//** Text muted color
+$text-muted:                  $gray-light !default;
+//** Abbreviations and acronyms border color
+$abbr-border-color:           $gray-light !default;
+//** Headings small color
+$headings-small-color:        $gray-light !default;
+//** Blockquote small color
+$blockquote-small-color:      $gray-light !default;
+//** Blockquote font size
+$blockquote-font-size:        ($font-size-base * 1.25) !default;
+//** Blockquote border color
+$blockquote-border-color:     $gray-lighter !default;
+//** Page header border color
+$page-header-border-color:    $gray-lighter !default;
+//** Width of horizontal description list titles
+$dl-horizontal-offset:        $component-offset-horizontal !default;
+//** Point at which .dl-horizontal becomes horizontal
+$dl-horizontal-breakpoint:    $grid-float-breakpoint !default;
+//** Horizontal line color.
+$hr-border:                   $gray-lighter !default;
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/_wells.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/_wells.scss
new file mode 100644
index 000000000..b8657118a
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/_wells.scss
@@ -0,0 +1,29 @@
+//
+// Wells
+// --------------------------------------------------
+
+
+// Base class
+.well {
+  min-height: 20px;
+  padding: 19px;
+  margin-bottom: 20px;
+  background-color: $well-bg;
+  border: 1px solid $well-border;
+  border-radius: $border-radius-base;
+  @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
+  blockquote {
+    border-color: #ddd;
+    border-color: rgba(0,0,0,.15);
+  }
+}
+
+// Sizes
+.well-lg {
+  padding: 24px;
+  border-radius: $border-radius-large;
+}
+.well-sm {
+  padding: 9px;
+  border-radius: $border-radius-small;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_alerts.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_alerts.scss
new file mode 100644
index 000000000..3faf0b5a5
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_alerts.scss
@@ -0,0 +1,14 @@
+// Alerts
+
+@mixin alert-variant($background, $border, $text-color) {
+  background-color: $background;
+  border-color: $border;
+  color: $text-color;
+
+  hr {
+    border-top-color: darken($border, 5%);
+  }
+  .alert-link {
+    color: darken($text-color, 10%);
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_background-variant.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_background-variant.scss
new file mode 100644
index 000000000..4c7769e13
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_background-variant.scss
@@ -0,0 +1,12 @@
+// Contextual backgrounds
+
+// [converter] $parent hack
+@mixin bg-variant($parent, $color) {
+  #{$parent} {
+    background-color: $color;
+  }
+  a#{$parent}:hover,
+  a#{$parent}:focus {
+    background-color: darken($color, 10%);
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_border-radius.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_border-radius.scss
new file mode 100644
index 000000000..ce1949987
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_border-radius.scss
@@ -0,0 +1,18 @@
+// Single side border-radius
+
+@mixin border-top-radius($radius) {
+  border-top-right-radius: $radius;
+   border-top-left-radius: $radius;
+}
+@mixin border-right-radius($radius) {
+  border-bottom-right-radius: $radius;
+     border-top-right-radius: $radius;
+}
+@mixin border-bottom-radius($radius) {
+  border-bottom-right-radius: $radius;
+   border-bottom-left-radius: $radius;
+}
+@mixin border-left-radius($radius) {
+  border-bottom-left-radius: $radius;
+     border-top-left-radius: $radius;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_buttons.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_buttons.scss
new file mode 100644
index 000000000..b93f84b2c
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_buttons.scss
@@ -0,0 +1,65 @@
+// Button variants
+//
+// Easily pump out default styles, as well as :hover, :focus, :active,
+// and disabled options for all buttons
+
+@mixin button-variant($color, $background, $border) {
+  color: $color;
+  background-color: $background;
+  border-color: $border;
+
+  &:focus,
+  &.focus {
+    color: $color;
+    background-color: darken($background, 10%);
+        border-color: darken($border, 25%);
+  }
+  &:hover {
+    color: $color;
+    background-color: darken($background, 10%);
+        border-color: darken($border, 12%);
+  }
+  &:active,
+  &.active,
+  .open > &.dropdown-toggle {
+    color: $color;
+    background-color: darken($background, 10%);
+        border-color: darken($border, 12%);
+
+    &:hover,
+    &:focus,
+    &.focus {
+      color: $color;
+      background-color: darken($background, 17%);
+          border-color: darken($border, 25%);
+    }
+  }
+  &:active,
+  &.active,
+  .open > &.dropdown-toggle {
+    background-image: none;
+  }
+  &.disabled,
+  &[disabled],
+  fieldset[disabled] & {
+    &:hover,
+    &:focus,
+    &.focus {
+      background-color: $background;
+          border-color: $border;
+    }
+  }
+
+  .badge {
+    color: $background;
+    background-color: $color;
+  }
+}
+
+// Button sizes
+@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
+  padding: $padding-vertical $padding-horizontal;
+  font-size: $font-size;
+  line-height: $line-height;
+  border-radius: $border-radius;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_center-block.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_center-block.scss
new file mode 100644
index 000000000..e06fb5e27
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_center-block.scss
@@ -0,0 +1,7 @@
+// Center-align a block level element
+
+@mixin center-block() {
+  display: block;
+  margin-left: auto;
+  margin-right: auto;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_clearfix.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_clearfix.scss
new file mode 100644
index 000000000..dc3e2ab42
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_clearfix.scss
@@ -0,0 +1,22 @@
+// Clearfix
+//
+// For modern browsers
+// 1. The space content is one way to avoid an Opera bug when the
+//    contenteditable attribute is included anywhere else in the document.
+//    Otherwise it causes space to appear at the top and bottom of elements
+//    that are clearfixed.
+// 2. The use of `table` rather than `block` is only necessary if using
+//    `:before` to contain the top-margins of child elements.
+//
+// Source: http://nicolasgallagher.com/micro-clearfix-hack/
+
+@mixin clearfix() {
+  &:before,
+  &:after {
+    content: " "; // 1
+    display: table; // 2
+  }
+  &:after {
+    clear: both;
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_forms.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_forms.scss
new file mode 100644
index 000000000..839067327
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_forms.scss
@@ -0,0 +1,88 @@
+// Form validation states
+//
+// Used in forms.less to generate the form validation CSS for warnings, errors,
+// and successes.
+
+@mixin msp-form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) {
+  // Color the label and help text
+  .help-block,
+  .control-label,
+  .radio,
+  .checkbox,
+  .radio-inline,
+  .checkbox-inline,
+  &.radio label,
+  &.checkbox label,
+  &.radio-inline label,
+  &.checkbox-inline label  {
+    color: $text-color;
+  }
+  // Set the border and box shadow on specific inputs to match
+  .msp-form-control {
+    border-color: $border-color;
+    @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
+    &:focus {
+      border-color: darken($border-color, 10%);
+      $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
+      @include box-shadow($shadow);
+    }
+  }
+  // Set validation states also for addons
+  .input-group-addon {
+    color: $text-color;
+    border-color: $border-color;
+    background-color: $background-color;
+  }
+  // Optional feedback icon
+  .msp-form-control-feedback {
+    color: $text-color;
+  }
+}
+
+
+// Form control focus state
+//
+// Generate a customized focus state and for any input with the specified color,
+// which defaults to the `$input-border-focus` variable.
+//
+// We highly encourage you to not customize the default value, but instead use
+// this to tweak colors on an as-needed basis. This aesthetic change is based on
+// WebKit's default styles, but applicable to a wider range of browsers. Its
+// usability and accessibility should be taken into account with any change.
+//
+// Example usage: change the default blue border and shadow to white for better
+// contrast against a dark gray background.
+@mixin msp-form-control-focus($color: $input-border-focus) {
+  $color-rgba: rgba(red($color), green($color), blue($color), .6);
+  &:focus {
+    border-color: $color;
+    outline: 0;
+    @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba);
+  }
+}
+
+// Form control sizing
+//
+// Relative text size, padding, and border-radii changes for form controls. For
+// horizontal sizing, wrap controls in the predefined grid classes. `<select>`
+// element gets special love because it's special, and that's a fact!
+// [converter] $parent hack
+@mixin input-size($parent, $input-height, $padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
+  #{$parent} {
+    height: $input-height;
+    padding: $padding-vertical $padding-horizontal;
+    font-size: $font-size;
+    line-height: $line-height;
+    border-radius: $border-radius;
+  }
+
+  select#{$parent} {
+    height: $input-height;
+    line-height: $input-height;
+  }
+
+  textarea#{$parent},
+  select[multiple]#{$parent} {
+    height: auto;
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_gradients.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_gradients.scss
new file mode 100644
index 000000000..a8939f5ae
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_gradients.scss
@@ -0,0 +1,58 @@
+// Gradients
+
+
+
+// Horizontal gradient, from left to right
+//
+// Creates two color stops, start and end, by specifying a color and position for each color stop.
+// Color stops are not available in IE9 and below.
+@mixin gradient-horizontal($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
+  background-image: -webkit-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Safari 5.1-6, Chrome 10+
+  background-image: -o-linear-gradient(left, $start-color $start-percent, $end-color $end-percent); // Opera 12
+  background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down
+}
+
+// Vertical gradient, from top to bottom
+//
+// Creates two color stops, start and end, by specifying a color and position for each color stop.
+// Color stops are not available in IE9 and below.
+@mixin gradient-vertical($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
+  background-image: -webkit-linear-gradient(top, $start-color $start-percent, $end-color $end-percent);  // Safari 5.1-6, Chrome 10+
+  background-image: -o-linear-gradient(top, $start-color $start-percent, $end-color $end-percent);  // Opera 12
+  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down
+}
+
+@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
+  background-repeat: repeat-x;
+  background-image: -webkit-linear-gradient($deg, $start-color, $end-color); // Safari 5.1-6, Chrome 10+
+  background-image: -o-linear-gradient($deg, $start-color, $end-color); // Opera 12
+  background-image: linear-gradient($deg, $start-color, $end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+}
+@mixin gradient-horizontal-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
+  background-image: -webkit-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
+  background-image: -o-linear-gradient(left, $start-color, $mid-color $color-stop, $end-color);
+  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
+  background-repeat: no-repeat;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=1); // IE9 and down, gets no color-stop at all for proper fallback
+}
+@mixin gradient-vertical-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
+  background-image: -webkit-linear-gradient($start-color, $mid-color $color-stop, $end-color);
+  background-image: -o-linear-gradient($start-color, $mid-color $color-stop, $end-color);
+  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
+  background-repeat: no-repeat;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}', GradientType=0); // IE9 and down, gets no color-stop at all for proper fallback
+}
+@mixin gradient-radial($inner-color: #555, $outer-color: #333) {
+  background-image: -webkit-radial-gradient(circle, $inner-color, $outer-color);
+  background-image: radial-gradient(circle, $inner-color, $outer-color);
+  background-repeat: no-repeat;
+}
+@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
+  background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
+  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_grid-framework.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_grid-framework.scss
new file mode 100644
index 000000000..16d038c04
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_grid-framework.scss
@@ -0,0 +1,81 @@
+// Framework grid generation
+//
+// Used only by Bootstrap to generate the correct number of grid classes given
+// any value of `$grid-columns`.
+
+// [converter] This is defined recursively in LESS, but Sass supports real loops
+@mixin make-grid-columns($i: 1, $list: ".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}") {
+  @for $i from (1 + 1) through $grid-columns {
+    $list: "#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}";
+  }
+  #{$list} {
+    position: relative;
+    // Prevent columns from collapsing when empty
+    min-height: 1px;
+    // Inner gutter via padding
+    padding-left:  ceil(($grid-gutter-width / 2));
+    padding-right: floor(($grid-gutter-width / 2));
+  }
+}
+
+
+// [converter] This is defined recursively in LESS, but Sass supports real loops
+@mixin float-grid-columns($class, $i: 1, $list: ".col-#{$class}-#{$i}") {
+  @for $i from (1 + 1) through $grid-columns {
+    $list: "#{$list}, .col-#{$class}-#{$i}";
+  }
+  #{$list} {
+    float: left;
+  }
+}
+
+
+@mixin calc-grid-column($index, $class, $type) {
+  @if ($type == width) and ($index > 0) {
+    .col-#{$class}-#{$index} {
+      width: percentage(($index / $grid-columns));
+    }
+  }
+  @if ($type == push) and ($index > 0) {
+    .col-#{$class}-push-#{$index} {
+      left: percentage(($index / $grid-columns));
+    }
+  }
+  @if ($type == push) and ($index == 0) {
+    .col-#{$class}-push-0 {
+      left: auto;
+    }
+  }
+  @if ($type == pull) and ($index > 0) {
+    .col-#{$class}-pull-#{$index} {
+      right: percentage(($index / $grid-columns));
+    }
+  }
+  @if ($type == pull) and ($index == 0) {
+    .col-#{$class}-pull-0 {
+      right: auto;
+    }
+  }
+  @if ($type == offset) {
+    .col-#{$class}-offset-#{$index} {
+      margin-left: percentage(($index / $grid-columns));
+    }
+  }
+}
+
+// [converter] This is defined recursively in LESS, but Sass supports real loops
+@mixin loop-grid-columns($columns, $class, $type) {
+  @for $i from 0 through $columns {
+    @include calc-grid-column($i, $class, $type);
+  }
+}
+
+
+// Create grid for specific class
+@mixin make-grid($class) {
+  @include float-grid-columns($class);
+  @include loop-grid-columns($grid-columns, $class, width);
+  @include loop-grid-columns($grid-columns, $class, pull);
+  @include loop-grid-columns($grid-columns, $class, push);
+  @include loop-grid-columns($grid-columns, $class, offset);
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_grid.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_grid.scss
new file mode 100644
index 000000000..59551dac1
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_grid.scss
@@ -0,0 +1,122 @@
+// Grid system
+//
+// Generate semantic grid columns with these mixins.
+
+// Centered container element
+@mixin container-fixed($gutter: $grid-gutter-width) {
+  margin-right: auto;
+  margin-left: auto;
+  padding-left:  floor(($gutter / 2));
+  padding-right: ceil(($gutter / 2));
+  @include clearfix;
+}
+
+// Creates a wrapper for a series of columns
+@mixin make-row($gutter: $grid-gutter-width) {
+  margin-left:  ceil(($gutter / -2));
+  margin-right: floor(($gutter / -2));
+  @include clearfix;
+}
+
+// Generate the extra small columns
+@mixin make-xs-column($columns, $gutter: $grid-gutter-width) {
+  position: relative;
+  float: left;
+  width: percentage(($columns / $grid-columns));
+  min-height: 1px;
+  padding-left:  ($gutter / 2);
+  padding-right: ($gutter / 2);
+}
+@mixin make-xs-column-offset($columns) {
+  margin-left: percentage(($columns / $grid-columns));
+}
+@mixin make-xs-column-push($columns) {
+  left: percentage(($columns / $grid-columns));
+}
+@mixin make-xs-column-pull($columns) {
+  right: percentage(($columns / $grid-columns));
+}
+
+// Generate the small columns
+@mixin make-sm-column($columns, $gutter: $grid-gutter-width) {
+  position: relative;
+  min-height: 1px;
+  padding-left:  ($gutter / 2);
+  padding-right: ($gutter / 2);
+
+  @media (min-width: $screen-sm-min) {
+    float: left;
+    width: percentage(($columns / $grid-columns));
+  }
+}
+@mixin make-sm-column-offset($columns) {
+  @media (min-width: $screen-sm-min) {
+    margin-left: percentage(($columns / $grid-columns));
+  }
+}
+@mixin make-sm-column-push($columns) {
+  @media (min-width: $screen-sm-min) {
+    left: percentage(($columns / $grid-columns));
+  }
+}
+@mixin make-sm-column-pull($columns) {
+  @media (min-width: $screen-sm-min) {
+    right: percentage(($columns / $grid-columns));
+  }
+}
+
+// Generate the medium columns
+@mixin make-md-column($columns, $gutter: $grid-gutter-width) {
+  position: relative;
+  min-height: 1px;
+  padding-left:  ($gutter / 2);
+  padding-right: ($gutter / 2);
+
+  @media (min-width: $screen-md-min) {
+    float: left;
+    width: percentage(($columns / $grid-columns));
+  }
+}
+@mixin make-md-column-offset($columns) {
+  @media (min-width: $screen-md-min) {
+    margin-left: percentage(($columns / $grid-columns));
+  }
+}
+@mixin make-md-column-push($columns) {
+  @media (min-width: $screen-md-min) {
+    left: percentage(($columns / $grid-columns));
+  }
+}
+@mixin make-md-column-pull($columns) {
+  @media (min-width: $screen-md-min) {
+    right: percentage(($columns / $grid-columns));
+  }
+}
+
+// Generate the large columns
+@mixin make-lg-column($columns, $gutter: $grid-gutter-width) {
+  position: relative;
+  min-height: 1px;
+  padding-left:  ($gutter / 2);
+  padding-right: ($gutter / 2);
+
+  @media (min-width: $screen-lg-min) {
+    float: left;
+    width: percentage(($columns / $grid-columns));
+  }
+}
+@mixin make-lg-column-offset($columns) {
+  @media (min-width: $screen-lg-min) {
+    margin-left: percentage(($columns / $grid-columns));
+  }
+}
+@mixin make-lg-column-push($columns) {
+  @media (min-width: $screen-lg-min) {
+    left: percentage(($columns / $grid-columns));
+  }
+}
+@mixin make-lg-column-pull($columns) {
+  @media (min-width: $screen-lg-min) {
+    right: percentage(($columns / $grid-columns));
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_hide-text.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_hide-text.scss
new file mode 100644
index 000000000..1767e029c
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_hide-text.scss
@@ -0,0 +1,21 @@
+// CSS image replacement
+//
+// Heads up! v3 launched with only `.hide-text()`, but per our pattern for
+// mixins being reused as classes with the same name, this doesn't hold up. As
+// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
+//
+// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
+
+// Deprecated as of v3.0.1 (has been removed in v4)
+@mixin hide-text() {
+  font: 0/0 a;
+  color: transparent;
+  text-shadow: none;
+  background-color: transparent;
+  border: 0;
+}
+
+// New mixin to use as of v3.0.1
+@mixin text-hide() {
+  @include hide-text;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_image.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_image.scss
new file mode 100644
index 000000000..c8dcf5e9c
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_image.scss
@@ -0,0 +1,33 @@
+// Image Mixins
+// - Responsive image
+// - Retina image
+
+
+// Responsive image
+//
+// Keep images from scaling beyond the width of their parents.
+@mixin img-responsive($display: block) {
+  display: $display;
+  max-width: 100%; // Part 1: Set a maximum relative to the parent
+  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
+}
+
+
+// Retina image
+//
+// Short retina mixin for setting background-image and -size. Note that the
+// spelling of `min--moz-device-pixel-ratio` is intentional.
+@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
+  background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-1x}"), "#{$file-1x}"));
+
+  @media
+  only screen and (-webkit-min-device-pixel-ratio: 2),
+  only screen and (   min--moz-device-pixel-ratio: 2),
+  only screen and (     -o-min-device-pixel-ratio: 2/1),
+  only screen and (        min-device-pixel-ratio: 2),
+  only screen and (                min-resolution: 192dpi),
+  only screen and (                min-resolution: 2dppx) {
+    background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-2x}"), "#{$file-2x}"));
+    background-size: $width-1x $height-1x;
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_labels.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_labels.scss
new file mode 100644
index 000000000..eda6dfd29
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_labels.scss
@@ -0,0 +1,12 @@
+// Labels
+
+@mixin label-variant($color) {
+  background-color: $color;
+
+  &[href] {
+    &:hover,
+    &:focus {
+      background-color: darken($color, 10%);
+    }
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_list-group.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_list-group.scss
new file mode 100644
index 000000000..c478eeb31
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_list-group.scss
@@ -0,0 +1,32 @@
+// List Groups
+
+@mixin list-group-item-variant($state, $background, $color) {
+  .list-group-item-#{$state} {
+    color: $color;
+    background-color: $background;
+
+    // [converter] extracted a&, button& to a.list-group-item-#{$state}, button.list-group-item-#{$state}
+  }
+
+  a.list-group-item-#{$state},
+  button.list-group-item-#{$state} {
+    color: $color;
+
+    .list-group-item-heading {
+      color: inherit;
+    }
+
+    &:hover,
+    &:focus {
+      color: $color;
+      background-color: darken($background, 5%);
+    }
+    &.active,
+    &.active:hover,
+    &.active:focus {
+      color: #fff;
+      background-color: $color;
+      border-color: $color;
+    }
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_nav-divider.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_nav-divider.scss
new file mode 100644
index 000000000..2e6da02a4
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_nav-divider.scss
@@ -0,0 +1,10 @@
+// Horizontal dividers
+//
+// Dividers (basically an hr) within dropdowns and nav lists
+
+@mixin nav-divider($color: #e5e5e5) {
+  height: 1px;
+  margin: (($line-height-computed / 2) - 1) 0;
+  overflow: hidden;
+  background-color: $color;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_nav-vertical-align.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_nav-vertical-align.scss
new file mode 100644
index 000000000..c8fbf1a7d
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_nav-vertical-align.scss
@@ -0,0 +1,9 @@
+// Navbar vertical align
+//
+// Vertically center elements in the navbar.
+// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
+
+@mixin navbar-vertical-align($element-height) {
+  margin-top: (($navbar-height - $element-height) / 2);
+  margin-bottom: (($navbar-height - $element-height) / 2);
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_opacity.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_opacity.scss
new file mode 100644
index 000000000..88e9a576a
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_opacity.scss
@@ -0,0 +1,8 @@
+// Opacity
+
+@mixin opacity($opacity) {
+  opacity: $opacity;
+  // IE8 filter
+  $opacity-ie: ($opacity * 100);
+  filter: alpha(opacity=$opacity-ie);
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_pagination.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_pagination.scss
new file mode 100644
index 000000000..d4a5404fc
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_pagination.scss
@@ -0,0 +1,24 @@
+// Pagination
+
+@mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
+  > li {
+    > a,
+    > span {
+      padding: $padding-vertical $padding-horizontal;
+      font-size: $font-size;
+      line-height: $line-height;
+    }
+    &:first-child {
+      > a,
+      > span {
+        @include border-left-radius($border-radius);
+      }
+    }
+    &:last-child {
+      > a,
+      > span {
+        @include border-right-radius($border-radius);
+      }
+    }
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_panels.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_panels.scss
new file mode 100644
index 000000000..3ff31ae51
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_panels.scss
@@ -0,0 +1,24 @@
+// Panels
+
+@mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) {
+  border-color: $border;
+
+  & > .panel-heading {
+    color: $heading-text-color;
+    background-color: $heading-bg-color;
+    border-color: $heading-border;
+
+    + .panel-collapse > .panel-body {
+      border-top-color: $border;
+    }
+    .badge {
+      color: $heading-bg-color;
+      background-color: $heading-text-color;
+    }
+  }
+  & > .panel-footer {
+    + .panel-collapse > .panel-body {
+      border-bottom-color: $border;
+    }
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_progress-bar.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_progress-bar.scss
new file mode 100644
index 000000000..90a62afc2
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_progress-bar.scss
@@ -0,0 +1,10 @@
+// Progress bars
+
+@mixin progress-bar-variant($color) {
+  background-color: $color;
+
+  // Deprecated parent class requirement as of v3.2.0
+  .progress-striped & {
+    @include gradient-striped;
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_reset-filter.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_reset-filter.scss
new file mode 100644
index 000000000..bf7305120
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_reset-filter.scss
@@ -0,0 +1,8 @@
+// Reset filters for IE
+//
+// When you need to remove a gradient background, do not forget to use this to reset
+// the IE filter for IE9 and below.
+
+@mixin reset-filter() {
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_reset-text.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_reset-text.scss
new file mode 100644
index 000000000..c9c28417f
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_reset-text.scss
@@ -0,0 +1,18 @@
+@mixin reset-text() {
+  font-family: $font-family-base;
+  // We deliberately do NOT reset font-size.
+  font-style: normal;
+  font-weight: normal;
+  letter-spacing: normal;
+  line-break: auto;
+  line-height: $line-height-base;
+  text-align: left; // Fallback for where `start` is not supported
+  text-align: start;
+  text-decoration: none;
+  text-shadow: none;
+  text-transform: none;
+  white-space: normal;
+  word-break: normal;
+  word-spacing: normal;
+  word-wrap: normal;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_resize.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_resize.scss
new file mode 100644
index 000000000..83fa63791
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_resize.scss
@@ -0,0 +1,6 @@
+// Resize anything
+
+@mixin resizable($direction) {
+  resize: $direction; // Options: horizontal, vertical, both
+  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_responsive-visibility.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_responsive-visibility.scss
new file mode 100644
index 000000000..cbdf77723
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_responsive-visibility.scss
@@ -0,0 +1,21 @@
+// Responsive utilities
+
+//
+// More easily include all the states for responsive-utilities.less.
+// [converter] $parent hack
+@mixin responsive-visibility($parent) {
+  #{$parent} {
+    display: block !important;
+  }
+  table#{$parent}  { display: table !important; }
+  tr#{$parent}     { display: table-row !important; }
+  th#{$parent},
+  td#{$parent}     { display: table-cell !important; }
+}
+
+// [converter] $parent hack
+@mixin responsive-invisibility($parent) {
+  #{$parent} {
+    display: none !important;
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_size.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_size.scss
new file mode 100644
index 000000000..abbe2463c
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_size.scss
@@ -0,0 +1,10 @@
+// Sizing shortcuts
+
+@mixin size($width, $height) {
+  width: $width;
+  height: $height;
+}
+
+@mixin square($size) {
+  @include size($size, $size);
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_tab-focus.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_tab-focus.scss
new file mode 100644
index 000000000..7df0ae7ca
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_tab-focus.scss
@@ -0,0 +1,9 @@
+// WebKit-style focus
+
+@mixin tab-focus() {
+  // Default
+  outline: thin dotted;
+  // WebKit
+  outline: 5px auto -webkit-focus-ring-color;
+  outline-offset: -2px;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_table-row.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_table-row.scss
new file mode 100644
index 000000000..136795081
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_table-row.scss
@@ -0,0 +1,28 @@
+// Tables
+
+@mixin table-row-variant($state, $background) {
+  // Exact selectors below required to override `.table-striped` and prevent
+  // inheritance to nested tables.
+  .table > thead > tr,
+  .table > tbody > tr,
+  .table > tfoot > tr {
+    > td.#{$state},
+    > th.#{$state},
+    &.#{$state} > td,
+    &.#{$state} > th {
+      background-color: $background;
+    }
+  }
+
+  // Hover states for `.table-hover`
+  // Note: this is not available for cells or rows within `thead` or `tfoot`.
+  .table-hover > tbody > tr {
+    > td.#{$state}:hover,
+    > th.#{$state}:hover,
+    &.#{$state}:hover > td,
+    &:hover > .#{$state},
+    &.#{$state}:hover > th {
+      background-color: darken($background, 5%);
+    }
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_text-emphasis.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_text-emphasis.scss
new file mode 100644
index 000000000..3b446c415
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_text-emphasis.scss
@@ -0,0 +1,12 @@
+// Typography
+
+// [converter] $parent hack
+@mixin text-emphasis-variant($parent, $color) {
+  #{$parent} {
+    color: $color;
+  }
+  a#{$parent}:hover,
+  a#{$parent}:focus {
+    color: darken($color, 10%);
+  }
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_text-overflow.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_text-overflow.scss
new file mode 100644
index 000000000..1593b25ea
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_text-overflow.scss
@@ -0,0 +1,8 @@
+// Text overflow
+// Requires inline-block or block for proper styling
+
+@mixin text-overflow() {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
diff --git a/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_vendor-prefixes.scss b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_vendor-prefixes.scss
new file mode 100644
index 000000000..b3d0371fa
--- /dev/null
+++ b/src/mol-plugin/skin/base/bootstrap/bootstrap/mixins/_vendor-prefixes.scss
@@ -0,0 +1,222 @@
+// Vendor Prefixes
+//
+// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
+// Autoprefixer in our Gruntfile. They have been removed in v4.
+
+// - Animations
+// - Backface visibility
+// - Box shadow
+// - Box sizing
+// - Content columns
+// - Hyphens
+// - Placeholder text
+// - Transformations
+// - Transitions
+// - User Select
+
+
+// Animations
+@mixin animation($animation) {
+  -webkit-animation: $animation;
+       -o-animation: $animation;
+          animation: $animation;
+}
+@mixin animation-name($name) {
+  -webkit-animation-name: $name;
+          animation-name: $name;
+}
+@mixin animation-duration($duration) {
+  -webkit-animation-duration: $duration;
+          animation-duration: $duration;
+}
+@mixin animation-timing-function($timing-function) {
+  -webkit-animation-timing-function: $timing-function;
+          animation-timing-function: $timing-function;
+}
+@mixin animation-delay($delay) {
+  -webkit-animation-delay: $delay;
+          animation-delay: $delay;
+}
+@mixin animation-iteration-count($iteration-count) {
+  -webkit-animation-iteration-count: $iteration-count;
+          animation-iteration-count: $iteration-count;
+}
+@mixin animation-direction($direction) {
+  -webkit-animation-direction: $direction;
+          animation-direction: $direction;
+}
+@mixin animation-fill-mode($fill-mode) {
+  -webkit-animation-fill-mode: $fill-mode;
+          animation-fill-mode: $fill-mode;
+}
+
+// Backface visibility
+// Prevent browsers from flickering when using CSS 3D transforms.
+// Default value is `visible`, but can be changed to `hidden`
+
+@mixin backface-visibility($visibility) {
+  -webkit-backface-visibility: $visibility;
+     -moz-backface-visibility: $visibility;
+          backface-visibility: $visibility;
+}
+
+// Drop shadows
+//
+// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
+// supported browsers that have box shadow capabilities now support it.
+
+@mixin box-shadow($shadow...) {
+  -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1
+          box-shadow: $shadow;
+}
+
+// Box sizing
+@mixin box-sizing($boxmodel) {
+  -webkit-box-sizing: $boxmodel;
+     -moz-box-sizing: $boxmodel;
+          box-sizing: $boxmodel;
+}
+
+// CSS3 Content Columns
+@mixin content-columns($column-count, $column-gap: $grid-gutter-width) {
+  -webkit-column-count: $column-count;
+     -moz-column-count: $column-count;
+          column-count: $column-count;
+  -webkit-column-gap: $column-gap;
+     -moz-column-gap: $column-gap;
+          column-gap: $column-gap;
+}
+
+// Optional hyphenation
+@mixin hyphens($mode: auto) {
+  word-wrap: break-word;
+  -webkit-hyphens: $mode;
+     -moz-hyphens: $mode;
+      -ms-hyphens: $mode; // IE10+
+       -o-hyphens: $mode;
+          hyphens: $mode;
+}
+
+// Placeholder text
+@mixin placeholder($color: $input-color-placeholder) {
+  // Firefox
+  &::-moz-placeholder {
+    color: $color;
+    opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526
+  }
+  &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+
+  &::-webkit-input-placeholder  { color: $color; } // Safari and Chrome
+}
+
+// Transformations
+@mixin scale($ratio...) {
+  -webkit-transform: scale($ratio);
+      -ms-transform: scale($ratio); // IE9 only
+       -o-transform: scale($ratio);
+          transform: scale($ratio);
+}
+
+@mixin scaleX($ratio) {
+  -webkit-transform: scaleX($ratio);
+      -ms-transform: scaleX($ratio); // IE9 only
+       -o-transform: scaleX($ratio);
+          transform: scaleX($ratio);
+}
+@mixin scaleY($ratio) {
+  -webkit-transform: scaleY($ratio);
+      -ms-transform: scaleY($ratio); // IE9 only
+       -o-transform: scaleY($ratio);
+          transform: scaleY($ratio);
+}
+@mixin skew($x, $y) {
+  -webkit-transform: skewX($x) skewY($y);
+      -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
+       -o-transform: skewX($x) skewY($y);
+          transform: skewX($x) skewY($y);
+}
+@mixin translate($x, $y) {
+  -webkit-transform: translate($x, $y);
+      -ms-transform: translate($x, $y); // IE9 only
+       -o-transform: translate($x, $y);
+          transform: translate($x, $y);
+}
+@mixin translate3d($x, $y, $z) {
+  -webkit-transform: translate3d($x, $y, $z);
+          transform: translate3d($x, $y, $z);
+}
+@mixin rotate($degrees) {
+  -webkit-transform: rotate($degrees);
+      -ms-transform: rotate($degrees); // IE9 only
+       -o-transform: rotate($degrees);
+          transform: rotate($degrees);
+}
+@mixin rotateX($degrees) {
+  -webkit-transform: rotateX($degrees);
+      -ms-transform: rotateX($degrees); // IE9 only
+       -o-transform: rotateX($degrees);
+          transform: rotateX($degrees);
+}
+@mixin rotateY($degrees) {
+  -webkit-transform: rotateY($degrees);
+      -ms-transform: rotateY($degrees); // IE9 only
+       -o-transform: rotateY($degrees);
+          transform: rotateY($degrees);
+}
+@mixin perspective($perspective) {
+  -webkit-perspective: $perspective;
+     -moz-perspective: $perspective;
+          perspective: $perspective;
+}
+@mixin perspective-origin($perspective) {
+  -webkit-perspective-origin: $perspective;
+     -moz-perspective-origin: $perspective;
+          perspective-origin: $perspective;
+}
+@mixin transform-origin($origin) {
+  -webkit-transform-origin: $origin;
+     -moz-transform-origin: $origin;
+      -ms-transform-origin: $origin; // IE9 only
+          transform-origin: $origin;
+}
+
+
+// Transitions
+
+@mixin transition($transition...) {
+  -webkit-transition: $transition;
+       -o-transition: $transition;
+          transition: $transition;
+}
+@mixin transition-property($transition-property...) {
+  -webkit-transition-property: $transition-property;
+          transition-property: $transition-property;
+}
+@mixin transition-delay($transition-delay) {
+  -webkit-transition-delay: $transition-delay;
+          transition-delay: $transition-delay;
+}
+@mixin transition-duration($transition-duration...) {
+  -webkit-transition-duration: $transition-duration;
+          transition-duration: $transition-duration;
+}
+@mixin transition-timing-function($timing-function) {
+  -webkit-transition-timing-function: $timing-function;
+          transition-timing-function: $timing-function;
+}
+@mixin transition-transform($transition...) {
+  -webkit-transition: -webkit-transform $transition;
+     -moz-transition: -moz-transform $transition;
+       -o-transition: -o-transform $transition;
+          transition: transform $transition;
+}
+
+
+// User select
+// For selecting text on the page
+
+@mixin user-select($select) {
+  -webkit-user-select: $select;
+     -moz-user-select: $select;
+      -ms-user-select: $select; // IE10+
+          user-select: $select;
+}
diff --git a/src/mol-plugin/skin/base/components/controls-base.scss b/src/mol-plugin/skin/base/components/controls-base.scss
new file mode 100644
index 000000000..897703537
--- /dev/null
+++ b/src/mol-plugin/skin/base/components/controls-base.scss
@@ -0,0 +1,144 @@
+.msp-btn {
+    padding: 0 $control-spacing;
+    line-height: $row-height;
+    border: none;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+}
+
+.msp-btn, .msp-btn:active, .msp-btn-link:focus, .msp-btn:hover {
+    outline: none !important;
+}
+
+.msp-btn-icon {
+    height: $row-height;
+    width: $row-height;
+    line-height: $row-height;
+    padding: 0;
+    text-align: center;
+}
+
+.msp-btn-link {
+    .msp-icon {
+        font-size: 100%;
+    }
+}
+
+.msp-btn-link, .msp-btn-link:active, .msp-btn-link:focus {
+    color: $msp-btn-link-font-color;
+    text-decoration: none;   
+}
+
+.msp-btn-link:hover {
+    color: $hover-font-color;
+    text-decoration: none;
+}
+
+.msp-btn-link-toggle-on {
+    color: $msp-btn-link-toggle-on-font-color;
+}
+
+.msp-btn-link-toggle-off, .msp-btn-link-toggle-off:active, .msp-btn-link-toggle-off:focus {
+    color: $msp-btn-link-toggle-off-font-color;
+}
+
+.msp-btn-link-toggle-off:hover,  .msp-btn-link-toggle-on:hover {
+    color: $hover-font-color;
+}
+
+@mixin msp-btn($name, $font, $bg) {
+    .msp-btn-#{$name}, .msp-btn-#{$name}:active, .msp-btn-#{$name}:focus {
+        color: $font;
+        background: $bg;
+    }    
+    .msp-btn-#{$name}:hover {
+        color: $hover-font-color;
+        background: color-lower-contrast($bg, 2.5%);
+    }
+    
+    .msp-btn-#{$name}[disabled], .msp-btn-#{$name}[disabled]:hover, 
+    .msp-btn-#{$name}[disabled]:active, .msp-btn-#{$name}[disabled]:focus {
+        color: color-lower-contrast($font, 1%);
+    }
+}
+
+@include msp-btn('remove', $msp-btn-remove-font-color, $msp-btn-remove-background);
+@include msp-btn('action', $font-color, $msp-btn-action-background);
+@include msp-btn('commit-on', $msp-btn-commit-on-font-color, $msp-btn-commit-on-background);
+@include msp-btn('commit-off', $msp-btn-commit-off-font-color, $msp-btn-commit-off-background);
+
+.msp-btn-remove:hover {
+    color: $msp-btn-remove-hover-font-color;
+}
+.msp-btn-commit-on:hover {
+	color: $msp-btn-commit-on-hover-font-color;
+}
+
+.msp-btn-action {
+    height: $row-height;
+    line-height: $row-height;
+}
+
+.msp-form-control {    
+    width: 100%;
+    background: $msp-form-control-background;
+    color: $font-color;
+    border: none !important;
+    padding: 0 $control-spacing;   
+    line-height: $row-height - 2px;  
+    height: $row-height;
+    -webkit-appearance: none;
+    -moz-appearance: none;
+    appearance: none;    
+    box-shadow: none !important;
+    
+    &:hover {
+        color: $hover-font-color;
+        background-color: color-increase-contrast($msp-form-control-background, 5%);
+        border: none;
+        outline-offset: -1px;
+        outline: 1px solid color-increase-contrast($msp-form-control-background, 20%);    
+    }
+    
+    &:active, &:focus {
+        color: $font-color;
+        background-color: $msp-form-control-background;
+        border: none;
+        outline-offset: 0;
+        outline: none;    
+    }
+}
+
+.msp-btn-commit {        
+    text-align: right;
+    padding-top: 0;
+    padding-bottom: 0;
+    padding-right: $control-spacing;
+    padding-left: 0;
+    line-height: $row-height;
+    border: none;
+    overflow: hidden;
+    
+    .msp-icon {
+        display: block-inline;
+        line-height: $row-height;
+        margin-right: $control-spacing;
+        width: $row-height;
+        text-align: center;
+        float: left;
+    } 
+}
+
+select.msp-form-control { 
+    background: none;
+    background-color: $msp-form-control-background;
+    background-size: 8px 12px;
+    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAMAAACzvE1FAAAADFBMVEUzMzMzMzMzMzMzMzMKAG/3AAAAA3RSTlMAf4C/aSLHAAAAPElEQVR42q3NMQ4AIAgEQTn//2cLdRKppSGzBYwzVXvznNWs8C58CiussPJj8h6NwgorrKRdTvuV9v16Afn0AYFOB7aYAAAAAElFTkSuQmCC);
+    background-repeat: no-repeat;
+    background-position: right $control-spacing top (($row-height - 12px) / 2);    
+}
+
+select.msp-form-control:-moz-focusring {
+    color: transparent;
+    text-shadow: 0 0 0 $font-color;
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/components/controls.scss b/src/mol-plugin/skin/base/components/controls.scss
new file mode 100644
index 000000000..2ba55358c
--- /dev/null
+++ b/src/mol-plugin/skin/base/components/controls.scss
@@ -0,0 +1,197 @@
+
+.msp-control-row {    
+    position: relative;
+    height: $row-height;
+    background: $default-background;
+    margin-top: 1px;
+    
+    > span {
+        line-height: $row-height;
+        display: block;
+        width: $control-label-width + $control-spacing;
+        text-align: right;
+        padding: 0 $control-spacing; 
+        color: color-lower-contrast($font-color, 15%);
+        
+        @include non-selectable;        
+    }
+    
+    select, button, input[type=text] {
+        @extend .msp-form-control;
+    }
+    
+    button {
+        @extend .msp-btn;
+        @extend .msp-btn-block;
+    }
+    
+    > div:nth-child(2) {
+        background: $msp-form-control-background;
+        position: absolute;
+        left: $control-label-width + $control-spacing;
+        top: 0;
+        right: 0;
+        bottom: 0;
+    }
+}
+
+.msp-control-group {
+    position: relative;
+}
+
+.msp-toggle-button {    
+    .msp-icon {
+        display: inline-block;
+        margin-right: 6px;
+    }
+    
+    > div > button:hover {
+        border-color: color-increase-contrast($msp-form-control-background, 5%) !important;
+        border: none;
+        outline-offset: -1px  !important;
+        outline: 1px solid color-increase-contrast($msp-form-control-background, 20%) !important;  
+    }
+}
+
+.msp-slider {    
+    > div {        
+        > div:first-child {
+            position: absolute;
+            top: 0;
+            left: 0;
+            bottom: 0;
+            right: 0;
+            width: 100%;
+            padding-right: 50px;
+            display: table;
+            
+            > div {
+                height: $row-height;
+                display: table-cell;
+                vertical-align: middle;
+                padding: 0 ($control-spacing + 4px);
+            }
+        }
+        > div:last-child {
+            position: absolute;
+            height: $row-height;
+            right: 0;
+            width: 50px;
+            top: 0;
+            bottom: 0;
+        }
+    }
+    
+    input[type=text] {
+        text-align: right;
+    }
+    
+    input[type=range] {
+        width: 100%;
+    }
+}
+
+.msp-toggle-color-picker {
+    button {
+        border: $control-spacing solid $msp-form-control-background !important;
+        margin: 0;
+        text-align: center;
+        padding-right: $control-spacing;
+        padding-left: $control-spacing;        
+        
+        &:hover {
+            border-color: color-increase-contrast($msp-form-control-background, 5%) !important;
+            border: none;
+            outline-offset: -1px  !important;
+            outline: 1px solid color-increase-contrast($msp-form-control-background, 20%) !important;  
+        }
+    }
+    
+    .msp-color-picker {
+        position: absolute;
+        z-index: 100000;
+        background: $default-background;
+        border-top: 1px solid $default-background;
+        padding-bottom: $control-spacing / 2;
+        width: 100%;        
+        
+        // input[type=text] {
+        //     background: $msp-form-control-background !important;
+        // }
+    }
+}
+
+.msp-toggle-color-picker-above {
+    .msp-color-picker {
+        top: -2 * 32px - 16px - $control-spacing / 2;
+        height: 2 * 32px + 16px + $control-spacing / 2;
+    }
+}
+
+.msp-toggle-color-picker-below {
+    .msp-color-picker {
+        top: $row-height;
+        height: 2 * 32px + 16px;
+    }
+}
+
+
+.msp-control-subgroup {
+    margin-top: 1px;
+    
+    .msp-control-row {
+        margin-left: $control-spacing !important;
+        > span {
+            width: $control-label-width !important;
+        }
+        
+        > div:nth-child(2) {
+            left: $control-label-width !important;
+        }
+    }
+}
+
+.msp-conrol-group-expander {
+    display: block;
+    position: absolute;
+    line-height: $row-height;
+    padding: 0;
+    left: 0;
+    top: 0;
+    width: $control-label-width + $control-spacing;
+    text-align: left;
+    
+    .msp-icon {
+        line-height: $row-height - 3;
+        width: $row-height - 1;
+        text-align: center;
+        display: inline-block;
+        font-size: 100%;
+    }
+}
+
+.msp-plugin-layout_controls {
+    position: absolute;
+    left: $control-spacing;
+    top: $control-spacing;
+}
+
+.msp-plugin-layout_controls > button:first-child {
+    margin-right: 6px;
+}
+
+.msp-empty-control {
+    display: none;
+}
+
+.msp-control .msp-btn-block {
+    margin-bottom: 0px;
+    margin-top: 0px;
+}
+
+.msp-row-text {
+    > div {
+        line-height: $row-height;
+        text-align: center;
+    }
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/components/entity-info.scss b/src/mol-plugin/skin/base/components/entity-info.scss
new file mode 100644
index 000000000..55ae9df3c
--- /dev/null
+++ b/src/mol-plugin/skin/base/components/entity-info.scss
@@ -0,0 +1,196 @@
+/* info */
+
+.msp-layout-hide-right {
+    .msp-entity-info {
+        display: none;
+    }
+}
+
+.msp-entity-info {
+    position: absolute;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    top: 0;
+    //border-top: 1px solid $default-background;
+    padding-top: $control-spacing;        
+    background: $control-background;
+    
+    .msp-entity-badge {
+        position: absolute;
+        width: $row-height;
+        height: $row-height;
+        left: 0;
+        top: 0;
+        border-bottom: 1px solid $border-color;
+    }
+    
+    > div {
+        position: relative;
+        height: $row-height;
+        line-height: $row-height;  
+        > span {
+            font-weight: bold;
+            > span {
+                display: inline-block;
+                margin-left: 6px;
+                font-size: 80%;
+                color: $entity-tag-color;
+                font-weight: normal;
+            }
+        }
+        background: $default-background;
+        border-bottom: 1px solid $border-color;
+        padding: 0 ($row-height + $control-spacing);
+        text-align: center;       
+    }
+    
+    .msp-remove-entity {
+        position: absolute;
+        right: 0;
+        top: 0;
+    }
+}
+
+/* badge */
+
+.msp-entity-badge {
+    font-weight: bold;
+    color: $entity-badge-font-color;
+    text-align: center;
+    display: table;
+    cursor: default;
+}
+
+.msp-entity-badge > div {
+    margin: auto;
+    display: inline-block;
+    display: table-cell;
+    vertical-align: middle;
+    
+    @include non-selectable;
+}
+
+@mixin entity-bg($name, $color) {    
+    .msp-entity-badge-#{$name} {
+        background: $color;
+    } 
+}
+
+// TypeClass = 'Root' | 'Group' | 'Data' | 'Object' | 'Visual' | 'Selection' | 'Action' | 'Behaviour'
+@include entity-bg('Root', $entity-color-Root);
+@include entity-bg('Group', $entity-color-Group);
+@include entity-bg('Data', $entity-color-Data);
+@include entity-bg('Object', $entity-color-Object);
+@include entity-bg('Visual', $entity-color-Visual);
+@include entity-bg('Selection', $entity-color-Selection);
+@include entity-bg('Action', $entity-color-Action);
+@include entity-bg('Behaviour', $entity-color-Behaviour);
+
+
+.msp-entity-badge-Root {
+    background-repeat: no-repeat;
+    background-position: center;
+    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAACKUExURQAAAM4+K84/LM4+K5BhopJboCue1XmKi5RbpSud1R2tcolpRx2scys8Sis8Sn6SlOCFOiqYzhUYMDRPYSue1n6SlMiDTR6ncbVfNd+EOeCEOeCEOeCEORYZMMk/LH6RkxUcMhUYMSs8S32Rkyye1BUZL9+FOVpORWRSRCw8SxYYMB6tcxYZMSw9S+ECnyoAAAArdFJOUwB5/uoyc/FX9DjdS5SzyPT+acsS/fwdWEmk1NidrGb6bq+HgJY7eFVH955mjSdVAAAAn0lEQVQ4y93TyxaCIBCA4alQpFQsSs1Ku997/9drRtoxwV5Ww/m/BXAOAENc8hTonRb+3sn86OkrLfNPVgd6Ox55ezWb8KLUtr+mvLg2kjpAyguxLprbI6ORFVESobjbDSdE0ouSZrPvRQuO2BYbFGbxJmGcQ/wE9sP8nFbuNayoqS9jxT0ECey7f51E5O24Qh0uT3/HO8b+DqDUIH/SF4XSDWWIL+vnAAAAAElFTkSuQmCC)
+}
+
+
+.msp-entity-splash {
+    //padding-left: $row-height - $entity-subtree-offset;
+    
+    .msp-entity-splash-general {
+        //border-top-left-radius: $entity-subtree-offset;
+        //border-bottom-left-radius: $entity-subtree-offset;
+        padding: $info-vertical-padding $control-spacing $info-vertical-padding ($row-height + $control-spacing +  $row-height - $entity-subtree-offset);        
+        position: relative;    
+        background: color-lower-contrast($default-background, 4%);
+        margin-bottom: $control-spacing;    
+        
+        .msp-icon {
+            display: block;
+            width: $row-height;
+            height: $row-height;
+            line-height: $row-height;
+            position: absolute;
+            text-align: center;
+            left: $row-height - $entity-subtree-offset;
+            top: 0;
+            font-size: 80%;
+        }
+        
+        > div {
+            position: absolute;
+            width: 2 * $row-height - $entity-subtree-offset;
+            left: 0;
+            top: 0;
+            bottom: 0;
+            background: $default-background;
+        }
+    }
+    
+    .msp-entity-splash-class {
+        margin-bottom: 1px; //$control-spacing;
+    }
+    
+    .msp-entity-splash-class > div:first-child {
+        //border-top-left-radius: $entity-subtree-offset;
+        background: color-lower-contrast($default-background, 4%);
+        line-height: $row-height;
+        padding-left: $row-height + $control-spacing + $row-height - $entity-subtree-offset;
+        font-weight: bold;
+        position: relative;
+        cursor: pointer;
+        
+        &:hover {
+            color: $hover-font-color;
+        }
+        
+        > span {
+            @include non-selectable;
+            cursor: pointer;
+        }
+        
+        > div:first-child {
+            position: absolute;
+            width: $row-height - $entity-subtree-offset;
+            height: $row-height;
+            left: 0;
+            top: 0;
+            background: $default-background;
+        }
+        
+        > div:nth-child(2) {            
+            //border-top-left-radius: $entity-subtree-offset;
+            position: absolute;
+            width: $row-height;
+            height: $row-height;
+            left: $row-height - $entity-subtree-offset;
+            top: 0;
+            //background-image: none;
+        }
+    }
+    
+    .msp-entity-splash-class > div:nth-child(2) {
+        //@include non-selectable;
+        padding: $info-vertical-padding $control-spacing $info-vertical-padding ($row-height + $control-spacing + $row-height - $entity-subtree-offset);
+        margin-top: 1px;
+        background: $default-background; // color-increase-contrast($msp-form-control-background, 20%);
+        //font-size: 90%;
+        //border-bottom-left-radius: $entity-subtree-offset;
+    }
+    
+    // .msp-entity-splash-class-collapsed > div:first-child {
+    //     //border-bottom-left-radius: $entity-subtree-offset;
+    //      > div {             
+    //         //border-bottom-left-radius: $entity-subtree-offset;  
+    //      }
+    // }
+    
+    .msp-entity-splash-class-expanded > div:nth-child(2) {
+        display: block;   
+    }
+    
+    .msp-entity-splash-class-collapsed > div:nth-child(2) {
+        display: none;   
+    }
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/components/entity.scss b/src/mol-plugin/skin/base/components/entity.scss
new file mode 100644
index 000000000..811265d33
--- /dev/null
+++ b/src/mol-plugin/skin/base/components/entity.scss
@@ -0,0 +1,225 @@
+
+
+.msp-entity-tree {    
+    overflow: hidden;
+    position: absolute;    
+    bottom: 0;
+    left: 0;
+    right: 0; 
+    top: 0;
+    padding-top: $control-spacing;
+    background: $control-background;   
+    
+    .msp-entity-tree-children {
+        overflow-x: hidden;
+        overflow-y: auto;
+        position: absolute;
+        bottom: 0;
+        left: 0;
+        right: 0; 
+        top: $row-height + $control-spacing + 1;
+        padding: $control-spacing 0;
+    } 
+}
+
+.msp-entity-store-header {
+    height: $row-height + 1;
+    position: relative;
+    
+    > span {
+        margin-left: 6px;
+        display: inline-block;
+        line-height: $row-height;
+        font-weight: bold;
+        
+        @include non-selectable
+    } 
+    
+    button {     
+        display: block !important;
+        height: $row-height !important;
+        margin: 0 !important;
+        line-height: $row-height !important;
+        border: none !important;
+        position: absolute;
+        top: 0;  
+    }
+        
+    border-bottom: 1px solid $border-color;
+}
+
+.msp-entity-store-root {
+    overflow-x: hidden;
+    overflow-y: auto;
+    position: absolute;
+    bottom: 0;
+    left: 0;
+    top: $row-height + 1;
+    right: 0; 
+}
+
+.msp-entity-tree-entry {
+    height: $row-height + 1;
+    position: relative;
+    border-bottom: 1px solid $control-background;
+}
+
+.msp-entity-tree-entry-current {
+    background: color-lower-contrast($default-background, 4%) !important; 
+    
+    .msp-entity-tree-entry-label {
+        color: $entity-current-font-color;
+        font-weight: bold;
+        .msp-entity-tree-entry-label-tag {
+            font-weight: normal;
+        }
+        &:hover {
+            color: $hover-font-color;
+        }
+    }
+}
+
+.msp-entity-tree-entry-current-path {
+    background: color-lower-contrast($default-background, 2%) !important;
+    .msp-entity-tree-entry-label {
+        color: color-lower-contrast($entity-current-font-color, 5%);
+        &:hover {
+            color: $hover-font-color;
+        }
+    }
+}
+
+.msp-entity-tree-entry button, .msp-entity-tree-entry > div {
+    display: block !important;
+    height: $row-height !important;
+    margin: 0 !important;
+    line-height: $row-height !important;
+    border: none !important;
+    position: absolute;
+    top: 0;    
+}
+
+
+.msp-entity-tree-entry-toggle-group {
+    width: $row-height;
+    height: $row-height;
+    padding: 0;
+    left: 0;
+}
+
+.msp-entity-tree-entry-toggle-visible {
+    width: $row-height;
+    right: 0; //$row-height + 6;
+    padding: 0 !important;
+    font-size: 80%;
+}
+
+.msp-entity-tree-entry-toggle-visible-full, .msp-entity-tree-entry-toggle-visible-full:focus, .msp-entity-tree-entry-toggle-visible-full:active {
+    color: $entity-color-fully-visible;
+}
+
+.msp-entity-tree-entry-toggle-visible-partial, .msp-entity-tree-entry-toggle-visible-partial:focus, .msp-entity-tree-entry-toggle-visible-partial:active {
+    color: $entity-color-partialy-visible;
+}
+
+.msp-entity-tree-entry-toggle-visible-none, .msp-entity-tree-entry-toggle-visible-none:focus, .msp-entity-tree-entry-toggle-visible-none:active {
+    //background: transparent !important;
+    color: $entity-color-not-visible;
+}
+
+.msp-entity-tree-entry-remove {
+    width: $row-height;
+    height: $row-height;
+    right: $row-height;
+    padding: 0 !important;
+    text-align: center;
+    font-size: 80%;
+    color: color-lower-contrast($font-color, 66%)
+}
+
+.msp-entity-tree-entry-body {
+    position: absolute;
+    left: $row-height;
+    border-radius: 0 0 0 $entity-subtree-offset;
+    right: 0;     
+    background: $default-background;
+}
+
+.msp-entity-tree-entry .msp-entity-badge {
+    width: $row-height;
+    position: absolute;
+    height: $row-height;
+    left: 0;
+    top: 0;
+    border-radius: 0 $entity-subtree-offset 0 $entity-subtree-offset;
+}
+
+.msp-entity-tree-entry-label-wrap {
+    right: 2 * $row-height;
+    overflow: hidden;
+    left: $row-height;
+    height: $row-height;
+    position: absolute;
+}
+
+.msp-entity-tree-entry-label {
+    position: absolute;
+    right: 0;
+    top: 0;
+    left: 0;
+    text-align: left !important;
+    width: 100%;
+    padding: 0 $control-spacing !important;
+}
+
+.msp-entity-tree-entry-label-tag {
+    color: $entity-tag-color;
+    font-size: 70%;
+    display: inline-block;
+    margin-left: 6px;
+}
+
+    
+.msp-entity-tree-children-wrap {
+    padding-left: $entity-subtree-offset;
+}
+
+.msp-entity-tree-root {
+    > .msp-entity-tree-entry {
+        .msp-entity-badge {
+            border-top-right-radius: 0;
+        }
+        .msp-entity-tree-entry-label {
+            font-weight: bold;
+        }
+        .msp-entity-tree-entry-toggle-group {
+            display: none !important;
+        }        
+        .msp-entity-tree-entry-body {
+            left: $row-height - $entity-subtree-offset !important;
+        }
+        background: $default-background;
+        border-bottom: 1px solid $border-color;
+    }
+    
+    > .msp-entity-tree-children-wrap {
+       margin-top: $control-spacing;
+       padding-left: 0 !important;
+    }    
+}
+
+.msp-panel {
+    .msp-entity-tree-entry-toggle-visible {
+        position: absolute;
+        top: 0;
+        right: 0;
+        height: $row-height;
+        font-size: 100%;
+
+        background: $default-background; //color-increase-contrast($default-background, 4%);
+    } 
+
+    // .msp-entity-tree-entry-toggle-visible-full {
+    //     background: color-increase-contrast($default-background, 8%);
+    // }
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/components/help.scss b/src/mol-plugin/skin/base/components/help.scss
new file mode 100644
index 000000000..01fc7995b
--- /dev/null
+++ b/src/mol-plugin/skin/base/components/help.scss
@@ -0,0 +1,27 @@
+
+.msp-help-row {    
+    position: relative;
+    height: $row-height;
+    background: $default-background;
+    margin-top: 1px;
+    display: table;
+    width: 100%;
+    
+    > span {
+        width: $control-label-width + $control-spacing;
+        text-align: right;
+        padding: $info-vertical-padding $control-spacing; 
+        color: color-lower-contrast($font-color, 15%);
+        display: table-cell;
+        font-weight: bold;
+        
+        @include non-selectable;        
+    }
+        
+    > div {
+        background: $msp-form-control-background;
+        position: relative;
+        padding: $info-vertical-padding $control-spacing;
+        display: table-cell;
+    }
+}
diff --git a/src/mol-plugin/skin/base/components/log.scss b/src/mol-plugin/skin/base/components/log.scss
new file mode 100644
index 000000000..124473cda
--- /dev/null
+++ b/src/mol-plugin/skin/base/components/log.scss
@@ -0,0 +1,98 @@
+
+.msp-log-wrap {
+    position: absolute;
+    right: 0;
+    top: 0;
+    left: 0;
+    bottom: 0;
+    overflow: hidden;
+}
+
+.msp-log {
+    position: absolute;
+    right: -20px;
+    top: 0;
+    left: 0;
+    bottom: 0;
+    overflow-y: scroll;
+    overflow-x: hidden;    
+    font-size: 90%;
+    background: $control-background;
+}
+
+.msp-log {
+    ul {
+        padding: 0;
+        margin: 0;
+    }
+    
+    color: $log-font-color;
+    
+    li {
+        clear: both;
+        margin: 0;        
+        background: $default-background;        
+        position: relative;
+        
+        &:not(:last-child) {
+            border-bottom: 1px solid $border-color;
+        }
+    }
+       
+    
+    .msp-log-entry {
+        margin-left: $control-label-width;
+        background: color-lower-contrast($control-background, 5%);
+        padding: $info-vertical-padding ($control-spacing + 15px) $info-vertical-padding $control-spacing ;
+    }
+    
+    .msp-log-timestamp {
+        padding: ($info-vertical-padding + 1) $control-spacing ($info-vertical-padding - 1) $control-spacing;
+        float: left;
+        text-align: right;
+        width: $control-label-width;
+        color: $log-timestamp-font-color;
+        //vertical-align: baseline;
+        //line-height: $row-height;
+        font-size: 90%;
+    }    
+    
+    .msp-log-timestamp small {
+        font-size: 90%;
+    }
+}
+
+// .msp-log hr {
+//     border-color: $separator-color;
+//     margin: 3px 3px 0 5px;
+// }
+
+.msp-log .label { 
+    margin-top: -3px;
+    font-size: 7pt;
+}
+
+.msp-log-entry-badge {
+    position: absolute;
+    left: 0;
+    top: 0;
+    bottom: 0;
+    width: 6px;
+}
+
+.msp-log-entry-message {
+    background: $log-message;
+}
+
+.msp-log-entry-info {
+    background: $log-info;
+}
+
+.msp-log-entry-error {
+    background: $log-error;
+}
+
+.msp-log-entry-warning {
+    background: $log-warning;
+}
+
diff --git a/src/mol-plugin/skin/base/components/misc.scss b/src/mol-plugin/skin/base/components/misc.scss
new file mode 100644
index 000000000..d11284bcf
--- /dev/null
+++ b/src/mol-plugin/skin/base/components/misc.scss
@@ -0,0 +1,69 @@
+.msp-description {
+    padding: $control-spacing;
+    font-size: 85%;
+    background: $default-background;
+    text-align: center;
+    //font-style: italic;
+    
+    -webkit-user-select: none; /* Chrome/Safari */        
+    -moz-user-select: none; /* Firefox */
+    -ms-user-select: none; /* IE10+ */
+
+    /* Rules below not implemented in browsers yet */
+    -o-user-select: none;
+    user-select: none;
+    
+    font-weight: light;
+    
+    cursor: default;
+}
+
+.msp-description:not(:first-child) {
+    border-top: 1px solid $control-background;
+}
+
+.msp-color-picker input {
+    color: black !important;
+}
+
+.msp-no-webgl {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    left: 0;
+    top: 0;
+    display: table;
+    text-align: center;
+    
+    > div {
+        b {
+            font-size: 120%; 
+        }
+        display: table-cell;
+        vertical-align: middle;
+        text-align: center;
+        width: 100%;
+        height: 100%;
+    }
+}
+
+.msp-loader-msp-btn-file {
+    position: relative;
+    overflow: hidden;
+}
+
+.msp-loader-msp-btn-file input[type=file] {
+    position: absolute;
+    top: 0;
+    right: 0;
+    min-width: 100%;
+    min-height: 100%;
+    font-size: 100px;
+    text-align: right;
+    filter: alpha(opacity=0);
+    opacity: 0;
+    outline: none;
+    background: white;
+    cursor: inherit;
+    display: block;
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/components/panel.scss b/src/mol-plugin/skin/base/components/panel.scss
new file mode 100644
index 000000000..256c91dc5
--- /dev/null
+++ b/src/mol-plugin/skin/base/components/panel.scss
@@ -0,0 +1,142 @@
+.msp-panel-header .msp-panel-expander {
+    display: block;
+    width: 100%;
+    text-align: left;
+}
+
+.msp-panel-header {
+    
+    //border-bottom-width: 1px;
+    //border-bottom-style: solid;    
+    height: $row-height;
+    border-color: $border-color;
+    position: relative;
+    
+    //border-radius: $control-spacing 0 0 0;
+    
+    .msp-panel-expander-wrapper {
+        
+        position: absolute;
+        top: 0;
+        left: 0;
+        right: 2 * $row-height;
+            
+        button {
+            // width: 100%;
+            
+            display: block;
+            width: 100%;
+            text-align: left;
+            
+            height: $row-height;
+            line-height: $row-height; 
+            border: none;        
+            font-weight: bold;
+            //color: $panel-header-font-color;
+            padding-left: 0;
+            background: color-lower-contrast($default-background, 4%);   
+            //text-align: right!important;
+            
+            .msp-icon {
+                display: inline-block;
+                margin-right: $control-spacing; 
+                width: $row-height;
+                text-align: center;
+            }
+            
+            &:hover {
+                background: color-lower-contrast($default-background, 4%); 
+            }
+        }
+    }
+
+    .msp-panel-description-standalone {
+        > .msp-icon {
+            margin-left: $row-height;
+        }
+
+        width: 2 * $row-height;
+    }
+
+    .msp-panel-description-with-action {        
+        width: $row-height;
+        margin-right: $row-height;
+    }
+        
+    .msp-panel-description {        
+        color: $font-color;
+        float: right;
+        background: color-lower-contrast($default-background, 4%);
+        //margin-right: $row-height;
+        
+        > .msp-icon {
+            display: block;
+            width: $row-height;
+            height: $row-height;
+            line-height: $row-height;
+            text-align: center;
+            font-size: 70%;
+            cursor: default;
+            background: color-lower-contrast($default-background, 4%);  
+            color: color-lower-contrast($font-color, 66%);
+        }
+        
+        .msp-panel-description-content {
+            @include non-selectable;
+            
+            color: $font-color;
+            display: none;
+            position: absolute;
+            left: 0;
+            width: 100%;
+            background: color-increase-contrast($msp-form-control-background, 20%);
+            min-height: $row-height;
+            z-index: 1000000;
+            padding: $info-vertical-padding  $control-spacing $info-vertical-padding ($row-height + $control-spacing);
+            text-align: left;
+            //border-bottom: 1px solid color-lower-contrast($default-background, 4%);
+            
+            > .msp-icon {
+                position: absolute;
+                width: $row-height;
+                height: $row-height;
+                line-height: $row-height;
+                text-align: center;
+                font-size: 80%;
+                cursor: default;
+                top: 0;
+                left: 0;
+            }
+        }   
+
+        &:hover {
+            color: $hover-font-color;
+            > .msp-icon {
+                color: $hover-font-color;
+            }
+            .msp-panel-description-content {
+                display: block;
+            }
+        }    
+    }
+}
+
+.msp-panel-body {
+    background: $control-background;
+}
+
+.msp-panel {
+    margin-bottom: $control-spacing;
+}
+
+.msp-transform-view {
+    padding-top: $control-spacing;
+}
+
+.msp-expandable-group-color-stripe {
+    position: absolute;
+    left: 0;
+    top: $row-height - 2px;
+    width: $control-label-width + $control-spacing;
+    height: 2px;
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/components/slider.scss b/src/mol-plugin/skin/base/components/slider.scss
new file mode 100644
index 000000000..3d8795580
--- /dev/null
+++ b/src/mol-plugin/skin/base/components/slider.scss
@@ -0,0 +1,164 @@
+@mixin borderBox {
+  box-sizing: border-box;
+  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); //  remove tap highlight color for mobile safari
+
+  * {
+    box-sizing: border-box;
+    -webkit-tap-highlight-color: rgba(0, 0, 0, 0); //  remove tap highlight color for mobile safari
+  }
+}
+
+.msp-slider-base {
+  position: relative;
+  height: 14px;
+  padding: 5px 0;
+  width: 100%;
+  border-radius: $slider-border-radius-base;
+  @include borderBox;
+
+  &-rail {
+    position: absolute;
+    width: 100%;
+    background-color: $border-color;
+    height: 4px;
+    border-radius: 2px;
+  }
+
+  &-track {
+    position: absolute;
+    left: 0;
+    height: 4px;
+    border-radius: $slider-border-radius-base;
+    background-color: tint($font-color, 60%);
+  }
+
+  &-handle {
+    position: absolute;
+    margin-left: -11px;
+    margin-top: -9px;
+    width: 22px;
+    height: 22px;
+    cursor: pointer;
+    border-radius: 50%;
+    background-color: $font-color;
+    border: 4px solid $border-color;
+
+    &:hover {
+      background-color: $hover-font-color;
+    }
+  }
+
+  &-mark {
+    position: absolute;
+    top: 18px;
+    left: 0;
+    width: 100%;
+    font-size: 12px;
+  }
+
+  &-mark-text {
+    position: absolute;
+    display: inline-block;
+    vertical-align: middle;
+    text-align: center;
+    cursor: pointer;
+    color: #999;
+
+    &-active {
+      color: #666;
+    }
+  }
+
+  &-step {
+    position: absolute;
+    width: 100%;
+    height: 4px;
+    background: transparent;
+  }
+
+  &-dot {
+    position: absolute;
+    bottom: -2px;
+    margin-left: -4px;
+    width: 8px;
+    height: 8px;
+    border: 2px solid #e9e9e9;
+    background-color: #fff;
+    cursor: pointer;
+    border-radius: 50%;
+    vertical-align: middle;
+    &:first-child {
+      margin-left: -4px;
+    }
+    &:last-child {
+      margin-left: -4px;
+    }
+    &-active {
+      border-color: tint($font-color, 50%);
+    }
+  }
+
+  &-disabled {
+    background-color: #e9e9e9;
+
+    .msp-slider-base-track {
+      background-color: $slider-disabledColor;
+    }
+
+    .msp-slider-base-handle, .msp-slider-base-dot {
+      border-color: $slider-disabledColor;
+      background-color: #fff;
+      cursor: not-allowed;
+    }
+
+    .msp-slider-base-mark-text, .msp-slider-base-dot {
+      cursor: not-allowed!important;
+    }
+  }
+}
+
+.msp-slider-base-vertical {
+  width: 14px;
+  height: 100%;
+  padding: 0 5px;
+
+  .msp-slider-base {
+    &-rail {
+      height: 100%;
+      width: 4px;
+    }
+
+    &-track {
+      left: 5px;
+      bottom: 0;
+      width: 4px;
+    }
+
+    &-handle {
+      margin-left: -5px;
+      margin-bottom: -7px;
+    }
+
+    &-mark {
+      top: 0;
+      left: 18px;
+      height: 100%;
+    }
+
+    &-step {
+      height: 100%;
+      width: 4px;
+    }
+
+    &-dot {
+      left: 2px;
+      margin-bottom: -4px;
+      &:first-child {
+        margin-bottom: -4px;
+      }
+      &:last-child {
+        margin-bottom: -4px;
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/components/tasks.scss b/src/mol-plugin/skin/base/components/tasks.scss
new file mode 100644
index 000000000..77da59ce5
--- /dev/null
+++ b/src/mol-plugin/skin/base/components/tasks.scss
@@ -0,0 +1,132 @@
+.msp-task-state {
+    
+    line-height: $row-height;
+    //height: $row-height;
+    //position: relative;
+    //margin-top: 1px;
+    
+    > span {
+        @include non-selectable;
+        //display: inline-block;
+        //padding: 0 $control-spacing;
+    }
+    
+    > button {
+        //margin-top: -2px;
+        //float: left;
+        //display: block;
+        //line-height: $row-height;
+        //height: $row-height;
+    }
+}
+
+/* overlay */
+
+.msp-overlay {
+    position: absolute;
+    top: 0;
+    left: 0;
+    bottom: 0;
+    right: 0;
+    z-index: 1000;
+        
+    .msp-overlay-background {
+        position: absolute;
+        top: 0;
+        left: 0;
+        bottom: 0;
+        right: 0;
+        background: transparent;
+        //background: black;
+        //opacity: 0.5;
+    }
+    
+    .msp-overlay-content-wrap {
+        position: absolute;
+        top: 0;
+        left: 0;
+        bottom: 0;
+        right: 0;
+        display: block;
+        width: 100%;
+        height: 100%;
+    }
+    
+    .msp-overlay-content {
+        text-align: center;          
+        
+        > div {  
+            
+            padding-top: 2 * $row-height;
+                         
+            .msp-task-state {    
+                $size: $row-height;
+                text-align: center;
+                            
+                > div {
+                    height: $size;
+                    margin-top: $control-spacing;
+                    position: relative;
+                    text-align: center;
+                    width: 100%;
+                    
+                    > div {
+                        height: $size;
+                        line-height: $size;
+                        display: inline-block;                        
+                        background: $default-background;
+                        padding: 0 ($control-spacing);
+                        font-weight: bold;
+                        @include non-selectable;
+                    }
+                    
+                    > button {
+                        display: inline-block;       
+                        margin-top: -3px;
+                        font-size: 140%;
+                    }
+                }
+            }
+        }
+    }
+}
+
+/* background */
+
+.msp-background-tasks {
+    position: absolute;    
+    left: 0;
+    bottom: 0;
+    z-index: 1000;
+    
+    .msp-task-state {    
+        $size: $row-height;
+                    
+        > div {
+            height: $size;
+            margin-top: 1px;
+            position: relative;
+            width: 100%;
+            background: $default-background;
+            
+            > div {
+                height: $size;
+                line-height: $size;
+                display: inline-block;                 
+                padding: 0 ($control-spacing);
+                @include non-selectable;
+            }
+            
+            > button {
+                display: inline-block;       
+                margin-top: -3px;
+                font-size: 140%;
+            }
+        }        
+    }
+}
+
+// .msp-background-tasks .msp-task-state {
+//     color: 
+// }
+
diff --git a/src/mol-plugin/skin/base/components/toast.scss b/src/mol-plugin/skin/base/components/toast.scss
new file mode 100644
index 000000000..ff9c10900
--- /dev/null
+++ b/src/mol-plugin/skin/base/components/toast.scss
@@ -0,0 +1,82 @@
+
+.msp-toast-container {
+    position: absolute;
+    max-width: 100%;
+    bottom: $control-spacing;    
+    right: $control-spacing;
+    margin-left: $control-spacing;
+    z-index: 1001;
+    
+    .msp-toast-entry {
+
+        color: $font-color;
+        background: $control-background;
+        position: relative;
+        min-height: $row-height;
+        margin-top: $control-spacing;
+        border: 1px solid $border-color;
+        display: table;
+
+        .msp-toast-title {
+            height: 100%;
+            line-height: $row-height;
+            padding: 0 $control-spacing;
+            background: $default-background;
+            font-weight: bold;
+            display: table-cell;
+
+            -webkit-user-select: none; /* Chrome/Safari */        
+            -moz-user-select: none; /* Firefox */
+            -ms-user-select: none; /* IE10+ */
+
+            /* Rules below not implemented in browsers yet */
+            -o-user-select: none;
+            user-select: none;
+            
+            font-weight: light;
+            
+            cursor: pointer;
+        }
+
+        .msp-toast-message {
+            padding: $info-vertical-padding ($control-spacing + $row-height) $info-vertical-padding $control-spacing;
+            display: table-cell;
+
+            a {
+                text-decoration: none;
+                color: $msp-btn-commit-on-font-color;
+                font-weight: bold;
+
+                &:hover {
+                    text-decoration: underline;
+                    color: $msp-btn-commit-on-hover-font-color;
+                }
+
+                &:active, &:focus {
+                    color: $msp-btn-commit-on-font-color;
+                    outline-offset: 0;
+                    outline: none;    
+                }
+            }
+        }
+
+        .msp-toast-hide {
+            position: absolute;
+            width: $row-height + $control-spacing;
+            right: 0;
+            top: 0;
+            bottom: 0;
+
+            .msp-btn-icon {
+                position: absolute;
+                top: 0;
+                right: 0;
+                left: 0;
+                bottom: 0;
+                width: 100%;
+                text-align: right;
+                padding-right: $control-spacing / 2;
+            }            
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/components/transformer.scss b/src/mol-plugin/skin/base/components/transformer.scss
new file mode 100644
index 000000000..8328a1eb1
--- /dev/null
+++ b/src/mol-plugin/skin/base/components/transformer.scss
@@ -0,0 +1,39 @@
+.msp-transformer {    
+    
+    .msp-entity-badge {
+        position: absolute;
+        top: 0;
+        right: 0;
+        height: $row-height;
+        line-height: $row-height;
+        width: $row-height;
+    }
+}
+
+.msp-layout-right {
+    background: $control-background;
+}
+
+.msp-transformer-wrapper {
+    position: relative;    
+}
+
+.msp-transformer-wrapper {   
+    
+    .msp-entity-badge {
+        left: 0;
+        top: 0;
+    }
+    
+    &:first-child {
+        .msp-panel-description-content {
+            top: $row-height + 1;
+        }
+    }
+    
+    &:not(:first-child) {
+        .msp-panel-description-content {            
+            bottom: $row-height + 1;
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/components/viewport.scss b/src/mol-plugin/skin/base/components/viewport.scss
new file mode 100644
index 000000000..55ca6cd8b
--- /dev/null
+++ b/src/mol-plugin/skin/base/components/viewport.scss
@@ -0,0 +1,93 @@
+.msp-viewport {
+    position: absolute;
+    left: 0;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    background: black;
+    
+    .msp-btn-link {
+        background: rgba(0,0,0,0.2);
+    }
+    
+}
+
+.msp-viewport-expanded {
+    position: fixed;
+    z-index: 1000;
+}
+
+.msp-viewport-host3d {
+    position: absolute;
+    left: 0;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    -webkit-user-select: none;
+    -webkit-tap-highlight-color: rgba(0,0,0,0);
+    -webkit-touch-callout: none;
+}
+
+.msp-viewport-controls {
+    position: absolute;
+    right: $control-spacing;
+    top: $control-spacing;   
+}
+
+.msp-viewport-controls-buttons {
+    text-align: right;
+    
+    > button {
+        padding: 0;
+        text-align: center;
+        width: $row-height;
+    }
+    
+    > button:last-child {
+        margin-left: $control-spacing;
+    }    
+    
+    .msp-btn-link, .msp-btn-link-toggle-on {
+        color: #eee;
+    }
+    
+    .msp-btn-link-toggle-off {
+        color: $msp-btn-link-toggle-off-font-color;
+    }
+    
+    .msp-btn-link:hover {
+        color: $hover-font-color;
+    }
+}
+
+.msp-viewport-controls-scene-options {
+    width: 290px;
+    background: $control-background;
+}
+
+/* highlight */
+
+.msp-highlight-info {
+    
+    color: $highlight-info-font-color;
+    padding: $info-vertical-padding $control-spacing;
+    background: $default-background; //$highlight-info-background;
+    
+    position: absolute;
+    top: $control-spacing;
+    left: $control-spacing;
+    text-align: left;
+    min-height: $row-height;
+    max-width: 95%;
+    
+    //border-bottom-right-radius: 6px;
+    z-index: 10000;
+    @include non-selectable;
+}
+
+.msp-highlight-info-additional {
+    font-size: 85%;
+    display: inline-block;
+    color: $highlight-info-additional-font-color;
+}
+
diff --git a/src/mol-plugin/skin/base/icons.scss b/src/mol-plugin/skin/base/icons.scss
new file mode 100644
index 000000000..d79242cfc
--- /dev/null
+++ b/src/mol-plugin/skin/base/icons.scss
@@ -0,0 +1,135 @@
+
+[class^="msp-icon-"]:before, [class*=" msp-icon-"]:before {
+  font-family: "fontello";
+  font-style: normal;
+  font-weight: normal;
+  speak: none;
+ 
+  display: inline-block;
+  text-decoration: inherit;
+  width: 1em;
+  margin-right: .2em;
+  text-align: center;
+  /* opacity: .8; */
+ 
+  /* For safety - reset parent styles, that can break glyph codes*/
+  font-variant: normal;
+  text-transform: none;
+ 
+  /* fix buttons height, for twitter bootstrap */
+  line-height: 1em;
+ 
+  /* Animation center compensation - margins should be symmetric */
+  /* remove if not needed */
+  margin-left: .2em;
+ 
+  /* you can be more comfortable with increased icons size */
+  /* font-size: 120%; */
+ 
+  /* Font smoothing. That was taken from TWBS */
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+ 
+  /* Uncomment for 3D effect */
+  /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
+}
+
+.msp-icon-expand-layout:before { 
+	content: "\e84a";
+}
+
+.msp-icon-plus:before { 
+	content: "\e816";
+}
+
+.msp-icon-minus:before { 
+	content: "\e819";
+}
+
+.msp-icon-reset-scene:before {
+	content: "\e891";
+}
+
+.msp-icon-ok:before { 
+	content: "\e812";
+}
+
+.msp-icon-cross:before { 
+	content: "\e868";
+}
+
+.msp-icon-off:before { 
+	content: "\e813";
+}
+
+.msp-icon-expand:before {
+	content: "\e885";
+}
+
+.msp-icon-collapse:before { 
+	content: "\e883";
+}
+
+.msp-icon-visual-visibility:before { 
+	content: "\e826";
+}
+
+.msp-icon-abort:before { 
+	content: "\e814";
+}
+
+.msp-icon-focus-on-visual:before { 
+	content: "\e8a3";
+}
+
+.msp-icon-settings:before  { 
+	content: "\e855";
+}
+
+.msp-icon-tools:before {
+	content: "\e856";
+}
+
+.msp-icon-log:before {
+	content: "\e8a5";
+}
+
+.msp-icon-remove:before {
+	content: "\e847";
+}
+
+.msp-icon-help:before {
+    content: '\e81c'
+}
+
+.msp-icon-info:before {
+    content: '\e81e'
+}
+
+.msp-icon-left-open-big:before {
+    content: '\e87c'
+}
+
+.msp-icon-right-open-big:before {
+    content: '\e87d'
+}
+
+.msp-icon-left-open:before {
+    content: '\e874'
+}
+
+.msp-icon-right-open:before {
+    content: '\e875'
+}
+
+.msp-icon-screenshot:before { 
+	content: "\e80f";
+}
+
+.msp-icon-help:before { 
+	content: "\e81c";
+}
+
+.msp-icon-help-circle:before { 
+	content: "\e81d";
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/layout.scss b/src/mol-plugin/skin/base/layout.scss
new file mode 100644
index 000000000..8f05c4dab
--- /dev/null
+++ b/src/mol-plugin/skin/base/layout.scss
@@ -0,0 +1,29 @@
+
+@import 'layout/common';
+
+.msp-layout-standard-outside {
+    position: absolute;
+    @import 'layout/controls-outside';    
+}
+
+.msp-layout-standard-landscape {
+    position: absolute;
+    @import 'layout/controls-landscape';    
+}
+
+.msp-layout-standard-portrait {
+    position: absolute;
+    @import 'layout/controls-portrait';    
+}
+
+.msp-layout-expanded {    
+    position: fixed;
+        
+    @media (orientation:landscape) {
+        @import 'layout/controls-landscape';
+    };     
+    
+    @media (orientation:portrait) {
+        @import 'layout/controls-portrait';
+    }  ;
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/layout/common.scss b/src/mol-plugin/skin/base/layout/common.scss
new file mode 100644
index 000000000..afd01479f
--- /dev/null
+++ b/src/mol-plugin/skin/base/layout/common.scss
@@ -0,0 +1,61 @@
+
+
+.msp-layout-expanded, .msp-layout-standard {
+    left: 0;
+    right: 0;
+    top: 0;
+    bottom: 0;
+}
+
+.msp-layout-region {
+    overflow: hidden;
+    background: $default-background;
+}
+
+.msp-layout-static, .msp-layout-scrollable {
+    position: absolute;
+}
+
+.msp-layout-scrollable {
+    overflow-y: auto;
+}
+
+.msp-layout-static {
+    overflow: hidden;
+}
+
+.msp-layout-main, .msp-layout-bottom {
+    .msp-layout-static {        
+        left: 0;
+        right: 0;
+        top: 0;
+        bottom: 0;
+    }    
+}
+
+.msp-layout-right {
+        
+    .msp-layout-static {        
+        left: 0;
+        right: 0;
+        top: 0;
+        height: $row-height + $control-spacing;
+    }
+    
+    .msp-layout-scrollable {
+        left: 0;
+        right: 0;
+        top: $row-height + $control-spacing + 1;
+        bottom: 0;
+     }   
+    
+}
+
+.msp-layout-left {    
+    .msp-layout-static {        
+        left: 0;
+        right: 0;
+        bottom: 0;
+        top: 0;
+    }
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/layout/controls-landscape.scss b/src/mol-plugin/skin/base/layout/controls-landscape.scss
new file mode 100644
index 000000000..fe395aa8d
--- /dev/null
+++ b/src/mol-plugin/skin/base/layout/controls-landscape.scss
@@ -0,0 +1,81 @@
+
+.msp-layout-main {                
+    position: absolute;
+    left: $expanded-left-width;
+    right: $expanded-right-width;
+    bottom: $expanded-bottom-height;
+    top: $expanded-top-height;
+}
+
+.msp-layout-top {        
+    position: absolute;
+    left: $expanded-left-width;
+    right: $expanded-right-width;
+    height: $expanded-top-height;
+    top: 0;
+    border-bottom: 1px solid $border-color;
+}
+
+.msp-layout-bottom {        
+    position: absolute;
+    left: $expanded-left-width;
+    right: $expanded-right-width;
+    height: $expanded-bottom-height;
+    bottom: 0;
+    border-top: 1px solid $border-color;
+}
+
+.msp-layout-right {
+    position: absolute;
+    width: $expanded-right-width;
+    right: 0;
+    bottom: 0;
+    top: 0;
+    border-left: 1px solid $border-color;
+}
+
+.msp-layout-left {
+    position: absolute;
+    width: $expanded-left-width;
+    left: 0;
+    bottom: 0;
+    top: 0;
+    border-right: 1px solid $border-color;
+}
+
+.msp-layout-hide-right {
+    .msp-layout-right {
+        display: none;
+    }    
+    .msp-layout-main, .msp-layout-top, .msp-layout-bottom {
+        right: 0;
+    }    
+}
+
+
+.msp-layout-hide-left {
+    .msp-layout-left {
+        display: none;
+    }    
+    .msp-layout-main, .msp-layout-top, .msp-layout-bottom {
+        left: 0;
+    }    
+}
+
+.msp-layout-hide-bottom {
+    .msp-layout-bottom {
+        display: none;
+    }    
+    .msp-layout-main {
+        bottom: 0;
+    }    
+}
+
+.msp-layout-hide-top {
+    .msp-layout-top {
+        display: none;
+    }    
+    .msp-layout-main {
+        top: 0;
+    }    
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/layout/controls-outside.scss b/src/mol-plugin/skin/base/layout/controls-outside.scss
new file mode 100644
index 000000000..a6bde6fcd
--- /dev/null
+++ b/src/mol-plugin/skin/base/layout/controls-outside.scss
@@ -0,0 +1,89 @@
+
+.msp-layout-main {                
+    position: absolute;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    top: 0;
+}
+
+.msp-layout-top {        
+    position: absolute;
+    right: 0;
+    height: $standard-top-height;
+    top: -$standard-top-height;
+    width: 50%;
+    border-left: 1px solid $border-color;
+    border-bottom: 1px solid $border-color;
+}
+
+.msp-layout-bottom {        
+    position: absolute;
+    left: 0;
+    right: 0;
+    height: $standard-top-height;
+    top: -$standard-top-height;
+    width: 50%;    
+    border-bottom: 1px solid $border-color;
+}
+
+.msp-layout-right {
+    position: absolute;
+    width: 50%;
+    right: 0;
+    bottom: -$standard-bottom-height;
+    height: $standard-bottom-height;
+    border-left: 1px solid $border-color;
+    border-top: 1px solid $border-color;
+}
+
+.msp-layout-left {
+    position: absolute;
+    width: 50%;
+    left: 0;
+    bottom: 0;
+    bottom: -$standard-bottom-height;
+    height: $standard-bottom-height;
+    border-top: 1px solid $border-color;
+}
+
+/////////////////////////////////////////
+.msp-layout-hide-right {
+    .msp-layout-right {
+        display: none;
+    }    
+    .msp-layout-left {
+        width: 100%;        
+    }    
+}
+
+.msp-layout-hide-left {
+    .msp-layout-left {
+        display: none;
+    }    
+    .msp-layout-right {
+        width: 100%;
+        border-left: none;
+    }    
+}
+
+///////////////////////////////////
+.msp-layout-hide-top {
+    .msp-layout-top {
+        display: none;
+    }    
+    .msp-layout-bottom {
+        width: 100%;
+        border-left: none;
+    }    
+}
+
+.msp-layout-hide-bottom {
+    .msp-layout-bottom {
+        display: none;
+    }    
+    .msp-layout-top {
+        width: 100%;
+        border-left: none;
+    }    
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/layout/controls-portrait.scss b/src/mol-plugin/skin/base/layout/controls-portrait.scss
new file mode 100644
index 000000000..594625afd
--- /dev/null
+++ b/src/mol-plugin/skin/base/layout/controls-portrait.scss
@@ -0,0 +1,99 @@
+
+.msp-layout-main {                
+    position: absolute;
+    left: 0;
+    right: 0;
+    bottom: $expanded-portrait-bottom-height;
+    top: $expanded-portrait-top-height;
+}
+
+.msp-layout-top {        
+    position: absolute;
+    right: 0;
+    height: $expanded-portrait-top-height;
+    top: 0;
+    width: 50%;
+    border-left: 1px solid $border-color;
+    border-bottom: 1px solid $border-color;
+}
+
+.msp-layout-bottom {        
+    position: absolute;
+    left: 0;
+    right: 0;
+    height: $expanded-portrait-top-height;
+    width: 50%;    
+    border-bottom: 1px solid $border-color;
+}
+
+.msp-layout-right {
+    position: absolute;
+    width: 50%;
+    right: 0;
+    bottom: 0;
+    height: $expanded-portrait-bottom-height;
+    border-left: 1px solid $border-color;
+    border-top: 1px solid $border-color;
+}
+
+.msp-layout-left {
+    position: absolute;
+    width: 50%;
+    left: 0;
+    bottom: 0;
+    height: $expanded-portrait-bottom-height;
+    border-top: 1px solid $border-color;
+}
+
+/////////////////////////////////////////
+.msp-layout-hide-right {
+    .msp-layout-right {
+        display: none;
+    }    
+    .msp-layout-left {
+        width: 100%;        
+    }    
+}
+
+.msp-layout-hide-left {
+    .msp-layout-left {
+        display: none;
+    }    
+    .msp-layout-right {
+        width: 100%;
+        border-left: none;
+    }    
+}
+
+.msp-layout-hide-right.msp-layout-hide-left {
+    .msp-layout-main {
+        bottom: 0;
+    }
+}
+
+///////////////////////////////////
+.msp-layout-hide-top {
+    .msp-layout-top {
+        display: none;
+    }    
+    .msp-layout-bottom {
+        width: 100%;
+        border-left: none;
+    }    
+}
+
+.msp-layout-hide-bottom {
+    .msp-layout-bottom {
+        display: none;
+    }    
+    .msp-layout-top {
+        width: 100%;
+        border-left: none;
+    }    
+}
+
+.msp-layout-hide-top.msp-layout-hide-bottom {
+    .msp-layout-main {
+        top: 0;
+    }
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/logo.scss b/src/mol-plugin/skin/base/logo.scss
new file mode 100644
index 000000000..4f9fbb606
--- /dev/null
+++ b/src/mol-plugin/skin/base/logo.scss
@@ -0,0 +1,50 @@
+
+.msp-logo {
+    position: absolute;
+    top: 0;
+    left: 0;
+    bottom: 0;
+    right: 0;
+    
+    display: table;
+    width: 100%;
+    height: 100%;
+    
+    > div {
+        display: table-cell;
+        vertical-align: middle;        
+        text-align: center;
+        
+        > div {
+            display: inline-block;
+            position: relative;
+            width: 50%;
+            max-width: 450px;
+            height: 130px;
+            
+            > div {
+                position: absolute;
+                top: 0;
+                left: 0;
+                bottom: 0;
+                right: 0;
+            }
+            
+            > div:first-child {
+                //border-radius: 8px;
+                background: $logo-background;
+            }
+        }
+    }
+}
+
+
+
+.msp-logo-image {
+@include  non-selectable;
+margin: 20px;
+background-repeat: no-repeat;
+background-position: center;
+background-size: contain;
+background-image: url(data:image/png;base64,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);
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/ui.scss b/src/mol-plugin/skin/base/ui.scss
new file mode 100644
index 000000000..4a6063880
--- /dev/null
+++ b/src/mol-plugin/skin/base/ui.scss
@@ -0,0 +1,42 @@
+
+@mixin non-selectable {
+    -webkit-user-select: none; /* Chrome/Safari */        
+    -moz-user-select: none; /* Firefox */
+    -ms-user-select: none; /* IE10+ */
+    /* Rules below not implemented in browsers yet */
+    -o-user-select: none;
+    user-select: none;
+    
+    cursor: default;
+}
+
+::-webkit-scrollbar {
+    width: 10px;
+    height:10px;
+}
+
+::-webkit-scrollbar-track {
+    //-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.8); 
+    border-radius: 0;
+    background-color: color-lower-contrast($control-background, 4%);
+}
+
+::-webkit-scrollbar-thumb {
+    border-radius: 0;
+    //-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.9); 
+    background-color: color-lower-contrast($control-background, 8%);
+}
+
+@import 'components/controls-base'; 
+@import 'components/controls';
+@import 'components/slider';
+@import 'components/panel';
+@import 'components/misc';
+@import 'components/entity';
+@import 'components/entity-info';
+@import 'components/tasks';
+@import 'components/viewport';
+@import 'components/log';
+@import 'components/transformer';
+@import 'components/toast';
+@import 'components/help';
\ No newline at end of file
diff --git a/src/mol-plugin/skin/base/variables.scss b/src/mol-plugin/skin/base/variables.scss
new file mode 100644
index 000000000..ada1a971c
--- /dev/null
+++ b/src/mol-plugin/skin/base/variables.scss
@@ -0,0 +1,78 @@
+
+// measures 
+
+$control-label-width:   110px;
+$row-height:            32px;
+$control-spacing:       10px;
+$entity-subtree-offset: 8px;
+$info-vertical-padding: 6px;
+$slider-border-radius-base: 6px;
+
+// layout
+$expanded-top-height:    100px;
+$expanded-bottom-height: 3 * $row-height + 2;
+$expanded-right-width:   290px;
+$expanded-left-width:    290px;
+
+$expanded-portrait-bottom-height: 10 * ($row-height + 1) + 3 * $control-spacing + 1;
+$expanded-portrait-top-height:    2 * $row-height + 1;
+
+$standard-bottom-height: 8 * ($row-height + 1) + 3 * $control-spacing + 1;
+$standard-top-height:    2 * $row-height + 1;
+
+//////////////////////////////////////////////////
+// ENTITY COLORS
+
+
+// entity colors are "somewhat orthogonal" on the RGB cube
+// TypeClass = 'Root' | 'Group' | 'Data' | 'Object' | 'Visual' | 'Selection' | 'Action' | 'Behaviour'
+
+// DO NOT CHANGE THESE!!
+$entity-color-Root:      $default-background;    
+$entity-color-Data:      color-lower-contrast(#95a5a6, 15%); 
+$entity-color-Selection: color-lower-contrast(#e74c3c, 15%); 
+$entity-color-Action:    color-lower-contrast(#34495e, 10%); 
+$entity-color-Object:    color-lower-contrast(#2ecc71, 10%); 
+$entity-color-Behaviour: color-lower-contrast(#9b59b6, 10%);   
+$entity-color-Visual:    color-lower-contrast(#3498db, 5%); 
+$entity-color-Group:     color-lower-contrast(#e67e22, 5%); 
+
+//////////////////////////////////////////////////
+// COLORS and COMPUTED COLORS
+
+$slider-disabledColor: #ccc;
+
+$control-background: color-increase-contrast($default-background, 6.5%);
+$border-color: color-increase-contrast($default-background, 15%);  
+$msp-form-control-background: color-lower-contrast($default-background, 2.5%); 
+
+// buttons
+$msp-btn-link-font-color: $font-color;
+$msp-btn-link-toggle-on-font-color: $font-color;
+$msp-btn-link-toggle-off-font-color: color-lower-contrast($font-color, 33%);
+
+// used for "actions" -- i.e. + in selection
+$msp-btn-remove-font-color: $font-color;
+
+$msp-btn-action-background: $msp-form-control-background;
+
+// update selection etc
+//!! $msp-btn-commit-on-font-color: $entity-current-font-color;
+$msp-btn-commit-on-hover-font-color: color-lower-contrast($msp-btn-commit-on-font-color, 20%); //!!Change
+$msp-btn-commit-on-background: color-lower-contrast($default-background, 2%);
+$msp-btn-commit-off-background:  color-lower-contrast($default-background, 4%); //$control-background;
+$msp-btn-commit-off-font-color: $font-color;
+
+// log
+$log-font-color: color-lower-contrast($font-color, 5%);
+$log-timestamp-font-color: color-lower-contrast($font-color, 20%);
+
+// highlight
+$highlight-info-font-color: $hover-font-color;
+$highlight-info-additional-font-color: color-lower-contrast($hover-font-color, 20%);
+
+// entity state
+$entity-color-fully-visible: $font-color; 
+$entity-color-not-visible: color-lower-contrast($font-color, 66%);
+$entity-color-partialy-visible: color-lower-contrast($font-color, 33%);
+$entity-tag-color: color-lower-contrast($font-color, 20%);
diff --git a/src/mol-plugin/skin/blue.scss b/src/mol-plugin/skin/blue.scss
new file mode 100644
index 000000000..846c0e0a1
--- /dev/null
+++ b/src/mol-plugin/skin/blue.scss
@@ -0,0 +1,2 @@
+@import 'colors/blue';
+@import 'base/base';
\ No newline at end of file
diff --git a/src/mol-plugin/skin/colors/blue.scss b/src/mol-plugin/skin/colors/blue.scss
new file mode 100644
index 000000000..46a770969
--- /dev/null
+++ b/src/mol-plugin/skin/colors/blue.scss
@@ -0,0 +1,24 @@
+$default-background:         #2D3E50;
+$font-color:                 #EDF1F2; 
+$hover-font-color:           #3B9AD9;
+$entity-current-font-color:  #FFFFFF;
+$msp-btn-remove-background:      #BF3A31;
+$msp-btn-remove-hover-font-color:#ffffff;
+$msp-btn-commit-on-font-color:   #ffffff; 
+$entity-badge-font-color:    #ccd4e0;
+
+// used in LOG
+$log-message:          #0CCA5D;
+$log-info:             #5E3673;
+$log-warning:          #FCC937;
+$log-error:            #FD354B;
+
+$logo-background: rgba(0,0,0,0.75);
+
+@function color-lower-contrast($color, $amount) {
+    @return darken($color, $amount);
+}
+
+@function color-increase-contrast($color, $amount) {
+    @return lighten($color, $amount);
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/colors/dark.scss b/src/mol-plugin/skin/colors/dark.scss
new file mode 100644
index 000000000..2e6893aca
--- /dev/null
+++ b/src/mol-plugin/skin/colors/dark.scss
@@ -0,0 +1,24 @@
+$default-background:         #111318;
+$font-color:                 #ccd4e0;  
+$hover-font-color:           #51A2FB;
+$entity-current-font-color:  #68BEFD;
+$msp-btn-remove-background:      #DE0A28;
+$msp-btn-remove-hover-font-color:#F2F4F7;
+$msp-btn-commit-on-font-color:   #68BEFD;
+$entity-badge-font-color:    #ccd4e0;
+
+// used in LOG
+$log-message:          #0CCA5D;
+$log-info:             #5E3673;
+$log-warning:          #FCC937;
+$log-error:            #FD354B;
+
+$logo-background: rgba(0,0,0,0.75);
+
+@function color-lower-contrast($color, $amount) {
+    @return darken($color, $amount);
+}
+
+@function color-increase-contrast($color, $amount) {
+    @return lighten($color, $amount);
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/colors/light.scss b/src/mol-plugin/skin/colors/light.scss
new file mode 100644
index 000000000..cb628fdea
--- /dev/null
+++ b/src/mol-plugin/skin/colors/light.scss
@@ -0,0 +1,30 @@
+// this is complement of the dark theme
+
+@function compl($color) {
+    @return rgb(255 - red($color), 255 - green($color), 255 - blue($color)); 
+}
+
+$default-background:         compl(#111318);
+$font-color:                 compl(#ccd4e0);
+$hover-font-color:           compl(#51A2FB);
+$entity-current-font-color:  compl(#68BEFD);
+$msp-btn-commit-on-font-color:   compl(#68BEFD);
+$entity-badge-font-color:    lighten(#ccd4e0,10%);
+$msp-btn-remove-background:      #DE0A28;
+$msp-btn-remove-hover-font-color:#F2F4F7;
+
+// used in LOG
+$log-message:          #0CCA5D;
+$log-info:             #5E3673;
+$log-warning:          #FCC937;
+$log-error:            #FD354B;
+
+$logo-background: rgba(204,201,193,0.85);
+
+@function color-lower-contrast($color, $amount) {
+    @return lighten($color, $amount);
+}
+
+@function color-increase-contrast($color, $amount) {
+    @return darken($color, $amount);
+}
\ No newline at end of file
diff --git a/src/mol-plugin/skin/dark.scss b/src/mol-plugin/skin/dark.scss
new file mode 100644
index 000000000..8b3d00abd
--- /dev/null
+++ b/src/mol-plugin/skin/dark.scss
@@ -0,0 +1,2 @@
+@import 'colors/dark';
+@import 'base/base';
\ No newline at end of file
diff --git a/src/mol-plugin/skin/fonts/fontello.eot b/src/mol-plugin/skin/fonts/fontello.eot
new file mode 100644
index 0000000000000000000000000000000000000000..b522411b265bb3854a7f23579001bfe51e4229cb
GIT binary patch
literal 49272
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
S(b~cIzjXsk??%wHHUj{)gJOyR

literal 0
HcmV?d00001

diff --git a/src/mol-plugin/skin/fonts/fontello.svg b/src/mol-plugin/skin/fonts/fontello.svg
new file mode 100644
index 000000000..753bf788b
--- /dev/null
+++ b/src/mol-plugin/skin/fonts/fontello.svg
@@ -0,0 +1,442 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Copyright (C) 2016 by original authors @ fontello.com</metadata>
+<defs>
+<font id="fontello" horiz-adv-x="1000" >
+<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
+<missing-glyph horiz-adv-x="1000" />
+<glyph glyph-name="palette" unicode="&#xe800;" d="M857 622q72-48 101-110t20-104-35-48q-16-4-54 10t-80 10-80-46q-30-46-21-75t34-65 23-50q-2-26-36-63t-126-74-216-37q-186 0-291 101t-95 245q8 118 104 235t216 151q290 84 536-80z m-318-466q30 0 52 22t22 54-22 53-52 21q-32 0-54-21t-22-53 22-54 54-22z" horiz-adv-x="980" />
+
+<glyph glyph-name="search" unicode="&#xe803;" d="M772 78q30-34 6-62l-46-46q-36-32-68 0l-190 190q-74-42-156-42-128 0-223 95t-95 223 90 219 218 91 224-95 96-223q0-88-46-162z m-678 358q0-88 68-156t156-68 151 63 63 153q0 88-68 155t-156 67-151-63-63-151z" horiz-adv-x="789" />
+
+<glyph glyph-name="flashlight" unicode="&#xe804;" d="M807 706q62-62 85-130t-5-92l-134-134q-16-16-62-26t-96-4l-408-408q-18-18-57-6t-75 50q-36 36-49 74t5 56l408 408q-6 50 4 96t26 62l136 136q24 28 92 4t130-86z m-448-408q32-32 80 14 46 46 14 82-14 14-38 10t-44-24-23-43 11-39z m336 298q30-30 68-50t62-25 28-1q2 4-4 27t-26 60-50 67-66 50-59 26-27 2 1-28 25-62 48-66z" horiz-adv-x="902" />
+
+<glyph glyph-name="mail" unicode="&#xe805;" d="M30 586q-32 18-28 40 2 14 26 14l846 0q38 0 20-32-8-14-24-22-14-6-192-102t-182-98q-16-10-46-10-28 0-46 10-4 2-182 98t-192 102z m850-100q20 10 20-10l0-368q0-16-17-32t-33-16l-800 0q-16 0-33 16t-17 32l0 368q0 20 20 10l384-200q18-10 46-10t46 10z" horiz-adv-x="900" />
+
+<glyph glyph-name="heart" unicode="&#xe806;" d="M790 644q70-64 70-156t-70-158l-360-330-360 330q-70 66-70 158t70 156q62 58 151 58t153-58l56-52 58 52q62 58 150 58t152-58z" horiz-adv-x="860" />
+
+<glyph glyph-name="heart-empty" unicode="&#xe807;" d="M790 642q70-64 70-156t-70-156l-360-330-360 330q-70 64-70 156t70 156q64 58 152 58t150-58l58-52 56 52q64 58 152 58t152-58z m-54-260q42 40 42 104 0 66-38 100-38 38-102 38-52 0-104-48l-104-92-106 92q-48 48-102 48-64 0-104-38-38-36-38-100 0-66 44-104l306-286z" horiz-adv-x="860" />
+
+<glyph glyph-name="star" unicode="&#xe808;" d="M440 790l120-336 320 0-262-196 94-348-272 208-272-208 94 348-262 196 320 0z" horiz-adv-x="880" />
+
+<glyph glyph-name="star-empty" unicode="&#xe809;" d="M880 454l-262-196 94-348-272 208-272-208 94 348-262 196 320 0 120 336 120-336 320 0z m-440-238l150-124-62 178 144 114-176-4-56 202-54-202-176 4 142-114-62-178z" horiz-adv-x="880" />
+
+<glyph glyph-name="user" unicode="&#xe80a;" d="M736 128q204-72 204-122l0-106-940 0 0 106q0 50 204 122 94 34 128 69t34 95q0 22-22 49t-32 73q-2 12-9 18t-14 8-14 17-9 43q0 16 5 26t9 12l4 4q-8 50-12 88-4 54 41 112t157 58 158-58 40-112l-12-88q18-8 18-42-2-28-9-43t-14-17-14-8-9-18q-8-48-31-74t-23-48q0-60 35-95t127-69z" horiz-adv-x="940" />
+
+<glyph glyph-name="users" unicode="&#xe80b;" d="M1000-90l-224 0 0 150q0 54-30 81t-154 89q40 30 40 84 0 16-13 33t-19 51q-2 8-14 16t-14 42q0 24 12 30-6 34-8 60-4 38 23 78t95 40 96-40 24-78l-8-60q12-6 12-30-2-34-14-42t-14-16q-6-34-19-51t-13-33q0-42 21-66t77-48q112-46 130-80 6-8 9-61t5-101l0-48z m-488 262q182-78 182-124l0-138-694 0 0 184q0 44 84 78 76 32 104 64t28 88q0 20-19 44t-25 68q-2 10-18 22t-20 56q0 14 3 23t7 13l4 2q-6 46-10 82-4 50 33 103t127 53 127-53 33-103l-10-82q14-8 14-38-4-44-20-56t-18-22q-6-44-25-68t-19-44q0-56 28-88t104-64z" horiz-adv-x="1000" />
+
+<glyph glyph-name="user-add" unicode="&#xe80c;" d="M620 128q180-64 180-122l0-106-800 0 0 202q36 14 82 26 94 34 129 69t35 95q0 22-23 48t-31 74q-2 12-23 25t-25 61q0 16 5 26t9 12l4 4q-8 50-12 88-6 54 40 112t160 58 160-58 42-112l-14-88q18-8 18-42-2-28-9-43t-14-17-14-8-9-18q-10-46-33-73t-23-49q0-60 36-95t130-69z m230 272l150 0 0-100-150 0 0-150-100 0 0 150-150 0 0 100 150 0 0 150 100 0 0-150z" horiz-adv-x="1000" />
+
+<glyph glyph-name="video" unicode="&#xe80d;" d="M980 600l-100 0 0-100 100 0 0-100-100 0 0-100 100 0 0-100-100 0 0-100 100 0 0-60q0-16-12-28t-28-12l-900 0q-16 0-28 12t-12 28l0 60 100 0 0 100-100 0 0 100 100 0 0 100-100 0 0 100 100 0 0 100-100 0 0 60q0 18 12 29t28 11l900 0q16 0 28-11t12-29l0-60z m-600-400l250 150-250 150 0-300z" horiz-adv-x="980" />
+
+<glyph glyph-name="picture" unicode="&#xe80e;" d="M856 518l-100 0-124 150-214-150-180 0q-52 0-90-39t-38-91l0-160-108 296q-10 38 22 52l680 248q36 10 50-24z m106-90q16 0 27-12t11-28l0-472q0-16-11-28t-27-12l-724 0q-16 0-27 12t-11 28l0 472q0 16 11 28t27 12l724 0z m-56-452l0 162-72 160-166-60-130-132-138 170-92-214 0-86 598 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="camera" unicode="&#xe80f;" d="M500 450q64 0 107-44t43-106-44-106-106-44-106 44-44 106 44 106 106 44z m400 150q42 0 71-29t29-71l0-450q0-40-29-70t-71-30l-800 0q-40 0-70 30t-30 70l0 450q0 42 30 71t70 29l120 0q28 0 40 30l30 92q10 28 40 28l340 0q30 0 40-28l30-92q12-30 40-30l120 0z m-400-550q104 0 177 73t73 177-73 177-177 73-177-73-73-177 73-177 177-73z m366 380q14 0 24 11t10 25-10 24-24 10q-36 0-36-34 0-16 11-26t25-10z" horiz-adv-x="1000" />
+
+<glyph glyph-name="layout" unicode="&#xe810;" d="M170 650q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z m350 0q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z m-350-350q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z m350 0q80 0 80-80l0-90q0-80-80-80l-90 0q-80 0-80 80l0 90q0 80 80 80l90 0z" horiz-adv-x="600" />
+
+<glyph glyph-name="menu" unicode="&#xe811;" d="M650 400q22 0 36-15t14-35-15-35-35-15l-600 0q-20 0-35 15t-15 35 14 35 36 15l600 0z m-600 100q-20 0-35 15t-15 35 14 35 36 15l600 0q22 0 36-15t14-35-15-35-35-15l-600 0z m600-300q22 0 36-15t14-35-15-35-35-15l-600 0q-20 0-35 15t-15 35 14 35 36 15l600 0z" horiz-adv-x="700" />
+
+<glyph glyph-name="check" unicode="&#xe812;" d="M249 0q-34 0-56 28l-180 236q-16 24-12 52t26 46 51 14 47-28l118-154 296 474q16 24 43 30t53-8q24-16 30-43t-8-53l-350-560q-20-32-56-32z" horiz-adv-x="667" />
+
+<glyph glyph-name="cancel" unicode="&#xe813;" d="M452 194q18-18 18-43t-18-43q-18-16-43-16t-43 16l-132 152-132-152q-18-16-43-16t-43 16q-16 18-16 43t16 43l138 156-138 158q-16 18-16 43t16 43q18 16 43 16t43-16l132-152 132 152q18 16 43 16t43-16q18-18 18-43t-18-43l-138-158z" horiz-adv-x="470" />
+
+<glyph glyph-name="cancel-circled" unicode="&#xe814;" d="M420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m86-420l154 154-86 86-154-152-152 152-88-86 154-154-154-152 88-86 152 152 154-152 86 86z" horiz-adv-x="840" />
+
+<glyph glyph-name="cancel-squared" unicode="&#xe815;" d="M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-146-638l86 86-154 152 154 154-86 86-154-152-152 152-88-86 154-154-154-152 88-86 152 152z" horiz-adv-x="800" />
+
+<glyph glyph-name="plus" unicode="&#xe816;" d="M550 400q30 0 30-50t-30-50l-210 0 0-210q0-30-50-30t-50 30l0 210-210 0q-30 0-30 50t30 50l210 0 0 210q0 30 50 30t50-30l0-210 210 0z" horiz-adv-x="580" />
+
+<glyph glyph-name="plus-circled" unicode="&#xe817;" d="M420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m52-470l200 0 0 102-200 0 0 202-102 0 0-202-202 0 0-102 202 0 0-202 102 0 0 202z" horiz-adv-x="840" />
+
+<glyph glyph-name="plus-squared" unicode="&#xe818;" d="M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-50-450l0 100-200 0 0 200-100 0 0-200-200 0 0-100 200 0 0-200 100 0 0 200 200 0z" horiz-adv-x="800" />
+
+<glyph glyph-name="minus" unicode="&#xe819;" d="M550 400q30 0 30-50t-30-50l-520 0q-30 0-30 50t30 50l520 0z" horiz-adv-x="580" />
+
+<glyph glyph-name="minus-circled" unicode="&#xe81a;" d="M420 770q174 0 297-123t123-297-123-297-297-123-297 123-123 297 123 297 297 123z m252-368l-504 0 0-102 504 0 0 102z" horiz-adv-x="840" />
+
+<glyph glyph-name="minus-squared" unicode="&#xe81b;" d="M700 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l600 0z m-50-450l0 100-500 0 0-100 500 0z" horiz-adv-x="800" />
+
+<glyph glyph-name="help" unicode="&#xe81c;" d="M494 740q86-62 86-184 0-64-42-124-12-20-88-80l-46-30q-40-34-48-60-6-16-8-44 0-14-16-14l-128 0q-16 0-16 12 4 98 28 124 16 22 48 48t56 42l24 14q22 16 34 34 28 44 28 70 0 40-26 78-28 36-92 36-68 0-94-44-28-42-28-92l-166 0q6 162 114 232 70 42 166 42 130 0 214-60z m-216-636q44 0 73-30t27-74q-2-46-32-73t-74-25q-44 0-73 29t-27 75 32 73 74 25z" horiz-adv-x="580" />
+
+<glyph glyph-name="help-circled" unicode="&#xe81d;" d="M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m-2-740q30 0 49 19t19 47q2 30-17 49t-49 19l-2 0q-28 0-47-18t-21-46q0-30 19-49t47-21l2 0z m166 328q26 34 26 78 0 78-54 116-52 38-134 38-64 0-104-26-68-42-72-146l0-4 110 0 0 4q0 26 16 54 16 24 54 24 40 0 52-20 16-20 16-44 0-18-16-40-8-12-20-20l-6-4q-6-4-16-11t-20-15-21-17-17-17q-14-20-18-78l0-8 108 0 0 4q0 12 4 28 6 20 28 36l28 18q46 34 56 50z" horiz-adv-x="920" />
+
+<glyph glyph-name="info" unicode="&#xe81e;" d="M352 850q48 0 74-27t26-69q0-50-39-88t-95-38q-48 0-74 26t-24 72q0 46 35 85t97 39z m-206-1000q-100 0-54 178l60 254q14 56 0 56-12 0-54-18t-72-38l-26 44q90 78 189 126t151 48q78 0 36-162l-70-266q-16-64 6-64 44 0 118 60l30-40q-84-86-175-132t-139-46z" horiz-adv-x="460" />
+
+<glyph glyph-name="info-circled" unicode="&#xe81f;" d="M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m52-152q-42 0-65-24t-23-50q-2-28 15-44t49-16q38 0 61 22t23 54q0 58-60 58z m-120-594q30 0 84 26t106 78l-18 24q-48-36-72-36-14 0-4 38l42 160q26 96-22 96-30 0-89-29t-115-75l16-26q52 34 74 34 12 0 0-34l-36-152q-26-104 34-104z" horiz-adv-x="920" />
+
+<glyph glyph-name="back" unicode="&#xe820;" d="M750 540q40 0 70-29t30-71l0-290q0-40-30-70t-70-30l-690 0 0 140 650 0 0 210-500 0 0-110-210 180 210 180 0-110 540 0z" horiz-adv-x="850" />
+
+<glyph glyph-name="home" unicode="&#xe821;" d="M888 336q16-16 11-27t-27-11l-84 0 0-310q0-14-1-21t-8-13-23-6l-204 0 0 310-204 0 0-310-194 0q-28 0-35 10t-7 30l0 310-84 0q-22 0-27 11t11 27l400 402q16 16 38 16t38-16z" horiz-adv-x="900" />
+
+<glyph glyph-name="link" unicode="&#xe822;" d="M294 116q14 14 34 14t36-14q32-34 0-70l-42-40q-56-56-132-56-78 0-134 56t-56 132q0 78 56 134l148 148q70 68 144 77t128-43q16-16 16-36t-16-36q-36-32-70 0-50 48-132-34l-148-146q-26-26-26-64t26-62q26-26 63-26t63 26z m450 574q56-56 56-132 0-78-56-134l-158-158q-74-72-150-72-62 0-112 50-14 14-14 34t14 36q14 14 35 14t35-14q50-48 122 24l158 156q28 28 28 64 0 38-28 62-24 26-56 31t-60-21l-50-50q-16-14-36-14t-34 14q-34 34 0 70l50 50q54 54 127 51t129-61z" horiz-adv-x="800" />
+
+<glyph glyph-name="attach" unicode="&#xe823;" d="M244-140q-102 0-170 72-72 70-74 166t84 190l496 496q80 80 174 54 44-12 79-47t47-79q26-96-54-176l-474-474q-40-40-88-46-48-4-80 28-30 24-27 74t47 92l332 334q24 26 50 0t0-50l-332-332q-44-44-20-70 12-8 24-6 24 4 46 26l474 474q50 50 34 108-16 60-76 76-54 14-108-36l-494-494q-66-76-64-143t52-117q50-48 117-50t141 62l496 494q24 24 50 0 26-22 0-48l-496-496q-82-82-186-82z" horiz-adv-x="939" />
+
+<glyph glyph-name="lock" unicode="&#xe824;" d="M640 476q20 0 40-19t20-41l0-390q0-48-48-66l-60-18q-42-16-96-16l-290 0q-56 0-98 16l-60 18q-48 18-48 66l0 390q0 22 15 41t35 19l100 0 0 70q0 110 51 170t149 60 149-60 51-170l0-70 90 0z m-390 90l0-90 200 0 0 90q0 52-27 81t-73 29-73-29-27-81z" horiz-adv-x="700" />
+
+<glyph glyph-name="lock-open" unicode="&#xe825;" d="M640 450q20 0 40-20t20-40l0-390q0-20-14-39t-34-25l-60-20q-52-16-96-16l-290 0q-46 0-98 16l-60 20q-20 6-34 25t-14 39l0 390q0 22 15 41t35 19l400 0 0 140q0 110-100 110t-100-110l0-40-100 0 0 20q0 110 51 170t149 60q200 0 200-230l0-120 90 0z" horiz-adv-x="700" />
+
+<glyph glyph-name="eye" unicode="&#xe826;" d="M500 630q92 0 177-25t141-62 99-77 63-71 20-45-20-44-63-71-99-78-141-62-177-25-177 25-141 62-99 78-63 71-20 44 20 45 63 71 99 77 141 62 177 25z m0-494q92 0 157 63t65 151q0 90-65 153t-157 63-157-63-65-153q0-88 65-151t157-63z m0 214q8-8 37-2t50 11 25-9q0-44-33-75t-79-31-78 31-32 75q0 46 32 77t78 31q14 0 10-23t-12-47 2-38z" horiz-adv-x="1000" />
+
+<glyph glyph-name="tag" unicode="&#xe827;" d="M944 830q36-106-8-199t-128-157l18-24q16-28 6-54l-48-158q-12-30-36-46l-464-328q-42-30-64 4l-210 304q-12 18-9 39t21 33l464 328q26 18 54 18l158 0q30 0 48-26l28-40q168 130 114 286-10 28 18 40 32 8 38-20z m-216-468q40 32 34 80l-32-16q-8-4-12-4-18 0-28 18-12 30 16 40l24 14q-48 34-92 0-28-18-34-51t14-61q18-26 51-32t59 12z" horiz-adv-x="960" />
+
+<glyph glyph-name="bookmark" unicode="&#xe828;" d="M310 800q22 0 36-15t14-35l0-850-180 180-180-180 0 850q0 50 40 50l270 0z" horiz-adv-x="360" />
+
+<glyph glyph-name="bookmarks" unicode="&#xe829;" d="M500 850q20 0 35-15t15-35l0-850-150 180 0 620q0 20-15 35t-35 15l-100 0q0 50 40 50l210 0z m-250-150q20 0 35-15t15-35l0-800-150 180-150-180 0 800q0 50 40 50l210 0z" horiz-adv-x="550" />
+
+<glyph glyph-name="flag" unicode="&#xe82a;" d="M874 616q14 6 22-1t0-19q-96-138-164-213t-110-90-73-2-60 37-63 40-93-4-139-86l90-352-100 0-184 720 92 34q90 66 152 86t98 3 64-51 62-71 79-62 129-20 198 51z" horiz-adv-x="900" />
+
+<glyph glyph-name="thumbs-up" unicode="&#xe82b;" d="M582 480q2-6 58-13t108-24 52-47q0-72-61-284t-107-212q-144 0-288 42t-144 88l0 342q0 14 15 34t46 45 53 41 62 43 46 31q50 34 104 100t85 104 41 26q48-76 29-137t-59-119-40-60z m-432-4q14 0 0-14-50-50-50-104l0-318q0-50 52-104 10-10-2-10-26 0-55 8t-62 45-33 99l0 242q0 62 33 100t63 47 54 9z" horiz-adv-x="800" />
+
+<glyph glyph-name="thumbs-down" unicode="&#xe82c;" d="M218 218q-2 6-57 13t-108 24-53 47q0 72 62 285t106 213q144 0 288-43t144-89l0-342q0-10-8-24t-25-30-32-29-42-32-41-29-41-28l-33-22q-50-34-104-100t-85-104-41-26q-48 76-29 137t59 119 40 60z m432 4q-12 0 2 14 48 50 48 104l0 318q0 50-52 104-10 10 2 10 26 0 55-8t62-45 33-99l0-242q0-48-18-81t-45-48-48-21-39-6z" horiz-adv-x="800" />
+
+<glyph glyph-name="download" unicode="&#xe82d;" d="M968 198q18-10 27-32t3-40l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-10 48 32 72l158 108 98 0-170-130 178 0q8 0 12-8l40-110 300 0 40 110q8 8 12 8l178 0-170 130 98 0z m-208 322l-260-244-260 244 166 0 0 256 190 0 0-256 164 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="upload" unicode="&#xe82e;" d="M500 776l260-244-164 0 0-256-190 0 0 256-166 0z m468-578q18-10 27-32t3-40l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-10 48 32 72l158 108 98 0-170-130 178 0q8 0 12-8l40-110 300 0 40 110q8 8 12 8l178 0-170 130 98 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="upload-cloud" unicode="&#xe82f;" d="M760 494q100 0 170-68t70-166-70-166-170-68l-190 0 0 190 106 0-176 230-174-230 104 0 0-190-248 0q-74 0-128 52t-54 124q0 74 53 126t129 52q14 0 20-2-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z" horiz-adv-x="1000" />
+
+<glyph glyph-name="reply" unicode="&#xe830;" d="M900 10q-86 152-208 197t-330 45l0-218-362 334 362 322 0-192q90 0 168-27t131-70 96-95 69-104 44-95 24-69z" horiz-adv-x="900" />
+
+<glyph glyph-name="reply-all" unicode="&#xe831;" d="M362 556l-212-188 212-196 0-138-362 334 362 322 0-134z m250-58q104 0 182-50t115-122 60-144 27-122l4-50q-86 154-168 198t-220 44l0-218-362 334 362 322 0-192z" horiz-adv-x="1000" />
+
+<glyph glyph-name="forward" unicode="&#xe832;" d="M540 252q-210 0-332-45t-208-197q4 20 13 53t50 117 96 148 156 117 225 53l0 192 360-322-360-334 0 218z" horiz-adv-x="900" />
+
+<glyph glyph-name="quote" unicode="&#xe833;" d="M146 680q146 0 184-146 38-140-40-302-80-168-224-204-32-8-66-8l0 70q112 0 182 108 54 86 26 146-16 36-62 36-60 0-103 44t-43 106 43 106 103 44z m420 0q146 0 184-146 38-140-40-302-80-168-224-204-32-8-66-8l0 70q112 0 182 108 54 86 26 146-16 36-62 36-60 0-103 44t-43 106 43 106 103 44z" horiz-adv-x="762" />
+
+<glyph glyph-name="code" unicode="&#xe834;" d="M380 636q16-14 16-32t-16-30l-246-224 246-226q16-12 16-30t-16-32q-30-30-60 0l-320 288 320 286q30 30 60 0z m302 0l318-286-318-288q-32-30-62 0-32 32 0 62l248 226-248 224q-32 30 0 62 30 30 62 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="export" unicode="&#xe835;" d="M750 60l0 56 100 82 0-188q0-20-15-35t-35-15l-750 0q-20 0-35 15t-15 35l0 550q0 22 14 36t36 14l288 0q-32-24-59-49t-39-39l-10-12-130 0 0-450 650 0z m-82 348q-166 0-242-41t-160-181q0 8 1 22t9 56 22 79 44 83 70 79 107 56 149 23l0 156 332-250-332-260 0 178z" horiz-adv-x="1000" />
+
+<glyph glyph-name="pencil" unicode="&#xe836;" d="M718 680q32-32 47-64t15-48l0-16-252-252-290-288-238-52 50 240 290 288 252 252q54 12 126-60z m-494-640l24 24q-2 44-52 94-22 22-45 35t-35 13l-14 2-22-24-18-80q28-16 46-34 24-24 36-48z" horiz-adv-x="780" />
+
+<glyph glyph-name="feather" unicode="&#xe837;" d="M60-138q-6-20-26-8-18 8-16 34 4 100 50 226-100 154-52 316 10-32 32-78t44-80 32-30q8 4 0 83t-11 166 25 157q22 44 80 94t104 70q-24-46-33-94t-4-78 21-32q12 0 84 120t106 122q46 4 114-29t82-65q12-24 0-79t-40-83q-44-44-146-62t-114-24q-16-10 12-34 54-48 176-20-56-80-136-114t-132-38-54-10q-4-24 49-54t101-14q-30-56-63-84t-54-35-76-11-85-8z" horiz-adv-x="698" />
+
+<glyph glyph-name="print" unicode="&#xe838;" d="M66 526q-26 0-22 22 4 10 12 14 2 0 49 17t93 32 58 15l44 0 0 150 380 0 0-150 46 0q12 0 57-15t92-32 49-17q18-8 12-26-4-10-20-10l-850 0z m860-56q20 0 37-19t17-41l0-174q0-22-17-41t-37-19l-100 0 44-250-760 0 44 250-98 0q-20 0-38 19t-18 41l0 174q0 22 18 41t38 19l870 0z m-716-444l560 0-70 324-420 0z" horiz-adv-x="980" />
+
+<glyph glyph-name="retweet" unicode="&#xe839;" d="M250 190l272 0 128-140-448 0q-42 0-71 30t-29 70l0 302-102 0 176 198 174-198-100 0 0-262z m650 60l100 0-174-200-176 200 102 0 0 260-274 0-128 140 450 0q40 0 70-29t30-71l0-300z" horiz-adv-x="1000" />
+
+<glyph glyph-name="keyboard" unicode="&#xe83a;" d="M930 650q28 0 49-21t21-49l0-460q0-30-21-50t-49-20l-860 0q-28 0-49 20t-21 50l0 460q0 28 21 49t49 21l860 0z m-380-100l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-300 150l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-300 150l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-300 150l0-100 100 0 0 100-100 0z m150-150l-100 0 0-100 100 0 0 100z m-50-250l0 100-100 0 0-100 100 0z m550 0l0 100-500 0 0-100 500 0z m150 0l0 100-100 0 0-100 100 0z m-150 150l100 0 0 100-100 0 0-100z m150 150l0 100-200 0 0-100 200 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="comment" unicode="&#xe83b;" d="M700 700q42 0 71-29t29-71l0-350q0-40-29-70t-71-30l-200 0 0-150-200 150-200 0q-40 0-70 30t-30 70l0 350q0 42 30 71t70 29l600 0z" horiz-adv-x="800" />
+
+<glyph glyph-name="chat" unicode="&#xe83c;" d="M290 240l350 0q2 0 6 2l4 0 0-92q0-40-29-70t-71-30l-250 0-150-150 0 150-50 0q-40 0-70 30t-30 70l0 300q0 42 30 71t70 29l190 0 0-310z m610 560q42 0 71-29t29-71l0-300q0-40-29-70t-71-30l-50 0 0-150-150 150-350 0 0 400q0 42 30 71t70 29l450 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="bell" unicode="&#xe83d;" d="M632 426q16-34 40-52t45-22 44-23 35-55q22-62-74-161t-252-157q-164-58-297-45t-155 75q-20 54 12 111t18 111q-56 192-47 300t113 192q26 22 29 51t29 39q24 8 46-12t56-18q132 2 198-66t160-268z m-186-404q88 32 159 85t100 91 25 50q-8 22-49 33t-124 1-187-48q-102-38-173-87t-94-84-17-53q4-12 50-22t134-4 176 38z m-62 174q8 2 21 7t17 7l2-2q14-40-17-83t-89-63q-96-36-152 14 78 68 218 120z" horiz-adv-x="800" />
+
+<glyph glyph-name="attention" unicode="&#xe83e;" d="M957-24q10-16 0-34-10-16-30-16l-892 0q-18 0-28 16-13 18-2 34l446 782q8 18 30 18t30-18z m-420 50l0 100-110 0 0-100 110 0z m0 174l0 300-110 0 0-300 110 0z" horiz-adv-x="962" />
+
+<glyph glyph-name="alert" unicode="&#xe83f;" d="M885 234q20-16 16-33t-28-23l-78-22q-24-6-40-28t-14-48l4-82q2-24-14-34t-38 0l-86 44q-22 12-47 4t-35-30l-46-88q-12-22-29-23t-33 19l-50 78q-34 48-88 20l-122-70q-22-14-32-6t-2 32l54 164q8 24-4 44t-36 22l-106 12q-24 4-29 18t15 30l86 76q20 16 20 41t-20 41l-86 76q-20 16-16 33t28 23l78 22q24 6 41 28t15 48l-6 82q0 26 15 36t37 0l80-38q24-10 49-2t37 30l46 80q12 22 30 21t30-23l50-86q12-22 35-29t45 7l136 84q22 14 30 6t0-32l-60-170q-10-22 2-41t38-21l114-12q26-2 30-16t-16-30l-86-76q-18-16-18-41t18-41z m-384-92l0 104-100 0 0-104 100 0z m0 160l0 260-100 0 0-260 100 0z" horiz-adv-x="901" />
+
+<glyph glyph-name="vcard" unicode="&#xe840;" d="M900 750q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-800 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l800 0z m0-700l0 600-800 0 0-600 800 0z m-450 196l0-90-250 0 0 90 250 0z m0 150l0-90-250 0 0 90 250 0z m0 150l0-90-250 0 0 90 250 0z m346-320l4-70-250 0q0 70 6 70 84 22 84 66 0 16-27 56t-27 88q0 110 90 110t90-110q0-48-28-88t-28-56q0-20 21-36t43-22z" horiz-adv-x="1000" />
+
+<glyph glyph-name="address" unicode="&#xe841;" d="M426 800q20 0 20-20l0-860q0-20-20-20l-46 0q-20 0-20 20l0 440-176 0q-16 0-28 6-12 2-26 12l-120 82q-10 6-10 16t10 16l120 82q14 10 26 12 8 4 28 4l176 0 0 190q0 20 20 20l46 0z m564-208q10-6 10-16t-10-16l-118-82q-22-12-26-12-14-6-28-6l-302 0-40 230 342 0q18 0 28-4t26-12z" horiz-adv-x="1000" />
+
+<glyph glyph-name="location" unicode="&#xe842;" d="M250 750q104 0 177-73t73-177q0-106-62-243t-126-223l-62-84q-10 12-27 35t-60 89-76 130-60 147-27 149q0 104 73 177t177 73z m0-388q56 0 96 40t40 96-40 95-96 39-95-39-39-95 39-96 95-40z" horiz-adv-x="500" />
+
+<glyph glyph-name="map" unicode="&#xe843;" d="M984 600q16-10 16-30l0-584q0-20-16-30-8-6-16-6t-18 6l-216 136-216-136q-18-10-34 0l-218 136-216-136q-16-10-34 0-16 10-16 30l0 584q0 20 16 30l234 146q18 10 34 0l216-136 218 136q16 10 32 0z m-750-450l0 506-168-104 0-506z m234-104l0 506-168 104 0-506z m234 104l0 506-170-104 0-506z m232-104l0 506-168 104 0-506z" horiz-adv-x="1000" />
+
+<glyph glyph-name="direction" unicode="&#xe844;" d="M848 768q8-8 11-16t-2-22-10-26-19-39-24-49q-54-112-147-286t-157-292l-66-118-54 380-380 56q442 246 696 368 20 10 48 25t39 20 25 9 23 1 17-11z m-92-96l-304-280 28-234z" horiz-adv-x="860" />
+
+<glyph glyph-name="compass" unicode="&#xe845;" d="M474 830q198 2 340-136t146-336q2-200-136-342t-338-146q-198-2-341 137t-145 337q-4 200 135 342t339 144z m12-858q156 2 266 114t108 270-115 267-269 107q-158-2-267-114t-107-270 114-267 270-107z m-234 154q4 26 12 66t41 128 77 132 125 76 141 42l60 10q-4-26-12-66t-41-128-77-132q-42-42-124-74t-142-42z m180 276q-22-20-22-48t22-50q20-22 49-22t49 22q52 52 88 186-136-36-186-88z" horiz-adv-x="960" />
+
+<glyph glyph-name="cup" unicode="&#xe846;" d="M340 760q152 0 249-41t91-87l-72-594q-2-14-34-36t-97-42-137-20-136 20-97 42-35 36l-72 594q-4 28 36 57t121 50 183 21z m0-216q72 0 137 15t98 33 33 30-33 29-98 32-137 15-137-15-98-32-33-29 33-30 98-33 137-15z" horiz-adv-x="681" />
+
+<glyph glyph-name="trash" unicode="&#xe847;" d="M50 458q122-70 330-70t330 70l-54-486q-2-14-35-36t-100-43-141-21-140 21-100 43-36 36z m488 300q94-18 158-55t64-71l0-10q0-58-112-99t-268-41-268 41-112 99l0 10q0 34 64 71t158 55l42 48q22 26 70 26l92 0q52 0 70-26z m-54-112l84 0q-92 110-104 126-14 16-32 16l-102 0q-22 0-32-16l-106-126 84 0 64 66 82 0z" horiz-adv-x="760" />
+
+<glyph glyph-name="doc" unicode="&#xe848;" d="M600 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-500 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l500 0z m0-800l0 700-500 0 0-700 500 0z" horiz-adv-x="700" />
+
+<glyph glyph-name="docs" unicode="&#xe849;" d="M970 480q38-10 30-46l-150-556q-4-16-18-23t-30-3l-406 110q-16 4-24 18t-4 28l24 92-180-48q-40-10-50 26l-160 602q-10 36 28 48l454 122q16 4 30-3t18-23l66-244z m-888 190l144-542 392 106-144 540z m702-742l132 492-298 82 76-282q10-34-28-46l-196-52-26-102z" horiz-adv-x="1001" />
+
+<glyph glyph-name="doc-landscape" unicode="&#xe84a;" d="M0 600q0 42 30 71t70 29l800 0q42 0 71-29t29-71l0-500q0-40-29-70t-71-30l-800 0q-40 0-70 30t-30 70l0 500z m900 0l-800 0 0-500 800 0 0 500z" horiz-adv-x="1000" />
+
+<glyph glyph-name="doc-text" unicode="&#xe84b;" d="M212 308l0 90 280 0 0-90-280 0z m388 492q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-500 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l500 0z m0-800l0 700-500 0 0-700 500 0z m-110 592l0-88-280 0 0 88 280 0z m0-392l0-88-280 0 0 88 280 0z" horiz-adv-x="700" />
+
+<glyph glyph-name="doc-text-inv" unicode="&#xe84c;" d="M600 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-500 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l500 0z m-460-208l0-88 420 0 0 88-420 0z m420-480l0 88-420 0 0-88 420 0z m0 196l0 90-418 0 0-90 418 0z" horiz-adv-x="700" />
+
+<glyph glyph-name="newspaper" unicode="&#xe84d;" d="M700 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l600 0z m0-800l0 700-600 0 0-700 600 0z m-250 250l0-50-250 0 0 50 250 0z m150 200l0-50-200 0 0 50 200 0z m-200 50l0 100 200 0 0-100-200 0z m-50 100l0-200-150 0 0 200 150 0z m-50-250l0-50-100 0 0 50 100 0z m50-50l0 50 250 0 0-50-250 0z m250-150l0-50-400 0 0 50 400 0z m-100 50l0 50 100 0 0-50-100 0z" horiz-adv-x="800" />
+
+<glyph glyph-name="book-open" unicode="&#xe84e;" d="M340 238l0-68-200 80 0 68z m0 208l0-68-200 80 0 68z m538 346q22-12 22-42l0-640q0-34-32-46l-398-160q-8-2-10-2t-5-1-5-1-5 1-5 1l-10 2-398 160q-32 12-32 46l0 640q0 30 22 42 22 16 46 6l382-154 382 154q24 10 46-6z m-478-788l0 560-320 128 0-560z m420 128l0 560-320-128 0-560z m-60 186l0-68-200-80 0 68z m0 208l0-68-200-80 0 68z" horiz-adv-x="900" />
+
+<glyph glyph-name="book" unicode="&#xe84f;" d="M682 594q18-8 18-28l0-562q0-14-12-25t-28-11q-46 0-46 36l0 522q0 12-12 18l-404 216q-32 10-68-10-44-20-56-44l408-228q18-8 18-28l0-550q0-22-18-28-6-4-16-4-14 0-20 4-8 6-202 127t-212 131q-26 18-26 34l-6 524q0 28 14 52 28 46 102 77t116 9z" horiz-adv-x="700" />
+
+<glyph glyph-name="folder" unicode="&#xe850;" d="M954 500q32 0 40-12t6-36l-42-452q-2-24-12-37t-42-13l-806 0q-52 0-56 50l-42 452q-2 24 6 36t40 12l908 0z m-34 110l10-40-846 0 14 132q4 20 20 34t36 14l164 0q52 0 86-34l30-30q32-36 86-36l340 0q20 0 38-12t22-28z" horiz-adv-x="1001" />
+
+<glyph glyph-name="archive" unicode="&#xe851;" d="M840 600l0-50-696 0 0 50q0 22 13 35t25 15l608 0q6 0 14-1t22-14 14-35z m-148 150q6 0 14-1t22-14 14-35l-498 0q0 22 13 35t25 15l410 0z m248-200q34-32 38-46 6-18 0-54l-76-450q-4-22-20-35t-28-15l-710 0q-52 0-60 50-6 26-39 223t-39 227q-10 22-3 44t10 26 21 20l10 10 30 30 0-80 836 0 0 80z m-248-270l0 100-70 0 0-80-260 0 0 80-68 0 0-100q0-50 48-50l300 0q22 0 35 12t13 24z" horiz-adv-x="981" />
+
+<glyph glyph-name="box" unicode="&#xe852;" d="M870 750q12 0 21-9t9-21l0-120-900 0 0 120q0 12 9 21t21 9l840 0z m-820-730l0 530 800 0 0-530q0-30-21-50t-49-20l-660 0q-28 0-49 20t-21 50z m250 430l0-100 300 0 0 100-300 0z" horiz-adv-x="900" />
+
+<glyph glyph-name="rss" unicode="&#xe853;" d="M0 730q314 0 537-223t223-537l-118 0q0 266-188 453t-454 187l0 120z m0-238q218 0 371-153t153-369l-118 0q0 166-119 285t-287 119l0 118z m114-296q46 0 80-33t34-81q0-46-34-79t-80-33-80 33-34 79q0 48 34 81t80 33z" horiz-adv-x="760" />
+
+<glyph glyph-name="phone" unicode="&#xe854;" d="M461 290q162 162 118 206l-8 8q-30 30-41 48t-4 54 49 88q20 24 37 39t35 16 30 1 29-13 24-18 26-25 21-22q48-48-6-194t-204-294q-150-150-295-205t-193-7q-2 2-23 22t-25 25-18 24-13 31 2 30 15 35 38 37q42 34 70 47t54 2 35-18 39-37q44-44 208 120z" horiz-adv-x="800" />
+
+<glyph glyph-name="cog" unicode="&#xe855;" d="M760 350q0-72 80-122-12-40-34-82-70 18-136-44-54-58-34-136-40-20-84-36-46 82-132 82t-132-82q-44 16-84 36 20 80-34 136-54 54-136 34-14 26-34 82 82 52 82 132 0 72-82 124 20 56 34 82 74-18 136 44 54 56 34 136 42 22 84 34 46-80 132-80t132 80q42-12 84-34-20-78 34-136 66-62 136-44 22-42 34-82-80-50-80-124z m-340-182q76 0 129 53t53 129-53 130-129 54-129-54-53-130 53-129 129-53z" horiz-adv-x="840" />
+
+<glyph glyph-name="tools" unicode="&#xe856;" d="M155 506q-8-8-11-22t-3-25-2-11q-2-2-17-15t-19-17q-16-14-28 4l-70 76q-11 12 2 24 2 2 18 14t20 16q6 6 27 6t37 14q14 14 18 38t10 30q2 0 9 7t26 22 41 31q134 90 186 96 122 0 148-2 12 0-8-8-120-52-152-76-80-56-36-114 34-46 38-48 8-8-2-14-2-2-38-35t-38-35q-14-8-18-4-42 48-71 60t-67-12z m286-26l410-476q18-22-2-38l-48-42q-22-14-38 4l-414 472q-8 8 0 20l72 62q12 8 20-2z m554 202q16-104-16-166-50-88-154-62-56 12-100-32l-82-78-68 78 68 70q24 24 31 53t6 65 5 58q12 56 140 112 12 6 18-3t2-15q-12-12-46-80-14-10-12-35t40-53q58-40 96 22 6 12 26 41t22 33q4 10 13 9t11-17z m-858-684l254 248 76-86-246-242q-20-20-38-4l-46 46q-22 18 0 38z" horiz-adv-x="1000" />
+
+<glyph glyph-name="share" unicode="&#xe857;" d="M650 200q62 0 106-43t44-107q0-62-44-106t-106-44-106 44-44 106q0 6 1 14t1 12l-260 156q-42-32-92-32-62 0-106 44t-44 106 44 106 106 44q54 0 92-30l260 156q0 4-1 12t-1 12q0 62 44 106t106 44 106-43 44-107q0-62-44-106t-106-44q-52 0-90 32l-262-156q2-8 2-26 0-16-2-24l262-156q36 30 90 30z" horiz-adv-x="800" />
+
+<glyph glyph-name="shareable" unicode="&#xe858;" d="M340 350q0 68 47 114t113 46 113-46 47-114q0-66-47-113t-113-47-113 47-47 113z m-114 60q-14-60-66-60l-160 0 0 120 118 0q40 124 145 202t237 78q164 0 284-116 16-18 16-43t-16-43q-18-16-43-16t-43 16q-78 82-198 82-100 0-176-62t-98-158z m614-60l160 0 0-120-118 0q-40-124-144-202t-238-78q-164 0-282 118-18 18-18 43t18 41q16 18 41 18t43-18q82-82 198-82 100 0 176 63t98 157q12 60 66 60z" horiz-adv-x="1000" />
+
+<glyph glyph-name="basket" unicode="&#xe859;" d="M150 0q0 40 30 70t70 30q42 0 71-30t29-70q0-42-29-71t-71-29q-40 0-70 29t-30 71z m500 0q0 40 30 70t70 30q42 0 71-30t29-70q0-42-29-71t-71-29q-40 0-70 29t-30 71z m-322 236q-36-10-34-23t44-13l562 0 0-76q0-20-20-20l-654 0q-20 0-20 20l0 76-10 46-98 454-98 0 0 80q0 20 20 20l156 0q20 0 20-20l0-86 704 0 0-274q0-22-18-26z" horiz-adv-x="900" />
+
+<glyph glyph-name="bag" unicode="&#xe85a;" d="M835 668q28-26 24-60l-98-648q-8-30-38-30l-586 0q-28 0-40 30-94 620-96 648-5 34 22 60 6 6 54 43t56 43q18 16 56 16l480 0q38 0 56-16 78-58 110-86z m-406-436q56 0 98 34t63 89 30 89 13 66l-92 0q-38-188-112-188t-112 188l-92 0q46-278 204-278z m-352 368l704 0-110 116-484 0z" horiz-adv-x="859" />
+
+<glyph glyph-name="calendar" unicode="&#xe85b;" d="M800 700q42 0 71-29t29-71l0-600q0-40-29-70t-71-30l-700 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l46 0 0-100 160 0 0 100 290 0 0-100 160 0 0 100 44 0z m0-700l0 400-700 0 0-400 700 0z m-540 800l0-170-70 0 0 170 70 0z m450 0l0-170-70 0 0 170 70 0z" horiz-adv-x="900" />
+
+<glyph glyph-name="login" unicode="&#xe85c;" d="M800 800q42 0 71-29t29-71l0-700q0-40-29-70t-71-30l-450 0q-40 0-69 30t-29 70l0 100 98 0 0-100 450 0 0 700-450 0 0-150-98 0 0 150q0 42 29 71t69 29l450 0z m-350-670l0 120-450 0 0 150 450 0 0 120 200-194z" horiz-adv-x="900" />
+
+<glyph glyph-name="logout" unicode="&#xe85d;" d="M502 0l0 100 98 0 0-100q0-40-29-70t-71-30l-400 0q-40 0-70 30t-30 70l0 700q0 42 30 71t70 29l400 0q42 0 71-29t29-71l0-150-98 0 0 150-402 0 0-700 402 0z m398 326l-198-196 0 120-450 0 0 150 450 0 0 120z" horiz-adv-x="900" />
+
+<glyph glyph-name="mic" unicode="&#xe85e;" d="M620 488q20 0 20-20l0-138q0-92-69-164t-201-84l0-132 130 0q20 0 20-20l0-60q0-20-20-20l-360 0q-20 0-20 20l0 60q0 20 20 20l130 0 0 132q-132 12-201 84t-69 164l0 138q0 20 20 20l30 0q20 0 20-20l0-138q0-66 59-123t191-57 191 57 59 123l0 138q0 20 20 20l30 0z m-300-238q-80 0-115 25t-35 55l0 158 300 0 0-158q0-30-35-55t-115-25z m150 520l0-212-300 0 0 212q0 30 35 55t115 25 115-25 35-55z" horiz-adv-x="640" />
+
+<glyph glyph-name="mute" unicode="&#xe85f;" d="M868 778q16-16 16-36t-16-36l-782-782q-18-14-34-14-18 0-36 14-16 14-16 36t16 36l782 782q34 32 70 0z m-216-386l50 50q74-92 101-172t-7-116q-24-24-75-57t-131-71-161-45-165 23l278 276q44-32 88-54t67-25 33 1q6 10 2 34t-26 68-54 88z m-276 62l-270-270q-40 132 28 283t132 215q34 32 105 11t159-85l-52-50q-58 38-105 53t-57 5q-4-8-2-28t19-58 43-76z" horiz-adv-x="884" />
+
+<glyph glyph-name="sound" unicode="&#xe860;" d="M176 588q42 42 149-5t217-157 157-217 5-149q-28-28-92-67t-156-78-194-29-176 84-84 176 29 194 78 156 67 92z m464-480q8 10-3 49t-49 101-96 118q-56 58-118 96t-101 49-49 3q-8-10 3-49t49-101 94-120q58-56 120-94t101-49 49-3z m6 394q-18 0-34 16-16 14-16 35t16 35l94 96q36 32 72 0 32-36 0-72l-96-94q-16-16-36-16z m-180 124q-18 10-23 30t5 38l54 96q26 44 68 20 18-10 23-30t-5-38l-54-96q-14-26-42-26-14 0-26 6z m438-150q10-18 4-38t-24-30l-96-54q-16-8-24-8-28 0-44 26-10 18-4 38t24 30l96 54q18 10 38 5t30-23z" horiz-adv-x="910" />
+
+<glyph glyph-name="volume" unicode="&#xe861;" d="M896 180q0-34-24-57t-56-23l-780 0q-22 0-31 5t-3 15 24 20l802 452q28 18 48 7t20-45l0-374z" horiz-adv-x="896" />
+
+<glyph glyph-name="clock" unicode="&#xe862;" d="M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-820q150 0 255 106t105 254q0 150-105 255t-255 105q-148 0-254-105t-106-255q0-148 106-254t254-106z m36 620l0-244 150-150-50-50-170 170 0 274 70 0z" horiz-adv-x="920" />
+
+<glyph glyph-name="hourglass" unicode="&#xe863;" d="M560 622q0-44-48-96t-97-99-49-77 49-76 97-97 48-97l0-118q0-34-86-73t-194-39-194 39-86 73l0 118q0 46 48 97t97 97 49 76-49 77-97 99-48 96l0 118q0 32 87 71t193 39 193-39 87-71l0-118z m-482 112l-18-14q-4-8 4-14 92-52 216-52 132 0 220 50 14 10-16 30-96 54-202 54-120 0-204-54z m228-384q0 18 4 33t18 33 20 25 31 31 29 28q92 92 92 122l2 50q-100-54-222-54t-222 54l4-50q0-32 90-122 6-6 22-21t23-22l19-19t17-21 11-20 9-23 3-24q0-10-1-19t-6-18-8-16-11-17l-12-15t-15-16-16-15-18-16-17-16q-90-90-90-122l0-66q8 4 66 23t92 43 34 58q0 30 26 30t26-30q0-34 33-58t94-43 67-23l0 66q0 30-92 122-4 4-21 20t-22 21-18 19-18 22-12 20-9 23-2 23z" horiz-adv-x="560" />
+
+<glyph glyph-name="lamp" unicode="&#xe864;" d="M209-110l0 104 282 0 0-104q-70-42-142-40-70-2-140 40z m276 164l-270 0q0 72-36 140t-78 113-74 112-26 139q8 120 94 206t254 86q170 0 255-86t95-206q4-60-16-113t-52-96-65-85-57-96-24-114z m-378 496q-4-4 0-20t2-20 5-19 6-18 8-18 11-19 13-19 14-19 15-21 16-23q88-122 112-212l82 0q24 94 112 212 4 6 25 35t25 36 17 29 16 33 6 28 1 35q-16 196-244 196-226 0-242-196z" horiz-adv-x="700" />
+
+<glyph glyph-name="light-down" unicode="&#xe865;" d="M350 510q68 0 114-47t46-113q0-68-46-114t-114-46q-66 0-113 46t-47 114q0 66 47 113t113 47z m0-264q44 0 73 30t29 74q0 42-29 72t-73 30q-42 0-72-30t-30-72q0-44 30-74t72-30z m-300 144q20 0 35-12t15-28q0-40-50-40t-50 40q0 16 15 28t35 12z m546 204q28-28-8-64-14-14-33-16t-29 10q-12 12-10 31t16 33q36 34 64 6z m54-204q20 0 35-12t15-28q0-40-50-40-48 0-48 40 0 16 14 28t34 12z m-300-290q16 0 28-15t12-35-12-35-28-15-28 15-12 35 12 35 28 15z m-238 62q36 36 64 8t-8-64q-14-14-33-16t-29 8q-30 28 6 64z m-10 430q28 28 64-8 14-14 16-33t-8-29q-30-28-64 6-36 36-8 64z m432-484q-34 36-6 64t64-8q14-14 16-33t-10-29q-30-28-64 6z m-184 492q-16 0-28 15t-12 35 12 35 28 15 28-15 12-35-12-35-28-15z" horiz-adv-x="700" />
+
+<glyph glyph-name="light-up" unicode="&#xe866;" d="M950 390q20 0 35-12t15-28q0-40-50-40l-48 0q-50 0-50 40 0 16 15 28t35 12l48 0z m-450 234q114 0 195-80t81-194q0-116-81-196t-195-80-194 80-80 196q0 114 80 194t194 80z m0-474q82 0 141 58t59 142q0 82-59 141t-141 59-141-59-59-141q0-84 59-142t141-58z m-350 200q0-40-50-40l-50 0q-50 0-50 40 0 16 15 28t35 12l50 0q20 0 35-12t15-28z m350 350q-16 0-28 15t-12 35l0 50q0 20 12 35t28 15 28-15 12-35l0-50q0-20-12-35t-28-15z m0-700q16 0 28-15t12-35l0-50q0-20-12-35t-28-15-28 15-12 35l0 50q0 20 12 35t28 15z m368 660l-34-34q-34-34-64-8-28 28 8 64 4 6 34 36 36 34 64 6t-8-64z m-700-588q14 16 33 18t29-10q12-12 10-31t-16-33l-36-36q-14-14-33-16t-29 10q-30 28 6 64 6 4 36 34z m20 646l36-36q36-36 6-64-10-10-29-8t-33 16q-30 30-36 34-14 14-16 33t10 31q10 12 29 10t33-16z m590-702q-36 36-8 64t64-8l34-34q36-36 8-64t-64 6q-30 30-34 36z" horiz-adv-x="1000" />
+
+<glyph glyph-name="adjust" unicode="&#xe867;" d="M950 390q20 0 35-12t15-28q0-40-50-40l-48 0q-50 0-50 40 0 16 15 28t35 12l48 0z m-450 234q114 0 195-80t81-194q0-116-81-196t-195-80-194 80-80 196q0 114 80 194t194 80z m6-474l0 400q-86 0-146-59t-60-141q0-84 60-142t146-58z m-356 200q0-40-50-40l-50 0q-50 0-50 40 0 16 15 28t35 12l50 0q20 0 35-12t15-28z m350 350q-16 0-28 15t-12 35l0 50q0 20 12 35t28 15 28-15 12-35l0-50q0-20-12-35t-28-15z m0-700q16 0 28-15t12-35l0-50q0-20-12-35t-28-15-28 15-12 35l0 50q0 20 12 35t28 15z m368 660l-34-34q-34-34-64-8-28 28 8 64 4 6 34 36 36 34 64 6t-8-64z m-700-588q14 16 33 18t29-10q12-12 10-31t-16-33l-36-36q-14-14-33-16t-29 10q-30 28 6 64 6 4 36 34z m20 646l36-36q36-36 6-64-10-10-29-8t-33 16q-30 30-36 34-14 14-16 33t10 31q10 12 29 10t33-16z m590-702q-36 36-8 64t64-8l34-34q36-36 8-64t-64 6q-30 30-34 36z" horiz-adv-x="1000" />
+
+<glyph glyph-name="block" unicode="&#xe868;" d="M480 830q200 0 340-140t140-340q0-198-140-339t-340-141q-198 0-339 141t-141 339q0 200 141 340t339 140z m258-220z m-622-260q0-132 82-230l514 514q-100 82-232 82-152 0-258-107t-106-259z m106-258z m258-106q152 0 259 107t107 257q0 130-82 232l-514-514q98-82 230-82z" horiz-adv-x="960" />
+
+<glyph glyph-name="resize-full" unicode="&#xe869;" d="M476 746l316 0 0-316-100 124-146-152-100 100 152 146z m-230-444l100-100-152-146 122-100-316 0 0 316 100-122z" horiz-adv-x="792" />
+
+<glyph glyph-name="resize-small" unicode="&#xe86a;" d="M156 146l-106 100 296 0 0-296-100 106-146-156-100 100z m744 554l-154-144 104-100-294 0 0 294 100-104 144 154z" horiz-adv-x="900" />
+
+<glyph glyph-name="popup" unicode="&#xe86b;" d="M700 750q42 0 71-29t29-71l0-400q0-40-29-70t-71-30l-400 0q-40 0-70 30t-30 70l0 402q0 40 29 69t71 29l400 0z m0-500l0 400-400 0 0-400 400 0z m-600 100l0-300 300 0 0-100-300 0q-40 0-70 30t-30 70l0 300 100 0z" horiz-adv-x="800" />
+
+<glyph glyph-name="publish" unicode="&#xe86c;" d="M900 800q42 0 71-30t29-70l0-600q0-42-29-71t-71-29l-198 0 0 98 200 0 0 462-802 0 0-462 200 0 0-98-200 0q-40 0-70 29t-30 71l0 600q0 40 30 70t70 30l800 0z m-770-168q38 0 38 38 0 16-11 26t-27 10-27-11-11-25q0-16 11-27t27-11z m100 0q38 0 38 38 0 16-11 26t-27 10-27-11-11-25q0-16 11-27t27-11z m672 6l0 62-602 0 0-62 602 0z m-404-198l242-240-150 0 0-300-184 0 0 300-150 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="window" unicode="&#xe86d;" d="M900 750q42 0 71-30t29-70l0-600q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 600q0 40 30 70t70 30l800 0z m-670-94q-16 0-27-11t-11-25q0-16 11-27t27-11q38 0 38 38 0 16-11 26t-27 10z m-138-36q0-16 11-27t27-11q38 0 38 38 0 16-11 26t-27 10-27-11-11-25z m810-570l0 460-802 0 0-460 802 0z m0 540l0 60-602 0 0-60 602 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="arrow-combo" unicode="&#xe86e;" d="M230 850l230-364-460 0z m0-1000l-230 366 460 0z" horiz-adv-x="460" />
+
+<glyph glyph-name="down-circled" unicode="&#xe86f;" d="M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-820q148 0 254 106t106 254q0 150-106 255t-254 105-254-105-106-255q0-148 106-254t254-106z m90 554l0-206 112 0-202-190-202 190 112 0 0 206 180 0z" horiz-adv-x="920" />
+
+<glyph glyph-name="left-circled" unicode="&#xe870;" d="M920 350q0-190-135-325t-325-135-325 135-135 325q0 192 135 326t325 134 325-134 135-326z m-820 0q0-148 106-254t254-106 254 106 106 254q0 150-106 255t-254 105-254-105-106-255z m552-90l-204 0 0-112-190 202 190 204 0-114 204 0 0-180z" horiz-adv-x="920" />
+
+<glyph glyph-name="right-circled" unicode="&#xe871;" d="M0 350q0 190 135 325t325 135 325-135 135-325-135-325-325-135-325 135-135 325z m820 0q0 150-105 255t-255 105q-148 0-254-105t-106-255q0-148 106-254t254-106q150 0 255 106t105 254z m-552 90l204 0 0 114 190-204-190-202 0 112-204 0 0 180z" horiz-adv-x="920" />
+
+<glyph glyph-name="up-circled" unicode="&#xe872;" d="M460-110q-190 0-325 135t-135 325q0 192 135 326t325 134 325-134 135-326q0-190-135-325t-325-135z m0 820q-148 0-254-105t-106-255q0-148 106-254t254-106q150 0 255 106t105 254q0 150-105 255t-255 105z m-90-552l0 204-112 0 202 192 202-192-112 0 0-204-180 0z" horiz-adv-x="920" />
+
+<glyph glyph-name="down-open" unicode="&#xe873;" d="M564 422l-234-224q-18-18-40-18t-40 18l-234 224q-16 16-16 41t16 41q38 38 78 0l196-188 196 188q40 38 78 0 16-16 16-41t-16-41z" horiz-adv-x="580" />
+
+<glyph glyph-name="left-open" unicode="&#xe874;" d="M242 626q14 16 39 16t41-16q38-36 0-80l-186-196 186-194q38-44 0-80-16-16-40-16t-40 16l-226 236q-16 16-16 38 0 24 16 40 206 214 226 236z" horiz-adv-x="341" />
+
+<glyph glyph-name="right-open" unicode="&#xe875;" d="M98 626l226-236q16-16 16-40 0-22-16-38l-226-236q-16-16-40-16t-40 16q-36 36 0 80l186 194-186 196q-36 44 0 80 16 16 41 16t39-16z" horiz-adv-x="340" />
+
+<glyph glyph-name="up-open" unicode="&#xe876;" d="M564 280q16-16 16-41t-16-41q-38-38-78 0l-196 188-196-188q-40-38-78 0-16 16-16 41t16 41l234 224q16 16 40 16t40-16z" horiz-adv-x="580" />
+
+<glyph glyph-name="down-open-mini" unicode="&#xe877;" d="M405 470q22 26 48 0 26-22 0-48l-196-192q-22-22-48 0l-196 192q-26 26 0 48 24 24 50 0l170-156z" horiz-adv-x="466" />
+
+<glyph glyph-name="left-open-mini" unicode="&#xe878;" d="M252 180q26-26 0-48-26-26-48 0l-192 194q-24 24 0 50l192 194q22 26 48 0 26-22 0-48l-156-172z" horiz-adv-x="265" />
+
+<glyph glyph-name="right-open-mini" unicode="&#xe879;" d="M13 180l158 170-158 172q-26 26 0 48 26 26 48 0l192-194q24-26 0-50l-192-194q-22-26-48 0-26 22 0 48z" horiz-adv-x="265" />
+
+<glyph glyph-name="up-open-mini" unicode="&#xe87a;" d="M62 230q-26-22-50 0-24 24 0 50l196 190q26 26 48 0l196-190q24-26 0-50-24-22-50 0l-170 158z" horiz-adv-x="464" />
+
+<glyph glyph-name="down-open-big" unicode="&#xe87b;" d="M63 570l370-356 372 356q22 26 48 0 26-22 0-48l-396-392q-22-22-48 0l-396 392q-26 26 0 48 24 24 50 0z" horiz-adv-x="866" />
+
+<glyph glyph-name="left-open-big" unicode="&#xe87c;" d="M452-20q26-26 0-48-26-26-48 0l-392 394q-24 24 0 50l392 394q22 26 48 0 26-22 0-48l-358-372z" horiz-adv-x="465" />
+
+<glyph glyph-name="right-open-big" unicode="&#xe87d;" d="M13-20l358 370-358 372q-26 26 0 48 26 26 48 0l392-394q24-26 0-50l-392-394q-22-26-48 0-26 22 0 48z" horiz-adv-x="465" />
+
+<glyph glyph-name="up-open-big" unicode="&#xe87e;" d="M804 130l-372 358-370-358q-26-22-50 0-24 24 0 50l396 390q26 26 48 0l396-390q24-26 0-50-26-22-48 0z" horiz-adv-x="864" />
+
+<glyph glyph-name="down" unicode="&#xe87f;" d="M660 366l-330-380-330 380 192 0 0 350 276 0 0-350 192 0z" horiz-adv-x="660" />
+
+<glyph glyph-name="left" unicode="&#xe880;" d="M378 20l-378 330 378 330 0-190 352 0 0-278-352 0 0-192z" horiz-adv-x="730" />
+
+<glyph glyph-name="right" unicode="&#xe881;" d="M350 680l380-330-380-330 0 192-350 0 0 278 350 0 0 190z" horiz-adv-x="730" />
+
+<glyph glyph-name="up" unicode="&#xe882;" d="M660 336l-192 0 0-350-276 0 0 350-192 0 330 380z" horiz-adv-x="660" />
+
+<glyph glyph-name="down-dir" unicode="&#xe883;" d="M460 550l-230-400-230 400 460 0z" horiz-adv-x="460" />
+
+<glyph glyph-name="left-dir" unicode="&#xe884;" d="M400 580l0-460-400 230z" horiz-adv-x="400" />
+
+<glyph glyph-name="right-dir" unicode="&#xe885;" d="M0 580l400-230-400-230 0 460z" horiz-adv-x="400" />
+
+<glyph glyph-name="up-dir" unicode="&#xe886;" d="M0 150l230 400 230-400-460 0z" horiz-adv-x="460" />
+
+<glyph glyph-name="down-bold" unicode="&#xe887;" d="M760 366l-380-380-380 380 192 0 0 350 376 0 0-350 192 0z" horiz-adv-x="760" />
+
+<glyph glyph-name="left-bold" unicode="&#xe888;" d="M378 730l0-190 352 0 0-378-352 0 0-192-378 380z" horiz-adv-x="730" />
+
+<glyph glyph-name="right-bold" unicode="&#xe889;" d="M350 730l380-380-380-380 0 192-350 0 0 378 350 0 0 190z" horiz-adv-x="730" />
+
+<glyph glyph-name="up-bold" unicode="&#xe88a;" d="M760 336l-192 0 0-350-376 0 0 350-192 0 380 380z" horiz-adv-x="760" />
+
+<glyph glyph-name="down-thin" unicode="&#xe88b;" d="M500 100l-250-240-250 240 162 0 0 740 176 0 0-740 162 0z" horiz-adv-x="500" />
+
+<glyph glyph-name="left-thin" unicode="&#xe88c;" d="M240 100l-240 250 240 250 0-160 740 0 0-178-740 0 0-162z" horiz-adv-x="980" />
+
+<glyph glyph-name="right-thin" unicode="&#xe88d;" d="M742 100l0 162-742 0 0 178 742 0 0 160 238-250z" horiz-adv-x="980" />
+
+<glyph glyph-name="up-thin" unicode="&#xe88e;" d="M500 602l-162 0 0-742-176 0 0 742-162 0 250 238z" horiz-adv-x="500" />
+
+<glyph glyph-name="ccw" unicode="&#xe88f;" d="M532 736q170 0 289-120t119-290-119-290-289-120q-142 0-252 88l70 74q84-60 182-60 126 0 216 90t90 218-90 218-216 90q-124 0-214-87t-92-211l142 0-184-204-184 204 124 0q2 166 122 283t286 117z" horiz-adv-x="940" />
+
+<glyph glyph-name="cw" unicode="&#xe890;" d="M408 760q168 0 287-116t123-282l122 0-184-206-184 206 144 0q-4 124-94 210t-214 86q-126 0-216-90t-90-218q0-126 90-216t216-90q104 0 182 60l70-76q-110-88-252-88-168 0-288 120t-120 290 120 290 288 120z" horiz-adv-x="940" />
+
+<glyph glyph-name="arrows-ccw" unicode="&#xe891;" d="M186 140l116 116 0-292-276 16 88 86q-116 122-114 290t120 288q100 100 240 116l4-102q-100-16-172-88-88-88-90-213t84-217z m332 598l276-16-88-86q116-122 114-290t-120-288q-96-98-240-118l-2 104q98 16 170 88 88 88 90 213t-84 217l-114-116z" horiz-adv-x="820" />
+
+<glyph glyph-name="level-down" unicode="&#xe892;" d="M100 200q-42 0-71 30t-29 70l0 350 140 0 0-310 364 0 0 150 240-220-240-220 0 150-404 0z" horiz-adv-x="744" />
+
+<glyph glyph-name="level-up" unicode="&#xe893;" d="M200 350l0-90-200 160 200 170 0-100 550 0q40 0 70-29t30-71l0-280-140 0 0 240-510 0z" horiz-adv-x="850" />
+
+<glyph glyph-name="shuffle" unicode="&#xe894;" d="M754 516q-54 0-105-32t-80-66-83-104q-48-62-75-94t-78-77-107-66-122-21l-104 0 0 140 104 0q54 0 106 32t81 66 83 104q62 82 101 126t116 88 163 44l36 0 0 120 210-180-210-180 0 100-36 0z m-484-88q-74 78-166 78l-104 0 0 140 104 0q140 0 254-108-14-16-37-45t-27-33q-8-12-24-32z m520-242l0 100 210-180-210-180 0 120-36 0q-140 0-260 116 46 58 72 92 0 2 6 9t8 11q84-88 174-88l36 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="loop" unicode="&#xe895;" d="M800 540q42 0 71-29t29-71l0-290q0-40-29-70t-71-30l-700 0q-40 0-70 30t-30 70l0 290q0 42 30 71t70 29l250 0 0 110 200-180-200-180 0 110-210 0 0-210 620 0 0 210-150 0 0 140 190 0z" horiz-adv-x="900" />
+
+<glyph glyph-name="switch" unicode="&#xe896;" d="M700 592l0-140-500 0 0-90-200 160 200 170 0-100 500 0z m300-420l-200-160 0 90-500 0 0 140 500 0 0 100z" horiz-adv-x="1000" />
+
+<glyph glyph-name="play" unicode="&#xe897;" d="M486 376q14-10 14-26 0-14-14-24l-428-266q-24-16-41-6t-17 40l0 514q0 30 17 40t41-6z" horiz-adv-x="500" />
+
+<glyph glyph-name="stop" unicode="&#xe898;" d="M526 650q74 0 74-64l0-470q0-66-74-66l-450 0q-76 0-76 66l0 470q0 36 18 50t58 14l450 0z" horiz-adv-x="600" />
+
+<glyph glyph-name="pause" unicode="&#xe899;" d="M440 700q90 0 90-64l0-570q0-66-90-66t-90 66l0 570q0 64 90 64z m-350 0q90 0 90-64l0-570q0-66-90-66t-90 66l0 570q0 64 90 64z" horiz-adv-x="530" />
+
+<glyph glyph-name="record" unicode="&#xe89a;" d="M350 700q146 0 248-102t102-248q0-144-102-247t-248-103-248 103-102 247q0 146 102 248t248 102z" horiz-adv-x="700" />
+
+<glyph glyph-name="to-end" unicode="&#xe89b;" d="M412 374q14-10 14-24 0-12-14-22l-362-228q-22-14-36-5t-14 35l0 442q0 26 14 35t36-5z m114 268q74 0 74-58l0-466q0-58-74-58-76 0-76 58l0 466q0 58 76 58z" horiz-adv-x="600" />
+
+<glyph glyph-name="to-start" unicode="&#xe89c;" d="M174 350q0 14 14 24l364 228q20 14 34 5t14-35l0-442q0-26-14-35t-34 5l-364 228q-14 10-14 22z m-174 234q0 58 76 58 74 0 74-58l0-466q0-58-74-58-76 0-76 58l0 466z" horiz-adv-x="600" />
+
+<glyph glyph-name="fast-forward" unicode="&#xe89d;" d="M866 374q14-10 14-24t-14-22l-372-248q-22-14-37-6t-15 36l0 482q0 28 15 36t37-6z m-454 0q14-10 14-24t-14-22l-360-248q-20-14-36-6t-16 36l0 482q0 28 16 36t36-6z" horiz-adv-x="880" />
+
+<glyph glyph-name="fast-backward" unicode="&#xe89e;" d="M0 350q0 14 14 24l374 248q20 14 36 6t16-36l0-482q0-28-16-36t-36 6l-374 248q-14 8-14 22z m454 0q0 14 14 24l360 248q20 14 36 6t16-36l0-482q0-28-16-36t-36 6l-360 248q-14 8-14 22z" horiz-adv-x="880" />
+
+<glyph glyph-name="progress-0" unicode="&#xe89f;" d="M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="progress-1" unicode="&#xe8a0;" d="M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z m-750 50l0 198 200 0 0-198-200 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="progress-2" unicode="&#xe8a1;" d="M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z m-750 50l0 198 200 0 0-198-200 0z m250 0l0 198 200 0 0-198-200 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="progress-3" unicode="&#xe8a2;" d="M1000 450l0-250q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 300q0 40 30 70t70 30l800 0q42 0 71-30t29-70l0-50z m-100-250l0 300-800 0 0-300 800 0z m-750 50l0 198 200 0 0-198-200 0z m250 0l0 198 200 0 0-198-200 0z m250 198l200 0 0-198-200 0 0 198z" horiz-adv-x="1000" />
+
+<glyph glyph-name="target" unicode="&#xe8a3;" d="M430 780q178 0 304-126t126-304-126-304-304-126-304 126-126 304 126 304 304 126z m36-778q124 14 212 102t100 212l-192 0 0 70 192 0q-12 124-100 212t-212 102l0-194-70 0 0 194q-124-14-213-102t-101-212l194 0 0-70-194 0q12-124 101-212t213-102l0 194 70 0 0-194z" horiz-adv-x="860" />
+
+<glyph glyph-name="list" unicode="&#xe8a5;" d="M100 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m0 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m0 200q20 0 35-15t15-35-15-35-35-15l-50 0q-20 0-35 15t-15 35 14 35 36 15l50 0z m200-100q-20 0-35 15t-15 35 15 35 35 15l350 0q22 0 36-15t14-35-15-35-35-15l-350 0z m350-100q22 0 36-15t14-35-15-35-35-15l-350 0q-20 0-35 15t-15 35 15 35 35 15l350 0z m0-200q22 0 36-15t14-35-15-35-35-15l-350 0q-20 0-35 15t-15 35 15 35 35 15l350 0z" horiz-adv-x="700" />
+
+<glyph glyph-name="list-add" unicode="&#xe8a6;" d="M350 400q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z m0-200q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z m620 200q30 0 30-50t-30-50l-170 0 0-170q0-30-50-30t-50 30l0 170-164 0q-30 0-30 50t30 50l164 0 0 170q0 30 50 30t50-30l0-170 170 0z m-620 200q22 0 36-15t14-35-15-35-35-15l-300 0q-20 0-35 15t-15 35 14 35 36 15l300 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="battery" unicode="&#xe8a9;" d="M770 350q0-98 36-157t78-59l66 0q-30-46-64-65t-118-19l-500 0q-130 0-199 94t-69 206q0 110 69 205t199 95l500 0q84 0 118-19t64-65l-66 0q-42 0-78-60t-36-156z m-136-90q10 12-8 26-136 134-178 164-16 10-26 13t-18-5-10-12-8-18l-22-56-148 66q-26 12-34 0-8-14 8-28 136-132 180-162 34-16 42-11t18 31l24 58 146-68q26-12 34 2z m310 192q22 0 39-27t17-71-17-72-39-28l-38 0q-22 0-38 28t-16 72 16 71 38 27l38 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="back-in-time" unicode="&#xe8aa;" d="M532 760q170 0 289-120t119-290-119-290-289-120q-138 0-252 88l70 76q82-60 182-60 126 0 216 90t90 216q0 128-90 218t-216 90q-124 0-213-86t-93-210l142 0-184-206-184 206 124 0q4 166 123 282t285 116z m-36-190l70 0 0-204 130-130-50-50-150 150 0 234z" horiz-adv-x="940" />
+
+<glyph glyph-name="monitor" unicode="&#xe8ab;" d="M900 790q42 0 71-30t29-70l0-550q0-42-29-77t-69-43l-218-44 86-38q50-28-20-28l-500 0q-98 0 32 52l36 14-220 44q-40 8-69 43t-29 77l0 550q0 40 30 70t70 30l800 0z m0-646l0 556-800 0 0-556 800 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="mobile" unicode="&#xe8ac;" d="M480 840q42 0 71-29t29-71l0-780q0-40-29-70t-71-30l-380 0q-40 0-70 30t-30 70l0 780q0 42 30 71t70 29l380 0z m-190-940q30 0 50 15t20 35q0 22-20 36t-50 14q-28 0-49-15t-21-35 21-35 49-15z m210 150l0 660-420 0 0-660 420 0z" horiz-adv-x="580" />
+
+<glyph glyph-name="cd" unicode="&#xe8ae;" d="M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-610q62 0 106 44t44 106q0 64-43 107t-107 43q-62 0-106-44t-44-106 44-106 106-44z" horiz-adv-x="920" />
+
+<glyph glyph-name="inbox" unicode="&#xe8af;" d="M967 398q40-42 30-72l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-8 32 32 72 8 10 36 38t68 67 52 51q22 22 52 22l516 0q30 0 52-22 16-16 53-52t67-65 38-39z m-266-32l178 0-102 114-556 0-102-114 178 0q8 0 12-8l40-100 300 0 40 100q4 8 12 8z" horiz-adv-x="999" />
+
+<glyph glyph-name="install" unicode="&#xe8b0;" d="M884 306q24-52 14-96l-34-184q-2-20-19-35t-39-15l-712 0q-22 0-39 15t-19 35l-34 184q-8 50 14 96l158 374q22 46 72 46l104 0-20-204-134 0 254-210 256 210-136 0-18 204 102 0q50 0 74-46z m-68-132q2 22-10 38t-34 16l-644 0q-22 0-34-16t-10-38l14-74q2-22 19-37t37-15l592 0q22 0 39 15t19 37z" horiz-adv-x="901" />
+
+<glyph glyph-name="globe" unicode="&#xe8b1;" d="M480 830q200 0 340-141t140-339q0-200-140-340t-340-140q-198 0-339 140t-141 340q0 198 141 339t339 141z m410-480q0 132-78 239t-202 149q-18-24-16-32 4-38 18-51t30-7l32 12t20 2q22-24 0-47t-45-56-1-77q34-64 96-64 28-2 43-36t17-66q10-80-14-140-22-44 14-76 86 112 86 250z m-466 404q-112-14-199-84t-127-174q6 0 22-2t28-3 26-4 24-8 12-13q4-12-14-45t-18-61q0-30 38-56t38-46q0-28 8-68t8-44q0-12 36-54t52-42q10 0 11 22t-2 54-3 40q0 32 14 74 12 42 59 70t55 46q16 34 9 61t-17 43-34 28-41 17-37 9-22 4q-16 6-42 7t-36-3-27 11-17 29q0 10 15 27t35 37 28 30q8 14 17 21t22 16 27 21q4 4 25 17t27 23z m-72-794q66-20 128-20 128 0 226 68-26 44-118 34-24-2-65-17t-47-17q-74-16-76-16-12-2-26-14t-22-18z" horiz-adv-x="960" />
+
+<glyph glyph-name="cloud" unicode="&#xe8b2;" d="M760 494q100 0 170-68t70-166-70-166-170-68l-578 0q-74 0-128 52t-54 124q0 74 53 126t129 52q2 0 10-1t10-1q-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z" horiz-adv-x="1000" />
+
+<glyph glyph-name="cloud-thunder" unicode="&#xe8b3;" d="M760 494q100 0 170-68t70-166-70-166-170-68l-578 0q-74 0-128 52t-54 124q0 74 53 126t129 52q2 0 10-1t10-1q-2 12-2 38 0 108 78 184t188 76q90 0 160-52t94-134q28 4 40 4z m-192-216q14 16 14 30 0 20-30 32l-4 0q-26 14-38 16l50 116q6 0 6 20 0 14-8 18-16 10-34-8-2-2-30-32t-61-66-45-52q-12-18-12-30 0-22 30-30l4-2q8-4 38-16l-52-114-2-8q-2-8-2-14 0-10 8-18 18-10 34 10 100 100 134 148z" horiz-adv-x="1000" />
+
+<glyph glyph-name="flash" unicode="&#xe8b4;" d="M40-100q-4 4 35 94t79 182 38 98-94 45-98 55q-4 12 84 120t180 209 96 97q6-4-74-186t-78-186 95-43 97-57q4-20-174-227t-186-201z" horiz-adv-x="400" />
+
+<glyph glyph-name="moon" unicode="&#xe8b5;" d="M524 238q106 106 125 252t-53 270q52-26 96-72 128-128 128-309t-128-309-310-128-310 128q-40 40-72 94 124-70 271-51t253 125z" horiz-adv-x="820" />
+
+<glyph glyph-name="flight" unicode="&#xe8b6;" d="M268-120l124 400-180 0-112-100-100 0 80 170-80 170 100 0 112-100 180 0-124 400 100 0 224-400 274 0t36-4 46-11 36-21 16-34q0-32-38-49t-74-19l-38-2-258 0-224-400-100 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="paper-plane" unicode="&#xe8b7;" d="M894 720q14 4 22-3t4-19q-2-6-72-310t-74-316q-2-14-14-19t-24 1l-248 134-30 16 22 26q388 420 394 426 4 4-1 9t-9 1l-550-402-112 44-190 76q-12 4-12 12t12 12q8 4 441 157t441 155z m-582-728l0 204 160-82q-130-116-142-128-18-14-18 6z" horiz-adv-x="921" />
+
+<glyph glyph-name="leaf" unicode="&#xe8b8;" d="M236 646q182 106 506 66 168-22 196-50 4-6-2-10-76-40-130-109t-78-132-65-132-93-105q-138-96-382-4-66-76-114-176-12-24-47-7t-25 39q44 100 129 193t176 153 176 106 141 68l54 20q-14 0-41-1t-104-14-148-38-162-84-161-141q-22 242 174 358z" horiz-adv-x="940" />
+
+<glyph glyph-name="lifebuoy" unicode="&#xe8b9;" d="M454 810q190 2 326-130t140-322q2-190-131-327t-323-141q-190-2-327 131t-139 323q-4 190 130 327t324 139z m0-60q-94 0-178-44l62-104q56 28 122 28t122-28l62 104q-88 46-190 44z m-246-522q-28 60-28 122 0 64 28 124l-102 62q-46-88-46-190 2-96 46-180z m258-278q98 4 178 46l-62 104q-60-30-122-30t-122 30l-62-104q86-46 190-46z m-6 180q92 0 156 65t64 155q0 92-64 156t-156 64-156-64-64-156q0-90 64-155t156-65z m252 98l104-62q46 96 44 190 0 96-44 180l-104-62q28-60 28-124 0-62-28-122z" horiz-adv-x="920" />
+
+<glyph glyph-name="mouse" unicode="&#xe8ba;" d="M551 130q28-80-17-157t-139-111q-94-28-175 9t-103 117l-106 384q-20 68 6 134t84 106l-96 186q-14 34 14 48 30 18 48-14l98-192q80 22 154-16t102-116z m-324 274q28 10 40 36t4 54q-10 28-35 41t-53 5q-28-10-40-36t-4-54q10-28 35-41t53-5z" horiz-adv-x="561" />
+
+<glyph glyph-name="briefcase" unicode="&#xe8bb;" d="M456 326l0-100-456 0q8 226 10 292 4 108 100 108l160 0q16 26 37 67t23 45q14 26 23 32t37 6l222 0q26 0 36-7t22-31q18-32 60-112l160 0q96 0 100-108l10-292-454 0 0 100-90 0z m-74 354l-28-54 292 0-28 54q-14 26-42 26l-152 0q-28 0-42-26z m164-604l0 100 430 0q-6-88-10-166-6-84-90-84l-750 0q-90 0-90 84l-10 166 430 0 0-100 90 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="suitcase" unicode="&#xe8bc;" d="M900 650q42 0 71-30t29-70l0-550q0-42-29-71t-71-29l-50 0 0 750 50 0z m-900-100q0 40 30 70t70 30l50 0 0-750-50 0q-40 0-70 29t-30 71l0 550z m670 204l0-104 110 0 0-750-560 0 0 750 110 0 0 104q98 46 170 46t170-46z m-60-104l0 66q-52 24-110 24-54 0-110-24l0-66 220 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="dot" unicode="&#xe8bd;" d="M110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z" horiz-adv-x="220" />
+
+<glyph glyph-name="dot-2" unicode="&#xe8be;" d="M110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 32-32 78 32 78 78 32z m350 0q46 0 78-32t32-78q0-44-33-77t-77-33q-46 0-78 32t-32 78 32 78 78 32z" horiz-adv-x="570" />
+
+<glyph glyph-name="dot-3" unicode="&#xe8bf;" d="M110 460q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z m350 0q46 0 78-32t32-78q0-44-33-77t-77-33-77 33-33 77q0 46 32 78t78 32z m350 0q46 0 78-32t32-78q0-44-32-77t-78-33-78 33-32 77q0 46 32 78t78 32z" horiz-adv-x="920" />
+
+<glyph glyph-name="brush" unicode="&#xe8c0;" d="M118 170q38 34 85 29t87-45q42-40 48-87t-30-83q-86-84-228-102-84-12-80 14 0 4 6 10 52 60 64 145t48 119z m840 646q26-26-148-248t-292-338q-38-38-124-104-8-6-16 8-18 34-48 64-32 32-66 48-16 6-8 16 64 84 104 122 118 116 344 287t254 145z" horiz-adv-x="962" />
+
+<glyph glyph-name="infinity" unicode="&#xe8c2;" d="M796 570q84 0 144-53t60-167q0-112-60-166t-144-54q-78 0-157 40t-139 106q-58-66-137-106t-157-40q-86 0-146 54t-60 166q0 114 60 167t146 53q78 0 157-39t137-105q58 66 138 105t158 39z m-590-352q60 0 127 37t113 95q-46 58-112 95t-128 37q-114 0-114-132t114-132z m590 0q114 0 114 132t-114 132q-62 0-129-37t-111-95q44-58 111-95t129-37z" horiz-adv-x="1000" />
+
+<glyph glyph-name="erase" unicode="&#xe8c3;" d="M902 700q42 0 71-29t29-71l0-500q0-40-29-70t-71-30l-478 0q-38 0-70 28l-340 296q-28 26 0 54l340 296q30 26 70 26l478 0z m-140-550l72 74-128 126 128 128-72 72-128-126-128 126-72-72 128-128-128-126 72-74 128 128z" horiz-adv-x="1002" />
+
+<glyph glyph-name="chart-pie" unicode="&#xe8c4;" d="M368 770l0-368-368 0q18 146 121 249t247 119z m106 0q156-20 261-139t105-279q0-174-123-298t-299-124q-160 0-278 105t-140 263l424 0q20 0 35 14t15 36l0 422z" horiz-adv-x="840" />
+
+<glyph glyph-name="chart-line" unicode="&#xe8c5;" d="M34 284q-42 10-32 56 10 42 54 32l98-24-52-80z m890-12q14 12 33 11t31-15q32-32-2-64l-252-226q-12-12-30-12-14 0-28 10l-286 220-54 14 50 80 36-8q12-4 16-8l264-204z m-490 220l-350-550q-12-22-38-22-12 0-24 8-16 10-20 29t6 33l374 588q8 16 28 20 18 6 36-6l246-156 226 326q10 16 28 19t34-9q38-24 12-62l-252-362q-24-36-62-12z" horiz-adv-x="1003" />
+
+<glyph glyph-name="chart-bar" unicode="&#xe8c6;" d="M750 800q22 0 36-15t14-35l0-850-200 0 0 850q0 50 40 50l110 0z m-300-300q22 0 36-15t14-35l0-550-200 0 0 550q0 50 40 50l110 0z m-300-300q22 0 36-15t14-35l0-250-200 0 0 250q0 50 40 50l110 0z" horiz-adv-x="800" />
+
+<glyph glyph-name="chart-area" unicode="&#xe8c7;" d="M964 732q16 22 16-4l0-768-964 0q-12 0-15 7t5 17l230 288q20 22 40 2l74-66q10-8 21-7t17 11l158 238q16 26 38 4l112-104q20-20 38 4z" horiz-adv-x="980" />
+
+<glyph glyph-name="tape" unicode="&#xe8c8;" d="M770 580q96 0 163-67t67-163q0-94-67-162t-163-68l-540 0q-94 0-162 68t-68 162q0 96 68 163t162 67q96 0 163-67t67-163q0-72-40-130l160 0q-40 64-40 130 0 96 68 163t162 67z m-670-230q0-52 38-91t92-39 92 39 38 91q0 54-38 92t-92 38-92-38-38-92z m670-130q54 0 92 39t38 91q0 54-38 92t-92 38-92-38-38-92q0-52 38-91t92-39z" horiz-adv-x="1000" />
+
+<glyph glyph-name="graduation-cap" unicode="&#xe8c9;" d="M166 238l334-168 276 136q-4-22-8-47t-6-35-11-23-24-23-45-22q-40-18-80-41t-63-34-39-11-40 13-64 37-80 40q-72 32-103 69t-47 109z m810 246q24-14 24-33t-24-33l-78-44-308 102q-22 36-90 36-40 0-67-16t-27-40 27-40 67-16q26 0 36 4l292-68-268-152q-60-32-120 0l-416 234q-24 14-24 33t24 33l416 234q60 32 120 0z m-128-442q18 116 13 182t-19 90l-14 22 70 38q6-8 12-28t17-101-7-197q-4-26-22-30t-35 5-15 19z" horiz-adv-x="1000" />
+
+<glyph glyph-name="language" unicode="&#xe8ca;" d="M988 306q30-82-10-176t-134-160q-10 0-12 2t-16 19-16 19q-2 6 2 10 86 60 117 152t-11 148q-16-38-39-76t-59-80-86-65-106-15q-52 6-84 41t-32 93q0 84 60 148 50 50 114 66l-2 100q-140-24-146-24-6-2-10 4 0 2-5 29t-5 31q-2 2 1 4t7 2l156 28q0 110-2 114 0 8 8 8 46 0 52 2 10 0 10-8l0-104q158 22 164 22 8 4 10-6 0-2 4-23t4-25q4-10-4-12l-176-30 0-102 12 0q86 0 148-36t86-100z m-370-160q28-6 62 6l-4 214q-34-12-60-40-44-44-44-108 0-66 46-72z m122 28q28 24 58 68t45 79 7 41q-36 18-96 18-2 0-6-1t-6-1z m-448 382q10-28 53-165t83-261 40-126q0-4-4-4l-86 0q-6 0-6 4l-50 166-176 0q-48-164-50-166 0-4-6-4l-86 0q-4 0-4 4 10 18 176 552 2 8 10 8l96 0q10 0 10-8z m-130-316l144 0-72 264z" horiz-adv-x="1001" />
+
+<glyph glyph-name="ticket" unicode="&#xe8cb;" d="M216 272l326 326 178-178-326-326z m710 244q14-14 14-36t-14-36l-550-550q-16-16-36-16t-36 16l-76 76q12 20 12 48 0 42-29 72t-71 30q-22 0-50-14l-74 76q-16 16-16 36t16 36l550 550q14 14 36 14t36-14l74-76q-12-22-12-48 0-42 30-71t72-29q26 0 48 12z m-532-502l406 406-258 258-408-406z" horiz-adv-x="940" />
+
+<glyph glyph-name="water" unicode="&#xe8cc;" d="M168 844q10-86 50-155t73-123 33-112q0-66-48-113t-114-47-114 47-48 113q0 58 33 112t73 123 50 155q2 4 7 4t5-4z m616 0q10-86 50-155t73-123 33-112q0-66-48-113t-114-47-114 47-48 113q0 48 21 93t48 78 53 92 34 127q2 4 7 4t5-4z m-320-444q2 4 7 4t5-4q10-86 50-155t73-123 33-112q0-66-48-113t-114-47-114 47-48 113q0 58 33 112t73 123 50 155z" horiz-adv-x="940" />
+
+<glyph glyph-name="droplet" unicode="&#xe8cd;" d="M290 822q14-118 60-219t92-159 82-136 36-160q0-114-83-196t-197-82-197 82-83 196q0 82 36 160t82 136 92 159 60 219q2 8 11 8t9-8z m-42-392q2 4-2 14-6 6-14 6t-12-6l-40-58q-32-46-48-70t-34-75-18-101q0-24 17-41t41-17q58 0 58 68 0 94 42 246 2 6 5 17t5 17z" horiz-adv-x="560" />
+
+<glyph glyph-name="air" unicode="&#xe8ce;" d="M85 534q-16-14-36-12t-34 18q-14 14-12 36t18 36q48 40 79 60t89 40 129 4 159-66 155-53 100 16 89 67q38 30 70-6 32-40-6-72-122-110-234-110-100 0-222 70-68 38-119 52t-93 0-65-29-67-51z m736-110q38 32 70-6 32-40-6-72-40-34-65-53t-72-38-97-19q-96 0-222 70-68 38-119 52t-93 0-65-29-67-51q-14-14-35-12t-35 18q-32 40 6 72 38 34 60 50t69 38 88 23 105-15 134-56q68-38 119-52t93 0 65 29 67 51z m0-256q38 32 70-6 14-14 12-36t-18-36q-40-34-65-53t-72-38-97-19q-96 0-222 70-68 38-119 52t-93 1-66-29-66-52q-14-14-35-12t-35 18q-32 40 6 72 38 34 60 50t69 38 88 23 105-15 134-56q68-38 119-52t93 0 65 29 67 51z" horiz-adv-x="905" />
+
+<glyph glyph-name="credit-card" unicode="&#xe8cf;" d="M900 700q42 0 71-30t29-70l0-500q0-42-29-71t-71-29l-800 0q-40 0-70 29t-30 71l0 500q0 40 30 70t70 30l800 0z m0-600l0 300-800 0 0-300 800 0z m0 450l0 50-800 0 0-50 800 0z m-700-256l30 0 0-30-30 0 0 30z m180-60l30 0 0 30 30 0 0 30 60 0 0-30-30 0 0-30-30 0 0-30-60 0 0 30z m120-30l-30 0 0 30 30 0 0-30z m-150 0l-60 0 0 30 60 0 0-30z m30 60l0-30-30 0 0 60 60 0 0-30-30 0z m-120-30l0-30-60 0 0 30 30 0 0 30 30 0 0 30 60 0 0-30-30 0 0-30-30 0z" horiz-adv-x="1000" />
+
+<glyph glyph-name="floppy" unicode="&#xe8d0;" d="M658 750l142-156 0-544q0-40-29-70t-71-30l-600 0q-40 0-70 30t-30 70l0 600q0 42 30 71t70 29l558 0z m-58-300l0 250-400 0 0-250q0-20 15-35t35-15l300 0q20 0 35 15t15 35z m-50 200l0-200-100 0 0 200 100 0z" horiz-adv-x="800" />
+
+<glyph glyph-name="clipboard" unicode="&#xe8d1;" d="M630 750q28 0 49-21t21-49l0-760q0-30-21-50t-49-20l-560 0q-28 0-49 20t-21 50l0 760q0 28 21 49t49 21l60-150 440 0z m-100-100l-360 0-44 100 108 0 36 100 160 0 36-100 110 0z" horiz-adv-x="700" />
+
+<glyph glyph-name="megaphone" unicode="&#xe8d2;" d="M792 500q58-138 67-258t-39-140q-28-12-61 3t-65 40-99 41-149 8q-28-4-42-19t-6-37q22-56 46-108 4-10 24-22t24-20q14-34-22-46-50-22-102-40-30-10-54 42-32 76-58 132-6 12-34 17t-46 31q-30-10-38-14-34-12-74 12t-54 60q-17 32-5 79t43 61q126 52 213 108t124 103 59 92 25 78 15 59 36 36q48 20 130-70t142-228z m-28-300q8 4 10 38t-11 98-41 128q-28 66-67 123t-67 84-36 23-10-42 10-105 40-133 68-119 68-76 36-19z" horiz-adv-x="860" />
+
+<glyph glyph-name="database" unicode="&#xe8d3;" d="M686 208q14 20 14-2l0-100q0-74-104-135t-246-61q-140 0-245 61t-105 135l0 100q0 8 4 10t10-8q32-52 125-86t211-34 211 34 125 86z m2 254q8 16 12 0l0-116q0-68-102-114t-248-46q-144 0-247 46t-103 114l0 116q0 20 14 0 30-46 124-75t212-29 212 29 126 75z m-338 328q144 0 247-39t103-93l0-64q0-58-103-99t-247-41-247 41-103 99l0 64q0 54 103 93t247 39z" horiz-adv-x="700" />
+
+<glyph glyph-name="drive" unicode="&#xe8d4;" d="M884 304q26-44 14-96l-34-184q-2-20-19-35t-39-15l-712 0q-20 0-38 15t-20 35l-34 184q-8 52 14 96l158 374q22 46 72 46l408 0q50 0 74-46z m-68-132q2 22-10 38t-34 16l-644 0q-22 0-34-16t-10-38l14-74q2-22 19-37t39-15l590 0q22 0 39 15t19 37z" horiz-adv-x="902" />
+
+<glyph glyph-name="bucket" unicode="&#xe8d5;" d="M522 780q174 0 286-49t104-105q-6-38-48-307t-44-281q-2-18-37-44t-107-50-154-24-153 24-106 50-37 44q0 2-4 30 82-6 163 35t139 117q28 0 48 20t20 50q0 28-20 49t-50 21q-28 0-49-21t-21-49q0-20 10-36-48-58-115-89t-131-27q-102 10-157 57t-59 109q-8 122 156 184-18 94-22 138-8 56 104 105t284 49z m-452-470q4-32 37-59t91-39l-32 204q-100-44-96-106z m452 212q82 0 157 18t113 39 38 35-38 35-112 39-158 18q-82 0-156-18t-112-39-38-35 38-35 112-39 156-18z" horiz-adv-x="913" />
+
+<glyph glyph-name="thermometer" unicode="&#xe8d6;" d="M400 356q64-36 102-98t38-138q0-112-79-191t-191-79-191 79-79 191q0 76 38 138t102 98l0 444q0 50 40 50l170 0q20 0 35-15t15-35l0-444z m-130-406q70 0 120 50t50 120q0 56-32 100t-84 60l0 370-100 0 0-368q-54-16-89-61t-35-101q0-70 50-120t120-50z" horiz-adv-x="540" />
+
+<glyph glyph-name="key" unicode="&#xe8d7;" d="M774 612q20-116-28-215t-150-117q-66-12-130-2l-118-194-70-12-104-166q-14-28-46-32l-76-14q-12-4-22 4t-12 22l-16 98q-8 30 12 56l258 386q-24 50-38 120-18 106 53 187t185 101q106 20 195-45t107-177z m-126-76q30 44 21 97t-51 83q-42 32-92 22t-80-54q-8-12-12-23t-1-20 5-16 13-17 18-15 22-16 23-17q6-4 22-16t23-16 19-12 19-8 17 1 18 8 16 19z" horiz-adv-x="780" />
+
+<glyph glyph-name="flow-cascade" unicode="&#xe8d8;" d="M520 120q50 0 85-35t35-85-35-85-85-35q-80 0-110 74l-164 0q-88 0-131 54t-43 118l0 464q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-114q0-78 78-78l164 0q30 72 110 72 50 0 85-35t35-85-35-85-85-35q-80 0-110 74l-164 0q-42 0-78 16l0-194q0-78 78-78l164 0q30 72 110 72z m0 300q-28 0-49-20t-21-50q0-28 21-48t49-20 49 20 21 48q0 30-21 50t-49 20z m-470 280q0-28 21-48t49-20 49 20 21 48q0 30-21 50t-49 20-49-20-21-50z m470-768q28 0 49 20t21 48q0 30-21 50t-49 20-49-20-21-50q0-28 21-48t49-20z" horiz-adv-x="640" />
+
+<glyph glyph-name="flow-branch" unicode="&#xe8d9;" d="M640 650q0-80-74-110-6-58-28-101t-61-69-68-38-75-26q-42-14-63-22t-47-24-38-40-16-60q70-30 70-110 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-204q40 30 138 60 58 18 84 29t51 41 29 76q-70 32-70 108 0 50 35 85t85 35 85-35 35-85z m-588 0q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z m400 600q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="640" />
+
+<glyph glyph-name="flow-tree" unicode="&#xe8da;" d="M868 112q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 114q0 78-76 78l-100 0q-44 0-78 12l0-204q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 204q-30-12-76-12l-100 0q-34 0-53-19t-22-33-3-26l0-114q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 114q0 64 43 118t131 54l100 0q76 0 76 52l0 140q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-140q0-52 78-52l100 0q86 0 129-54t43-118l0-114z m-678-112q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m212 700q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m138-700q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m280-68q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="940" />
+
+<glyph glyph-name="flow-line" unicode="&#xe8db;" d="M168 162q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-378z m-116 488q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="240" />
+
+<glyph glyph-name="flow-parallel" unicode="&#xe8dc;" d="M240 650q0-76-72-110l0-378q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85z m-50-600q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20 49 20 21 48z m-70 532q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z m448-420q72-34 72-112 0-50-35-85t-85-35-85 35-35 85q0 78 72 112l0 378q-72 34-72 110 0 50 35 85t85 35 85-35 35-85q0-76-72-110l0-378z m-116 488q0-28 20-48t48-20 49 20 21 48q0 30-21 50t-49 20-48-20-20-50z m68-668q28 0 49 20t21 48q0 30-21 50t-49 20-48-20-20-50q0-28 20-48t48-20z" horiz-adv-x="640" />
+
+<glyph glyph-name="rocket" unicode="&#xe8dd;" d="M543 236q6-50 8-81t-8-59-13-40-35-32-45-26-70-31-85-37q-32-12-45 4t-3 44l40 110-130 132-106-40q-28-12-43 2t-3 46q12 30 31 79t27 65 22 45 25 36 29 20 41 13l52 0t71-6q10 14 29 39t77 85 118 104 145 75 165 19q8 0 14-6 4-4 6-14 10-82-18-168t-76-151-98-118-86-81z m50 296q22-22 54-22t54 22q22 24 22 56t-22 56q-22 22-54 22t-54-22q-22-24-22-56t22-56z" horiz-adv-x="860" />
+
+<glyph glyph-name="gauge" unicode="&#xe8de;" d="M406 178q34 56 214 284t194 220q12-6-96-278t-138-326q-50-86-136-36t-38 136z m94 380q-168 0-284-127t-116-311q0-30 2-46 2-22-12-37t-34-17-36 12-18 34q0 8-1 26t-1 28q0 226 145 382t355 156q72 0 134-18l-70-86q-40 4-64 4z m362-62q138-154 138-376 0-38-2-56-2-20-16-33t-34-13l-4 0q-22 4-35 20t-11 36q2 14 2 46 0 150-80 268 6 14 20 51t22 57z" horiz-adv-x="1000" />
+</font>
+</defs>
+</svg>
\ No newline at end of file
diff --git a/src/mol-plugin/skin/fonts/fontello.ttf b/src/mol-plugin/skin/fonts/fontello.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..39a234370e14bbf53e699758840b2ea5de8ccede
GIT binary patch
literal 49104
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

literal 0
HcmV?d00001

diff --git a/src/mol-plugin/skin/fonts/fontello.woff b/src/mol-plugin/skin/fonts/fontello.woff
new file mode 100644
index 0000000000000000000000000000000000000000..674807bae0bb1793ab6274a50737b707d9356fd2
GIT binary patch
literal 29392
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
blb&3>b@0djQfBY>Zfb1e3_NAZUl<qwFnNN=

literal 0
HcmV?d00001

diff --git a/src/mol-plugin/skin/fonts/fontello.woff2 b/src/mol-plugin/skin/fonts/fontello.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..49eb9640642432843920fcacac3346c95157ba26
GIT binary patch
literal 23892
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
P-N$$OZI5MOU|;|Md`MF5

literal 0
HcmV?d00001

diff --git a/src/mol-plugin/skin/light.scss b/src/mol-plugin/skin/light.scss
new file mode 100644
index 000000000..f669f4b36
--- /dev/null
+++ b/src/mol-plugin/skin/light.scss
@@ -0,0 +1,2 @@
+@import 'colors/light';
+@import 'base/base';
\ No newline at end of file
-- 
GitLab