summaryrefslogtreecommitdiff
path: root/site/assets/css
diff options
context:
space:
mode:
authorAdam Harvey <adam@ahprojects.com>2018-12-23 01:37:03 +0100
committerAdam Harvey <adam@ahprojects.com>2018-12-23 01:37:03 +0100
commit4452e02e8b04f3476273574a875bb60cfbb4568b (patch)
tree3ffa44f9621b736250a8b94da14a187dc785c2fe /site/assets/css
parent2a65f7a157bd4bace970cef73529867b0e0a374d (diff)
parent5340bee951c18910fd764241945f1f136b5a22b4 (diff)
.
Diffstat (limited to 'site/assets/css')
-rw-r--r--site/assets/css/applets.css100
-rw-r--r--site/assets/css/css.css409
-rw-r--r--site/assets/css/fonts.css41
-rw-r--r--site/assets/css/leaflet.css635
-rwxr-xr-xsite/assets/css/tabulator.css754
5 files changed, 1939 insertions, 0 deletions
diff --git a/site/assets/css/applets.css b/site/assets/css/applets.css
new file mode 100644
index 00000000..315d72e0
--- /dev/null
+++ b/site/assets/css/applets.css
@@ -0,0 +1,100 @@
+.applet {
+ margin-bottom: 40px;
+ transition: opacity 0.2s cubic-bezier(0,0,1,1);
+ opacity: 0;
+}
+.applet.map {
+ width: 100vw;
+ height: 50vh;
+}
+.applet.loaded {
+ opacity: 1;
+}
+
+.row {
+ display: flex;
+ flex-direction: row;
+ justify-content: flex-start;
+}
+.q {
+ width: 100%;
+ padding: 5px;
+ font-size: 14pt;
+}
+.timing {
+ font-size: 9pt;
+ padding-top: 10px;
+}
+.results {
+ margin-top: 10px;
+ padding-bottom: 10px;
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+}
+.results > div {
+ width: 200px;
+ margin-left: 20px;
+ margin-bottom: 40px;
+ font-size: 8pt;
+ background: #000;
+ padding: 5px;
+ font-weight: 500;
+}
+.results > div img {
+ display: block;
+ margin-bottom: 4px;
+ width: 190px;
+ height: 190px;
+ background: rgba(255,255,255,0.05);
+}
+.results > div:nth-child(3n+1) {
+ margin-left: 0;
+}
+.query h2 {
+ margin-top: 0; padding-top: 0;
+}
+.img {
+ position: relative;
+}
+.img .bbox {
+ position: absolute;
+ color: rgba(255,0,0,1);
+ background: rgba(255,0,0,0.05);
+ border: 1px solid;
+}
+.cta {
+ padding-left: 20px;
+ font-size: 11pt;
+}
+.cta ol {
+ margin: 0;
+ padding: 0 0 20px 20px;
+}
+.uploadContainer > div {
+ position: relative;
+ width: 300px;
+ height: 300px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: #333;
+ border: 3px dashed #fff;
+ border-radius: 10px;
+ opacity: 0.3;
+ transition: opacity 0.2s cubic-bezier(0,0,1,1);
+}
+.uploadContainer.active,
+.desktop .uploadContainer > div:hover {
+ opacity: 1;
+}
+.uploadContainer input {
+ position: absolute;
+ top: 0; left: 0;
+ width: 100%; height: 100%;
+ opacity: 0;
+ cursor: pointer;
+}
+.uploadContainer img {
+ max-width: 40px;
+}
diff --git a/site/assets/css/css.css b/site/assets/css/css.css
new file mode 100644
index 00000000..003ac4a3
--- /dev/null
+++ b/site/assets/css/css.css
@@ -0,0 +1,409 @@
+* { box-sizing: border-box; }
+html, body {
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ min-height: 100%;
+ font-family: 'Roboto', sans-serif;
+ color: #b8b8b8;
+}
+html {
+ background: #191919;
+}
+
+.content {
+ opacity: 0;
+ transition: opacity 0.2s cubic-bezier(0,1,1,1);
+}
+html.desktop .content, html.mobile .content {
+ opacity: 1;
+}
+
+/* header */
+
+header {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 70px;
+ z-index: 1;
+ background: #1e1e1e;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ justify-content: space-between;
+ box-shadow: 0 0 4px rgba(0,0,0,0.3);
+}
+header .slogan {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ padding-left: 56px;
+ text-decoration: none;
+}
+header .logo {
+ background-image: url(../img/megapixels_logo_white.svg);
+ background-size: cover;
+ background-repeat: no-repeat;
+ margin-top: 7px;
+ margin-right: 14px;
+ width: 49px;
+ height: 30px;
+}
+header .site_name {
+ font-weight: bold;
+ color: #fff;
+}
+header .sub {
+ margin-left: 4px;
+ margin-top: 2px;
+ transition: color 0.1s cubic-bezier(0,0,1,1);
+}
+.sub {
+ color: #666;
+ font-size: 10pt;
+}
+.desktop header .slogan:hover .site_name {
+ color: #fff;
+}
+.desktop header .slogan:hover .sub {
+ color: #666;
+}
+header .links {
+ display: flex;
+ flex-direction: row;
+ font-family: 'Roboto Mono', monospace;
+}
+header .links a {
+ display: block;
+ color: #777;
+ text-decoration: none;
+ text-transform: uppercase;
+ margin-right: 32px;
+ transition: color 0.1s cubic-bezier(0,0,1,1), border-color 0.1s cubic-bezier(0,0,1,1);
+ border-bottom: 1px solid rgba(255,255,255,0);
+}
+header .links a.active {
+ color: #bbb;
+}
+.desktop header .links a:hover {
+ color: #fff;
+ border-bottom: 1px solid rgba(255,255,255,255);
+}
+.desktop header .links a.active:hover {
+ color: #fff;
+ border-bottom: 1px solid rgba(255,255,255,255);
+}
+
+/* footer */
+
+footer {
+ width: 100%;
+ background: #000;
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ color: #888;
+ font-size: 9pt;
+ padding: 20px 75px 20px;
+}
+footer > div {
+ display: flex;
+ flex-direction: row;
+}
+footer a {
+ display: inline-block;
+ color: #888;
+ transition: color 0.2s cubic-bezier(0,0,1,1);
+ margin-right: 5px;
+}
+footer a:hover {
+ color: #ddd;
+}
+
+/* headings */
+
+h1 {
+ color: #ddd;
+ font-weight: 300;
+ font-size: 24pt;
+ margin: 75px 0 10px;
+ padding: 0;
+ transition: color 0.2s cubic-bezier(0,0,1,1);
+}
+h2 {
+ color: #ddd;
+ font-weight: 300;
+ font-size: 18pt;
+ margin: 20px 0 10px;
+ padding: 0;
+ transition: color 0.2s cubic-bezier(0,0,1,1);
+}
+h3 {
+ margin: 0 0 20px 0;
+ padding: 0;
+ font-size: 11pt;
+ font-weight: 500;
+ transition: color 0.2s cubic-bezier(0,0,1,1);
+}
+.content h3 a {
+ color: #888;
+ text-decoration: none;
+}
+.desktop .content h3 a:hover {
+ color: #fff;
+ text-decoration: underline;
+}
+
+th, .gray, h3 {
+ font-family: 'Roboto Mono', monospace;
+ font-weight: 400;
+ text-transform: uppercase;
+ color: #666;
+}
+th, .gray {
+ font-size: 9pt;
+}
+
+/* content */
+
+.content {
+ padding-top: 70px;
+ padding-bottom: 100px;
+ min-height: calc(100vh - 55px);
+ line-height: 1.5;
+}
+section {
+ width: 640px;
+ margin: 0 auto;
+}
+.content .first_paragraph {
+ font-weight: 300;
+ font-size: 18pt;
+ color: #ccc;
+}
+p {
+ margin: 0 0 20px 0;
+}
+.content a {
+ color: #ddd;
+ transition: color 0.2s cubic-bezier(0,0,1,1);
+}
+.content a:hover {
+ color: #fff;
+}
+
+/* top of post metadata */
+
+.meta {
+ display: flex;
+ flex-direction: row;
+ justify-content: flex-start;
+ align-items: flex-start;
+ font-size: 10pt;
+ margin-bottom: 20px;
+}
+.meta > div {
+ margin-right: 30px;
+}
+.meta .gray {
+ font-size: 9pt;
+ padding-bottom: 4px;
+}
+
+/* misc formatting */
+
+code {
+ font-family: 'Roboto Mono', monospace;
+ font-size: 9pt;
+ padding: 2px 4px;
+ background: rgba(255,255,255,0.1);
+}
+pre {
+ margin: 0 0 40px 0;
+ border: 1px solid #666;
+ border-radius: 2px;
+}
+pre code {
+ display: block;
+ max-height: 400px;
+ max-width: 640px;
+ overflow: scroll;
+ padding: 4px 10px;
+}
+table {
+ margin-bottom: 40px;
+}
+hr {
+ height: 1px;
+ background: #888;
+ border: 0;
+ width: 80px;
+}
+blockquote {
+ margin-left: 28px;
+ padding: 0 0 0 10px;
+ border-left: 2px solid #555;
+}
+
+/* footnotes */
+
+.footnotes hr {
+ display: none;
+}
+.footnotes ol:before {
+ content: 'Footnotes';
+ margin: 0 0 10px -40px;
+ padding-bottom: 0;
+ display: block;
+ font-family: 'Roboto Mono', monospace;
+ font-weight: 400;
+ text-transform: uppercase;
+ color: #666;
+ font-size: 11pt;
+}
+
+/* images */
+
+section img {
+ max-width: 100%;
+ display: block;
+ margin: 0 auto;
+}
+section .image {
+ margin-bottom: 40px;
+}
+section.images {
+ display: flex;
+ flex-direction: row;
+ align-items: flex-start;
+ justify-content: center;
+}
+.image:only-child {
+ width: 100%;
+}
+.image:first-child {
+ margin-left: 0;
+}
+.image:nth-child(2),
+.image:nth-child(3) {
+ margin-left: 40px;
+}
+.image:first-child:nth-last-child(2),
+.image:first-child:nth-last-child(2) ~ .image {
+ width: 300px;
+}
+.image:first-child:nth-last-child(3),
+.image:first-child:nth-last-child(3) ~ .image {
+ width: 186px;
+}
+section.wide {
+ width: 100%;
+}
+section.wide .image {
+ max-width: 100%;
+}
+.caption {
+ text-align: center;
+ font-size: 9pt;
+ color: #888;
+ max-width: 620px;
+ margin: 10px auto 0 auto;
+}
+
+/* blog index */
+
+.research_index {
+ margin-top: 40px;
+}
+.research_index a {
+ text-decoration: none;
+}
+.research_index h1 {
+ margin-top: 20px;
+ text-decoration: underline;
+}
+.desktop .research_index section:hover h1 {
+ color: #fff;
+}
+.research_index section:hover h2 {
+ color: #ddd;
+}
+
+/* home page */
+
+.hero {
+ position: relative;
+ width: 100%;
+ max-width: 1200px;
+ height: 50vw;
+ max-height: 70vh;
+ display: flex;
+ align-items: center;
+ margin: 0 auto;
+}
+#face_container {
+ pointer-events: none;
+ position: absolute;
+ width: 50vw;
+ height: 50vw;
+ max-height: 70vh;
+ top: 0;
+ right: 0;
+ z-index: -1;
+ text-align: center;
+}
+.currentFace {
+ position: absolute;
+ bottom: 50px;
+ width: 100%;
+ left: 0;
+ text-align: center;
+}
+.intro {
+ max-width: 640px;
+ padding: 75px 0 75px 10px;
+ z-index: 1;
+}
+.intro .headline {
+ font-family: 'Roboto Mono', monospace;
+ font-size: 16pt;
+}
+.intro .buttons {
+ margin: 40px 0;
+}
+.intro button {
+ font-family: 'Roboto', sans-serif;
+ padding: 8px 12px;
+ border-radius: 6px;
+ border: 1px solid transparent;
+ cursor: pointer;
+ font-size: 11pt;
+ margin-right: 10px;
+ transition: color 0.1s cubic-bezier(0,0,1,1), background-color 0.1s cubic-bezier(0,0,1,1);
+}
+.intro button.normal {
+ background: #191919;
+ border-color: #444;
+ color: #ddd;
+}
+.intro button.important {
+ background: #444;
+ border-color: #444;
+ color: #ddd;
+}
+.desktop .intro button:hover {
+ background: #666;
+ border-color: #666;
+ color: #fff;
+}
+.intro .under {
+ color: #888;
+}
+.intro .under a {
+ color: #bbb;
+}
+.desktop .intro .under a:hover {
+ color: #fff;
+} \ No newline at end of file
diff --git a/site/assets/css/fonts.css b/site/assets/css/fonts.css
new file mode 100644
index 00000000..8db01fbd
--- /dev/null
+++ b/site/assets/css/fonts.css
@@ -0,0 +1,41 @@
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 300;
+ src: url("../fonts/Roboto_300.eot?#iefix") format("embedded-opentype"), url("../fonts/Roboto_300.woff") format("woff"), url("../fonts/Roboto_300.woff2") format("woff2"), url("../fonts/Roboto_300.svg#Roboto") format("svg"), url("../fonts/Roboto_300.ttf") format("truetype");
+}
+
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 400;
+ src: url("../fonts/Roboto_400.eot?#iefix") format("embedded-opentype"), url("../fonts/Roboto_400.woff") format("woff"), url("../fonts/Roboto_400.woff2") format("woff2"), url("../fonts/Roboto_400.svg#Roboto") format("svg"), url("../fonts/Roboto_400.ttf") format("truetype");
+}
+
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 500;
+ src: url("../fonts/Roboto_500.eot?#iefix") format("embedded-opentype"), url("../fonts/Roboto_500.woff") format("woff"), url("../fonts/Roboto_500.woff2") format("woff2"), url("../fonts/Roboto_500.svg#Roboto") format("svg"), url("../fonts/Roboto_500.ttf") format("truetype");
+}
+
+@font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 300;
+ src: url("../fonts/Roboto_Mono_300.eot?#iefix") format("embedded-opentype"), url("../fonts/Roboto_Mono_300.woff") format("woff"), url("../fonts/Roboto_Mono_300.woff2") format("woff2"), url("../fonts/Roboto_Mono_300.svg#RobotoMono") format("svg"), url("../fonts/Roboto_Mono_300.ttf") format("truetype");
+}
+
+@font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 400;
+ src: url("../fonts/Roboto_Mono_400.eot?#iefix") format("embedded-opentype"), url("../fonts/Roboto_Mono_400.woff") format("woff"), url("../fonts/Roboto_Mono_400.woff2") format("woff2"), url("../fonts/Roboto_Mono_400.svg#RobotoMono") format("svg"), url("../fonts/Roboto_Mono_400.ttf") format("truetype");
+}
+
+@font-face {
+ font-family: 'Roboto Mono';
+ font-style: normal;
+ font-weight: 500;
+ src: local("Roboto-Mono Medium"), local("RobotoMono-Medium"), url("../fonts/Roboto_Mono_500.eot?#iefix") format("embedded-opentype"), url("../fonts/Roboto_Mono_500.woff") format("woff"), url("../fonts/Roboto_Mono_500.woff2") format("woff2"), url("../fonts/Roboto_Mono_500.svg#RobotoMono") format("svg"), url("../fonts/Roboto_Mono_500.ttf") format("truetype");
+}
diff --git a/site/assets/css/leaflet.css b/site/assets/css/leaflet.css
new file mode 100644
index 00000000..a0932d57
--- /dev/null
+++ b/site/assets/css/leaflet.css
@@ -0,0 +1,635 @@
+/* required styles */
+
+.leaflet-pane,
+.leaflet-tile,
+.leaflet-marker-icon,
+.leaflet-marker-shadow,
+.leaflet-tile-container,
+.leaflet-pane > svg,
+.leaflet-pane > canvas,
+.leaflet-zoom-box,
+.leaflet-image-layer,
+.leaflet-layer {
+ position: absolute;
+ left: 0;
+ top: 0;
+ }
+.leaflet-container {
+ overflow: hidden;
+ }
+.leaflet-tile,
+.leaflet-marker-icon,
+.leaflet-marker-shadow {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ -webkit-user-drag: none;
+ }
+/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
+.leaflet-safari .leaflet-tile {
+ image-rendering: -webkit-optimize-contrast;
+ }
+/* hack that prevents hw layers "stretching" when loading new tiles */
+.leaflet-safari .leaflet-tile-container {
+ width: 1600px;
+ height: 1600px;
+ -webkit-transform-origin: 0 0;
+ }
+.leaflet-marker-icon,
+.leaflet-marker-shadow {
+ display: block;
+ }
+/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
+/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
+.leaflet-container .leaflet-overlay-pane svg,
+.leaflet-container .leaflet-marker-pane img,
+.leaflet-container .leaflet-shadow-pane img,
+.leaflet-container .leaflet-tile-pane img,
+.leaflet-container img.leaflet-image-layer,
+.leaflet-container .leaflet-tile {
+ max-width: none !important;
+ max-height: none !important;
+ }
+
+.leaflet-container.leaflet-touch-zoom {
+ -ms-touch-action: pan-x pan-y;
+ touch-action: pan-x pan-y;
+ }
+.leaflet-container.leaflet-touch-drag {
+ -ms-touch-action: pinch-zoom;
+ /* Fallback for FF which doesn't support pinch-zoom */
+ touch-action: none;
+ touch-action: pinch-zoom;
+}
+.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
+ -ms-touch-action: none;
+ touch-action: none;
+}
+.leaflet-container {
+ -webkit-tap-highlight-color: transparent;
+}
+.leaflet-container a {
+ -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
+}
+.leaflet-tile {
+ filter: inherit;
+ visibility: hidden;
+ }
+.leaflet-tile-loaded {
+ visibility: inherit;
+ }
+.leaflet-zoom-box {
+ width: 0;
+ height: 0;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ z-index: 800;
+ }
+/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
+.leaflet-overlay-pane svg {
+ -moz-user-select: none;
+ }
+
+.leaflet-pane { z-index: 400; }
+
+.leaflet-tile-pane { z-index: 200; }
+.leaflet-overlay-pane { z-index: 400; }
+.leaflet-shadow-pane { z-index: 500; }
+.leaflet-marker-pane { z-index: 600; }
+.leaflet-tooltip-pane { z-index: 650; }
+.leaflet-popup-pane { z-index: 700; }
+
+.leaflet-map-pane canvas { z-index: 100; }
+.leaflet-map-pane svg { z-index: 200; }
+
+.leaflet-vml-shape {
+ width: 1px;
+ height: 1px;
+ }
+.lvml {
+ behavior: url(#default#VML);
+ display: inline-block;
+ position: absolute;
+ }
+
+
+/* control positioning */
+
+.leaflet-control {
+ position: relative;
+ z-index: 800;
+ pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
+ pointer-events: auto;
+ }
+.leaflet-top,
+.leaflet-bottom {
+ position: absolute;
+ z-index: 1000;
+ pointer-events: none;
+ }
+.leaflet-top {
+ top: 0;
+ }
+.leaflet-right {
+ right: 0;
+ }
+.leaflet-bottom {
+ bottom: 0;
+ }
+.leaflet-left {
+ left: 0;
+ }
+.leaflet-control {
+ float: left;
+ clear: both;
+ }
+.leaflet-right .leaflet-control {
+ float: right;
+ }
+.leaflet-top .leaflet-control {
+ margin-top: 10px;
+ }
+.leaflet-bottom .leaflet-control {
+ margin-bottom: 10px;
+ }
+.leaflet-left .leaflet-control {
+ margin-left: 10px;
+ }
+.leaflet-right .leaflet-control {
+ margin-right: 10px;
+ }
+
+
+/* zoom and fade animations */
+
+.leaflet-fade-anim .leaflet-tile {
+ will-change: opacity;
+ }
+.leaflet-fade-anim .leaflet-popup {
+ opacity: 0;
+ -webkit-transition: opacity 0.2s linear;
+ -moz-transition: opacity 0.2s linear;
+ transition: opacity 0.2s linear;
+ }
+.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
+ opacity: 1;
+ }
+.leaflet-zoom-animated {
+ -webkit-transform-origin: 0 0;
+ -ms-transform-origin: 0 0;
+ transform-origin: 0 0;
+ }
+.leaflet-zoom-anim .leaflet-zoom-animated {
+ will-change: transform;
+ }
+.leaflet-zoom-anim .leaflet-zoom-animated {
+ -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
+ -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
+ transition: transform 0.25s cubic-bezier(0,0,0.25,1);
+ }
+.leaflet-zoom-anim .leaflet-tile,
+.leaflet-pan-anim .leaflet-tile {
+ -webkit-transition: none;
+ -moz-transition: none;
+ transition: none;
+ }
+
+.leaflet-zoom-anim .leaflet-zoom-hide {
+ visibility: hidden;
+ }
+
+
+/* cursors */
+
+.leaflet-interactive {
+ cursor: pointer;
+ }
+.leaflet-grab {
+ cursor: -webkit-grab;
+ cursor: -moz-grab;
+ cursor: grab;
+ }
+.leaflet-crosshair,
+.leaflet-crosshair .leaflet-interactive {
+ cursor: crosshair;
+ }
+.leaflet-popup-pane,
+.leaflet-control {
+ cursor: auto;
+ }
+.leaflet-dragging .leaflet-grab,
+.leaflet-dragging .leaflet-grab .leaflet-interactive,
+.leaflet-dragging .leaflet-marker-draggable {
+ cursor: move;
+ cursor: -webkit-grabbing;
+ cursor: -moz-grabbing;
+ cursor: grabbing;
+ }
+
+/* marker & overlays interactivity */
+.leaflet-marker-icon,
+.leaflet-marker-shadow,
+.leaflet-image-layer,
+.leaflet-pane > svg path,
+.leaflet-tile-container {
+ pointer-events: none;
+ }
+
+.leaflet-marker-icon.leaflet-interactive,
+.leaflet-image-layer.leaflet-interactive,
+.leaflet-pane > svg path.leaflet-interactive {
+ pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
+ pointer-events: auto;
+ }
+
+/* visual tweaks */
+
+.leaflet-container {
+ background: #ddd;
+ outline: 0;
+ }
+.leaflet-container a {
+ color: #0078A8;
+ }
+.leaflet-container a.leaflet-active {
+ outline: 2px solid orange;
+ }
+.leaflet-zoom-box {
+ border: 2px dotted #38f;
+ background: rgba(255,255,255,0.5);
+ }
+
+
+/* general typography */
+.leaflet-container {
+ font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
+ }
+
+
+/* general toolbar styles */
+
+.leaflet-bar {
+ box-shadow: 0 1px 5px rgba(0,0,0,0.65);
+ border-radius: 4px;
+ }
+.leaflet-bar a,
+.leaflet-bar a:hover {
+ background-color: #fff;
+ border-bottom: 1px solid #ccc;
+ width: 26px;
+ height: 26px;
+ line-height: 26px;
+ display: block;
+ text-align: center;
+ text-decoration: none;
+ color: black;
+ }
+.leaflet-bar a,
+.leaflet-control-layers-toggle {
+ background-position: 50% 50%;
+ background-repeat: no-repeat;
+ display: block;
+ }
+.leaflet-bar a:hover {
+ background-color: #f4f4f4;
+ }
+.leaflet-bar a:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ }
+.leaflet-bar a:last-child {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ border-bottom: none;
+ }
+.leaflet-bar a.leaflet-disabled {
+ cursor: default;
+ background-color: #f4f4f4;
+ color: #bbb;
+ }
+
+.leaflet-touch .leaflet-bar a {
+ width: 30px;
+ height: 30px;
+ line-height: 30px;
+ }
+.leaflet-touch .leaflet-bar a:first-child {
+ border-top-left-radius: 2px;
+ border-top-right-radius: 2px;
+ }
+.leaflet-touch .leaflet-bar a:last-child {
+ border-bottom-left-radius: 2px;
+ border-bottom-right-radius: 2px;
+ }
+
+/* zoom control */
+
+.leaflet-control-zoom-in,
+.leaflet-control-zoom-out {
+ font: bold 18px 'Lucida Console', Monaco, monospace;
+ text-indent: 1px;
+ }
+
+.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {
+ font-size: 22px;
+ }
+
+
+/* layers control */
+
+.leaflet-control-layers {
+ box-shadow: 0 1px 5px rgba(0,0,0,0.4);
+ background: #fff;
+ border-radius: 5px;
+ }
+.leaflet-control-layers-toggle {
+ background-image: url(images/layers.png);
+ width: 36px;
+ height: 36px;
+ }
+.leaflet-retina .leaflet-control-layers-toggle {
+ background-image: url(images/layers-2x.png);
+ background-size: 26px 26px;
+ }
+.leaflet-touch .leaflet-control-layers-toggle {
+ width: 44px;
+ height: 44px;
+ }
+.leaflet-control-layers .leaflet-control-layers-list,
+.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
+ display: none;
+ }
+.leaflet-control-layers-expanded .leaflet-control-layers-list {
+ display: block;
+ position: relative;
+ }
+.leaflet-control-layers-expanded {
+ padding: 6px 10px 6px 6px;
+ color: #333;
+ background: #fff;
+ }
+.leaflet-control-layers-scrollbar {
+ overflow-y: scroll;
+ overflow-x: hidden;
+ padding-right: 5px;
+ }
+.leaflet-control-layers-selector {
+ margin-top: 2px;
+ position: relative;
+ top: 1px;
+ }
+.leaflet-control-layers label {
+ display: block;
+ }
+.leaflet-control-layers-separator {
+ height: 0;
+ border-top: 1px solid #ddd;
+ margin: 5px -10px 5px -6px;
+ }
+
+/* Default icon URLs */
+.leaflet-default-icon-path {
+ background-image: url(images/marker-icon.png);
+ }
+
+
+/* attribution and scale controls */
+
+.leaflet-container .leaflet-control-attribution {
+ background: #fff;
+ background: rgba(255, 255, 255, 0.7);
+ margin: 0;
+ }
+.leaflet-control-attribution,
+.leaflet-control-scale-line {
+ padding: 0 5px;
+ color: #333;
+ }
+.leaflet-control-attribution a {
+ text-decoration: none;
+ }
+.leaflet-control-attribution a:hover {
+ text-decoration: underline;
+ }
+.leaflet-container .leaflet-control-attribution,
+.leaflet-container .leaflet-control-scale {
+ font-size: 11px;
+ }
+.leaflet-left .leaflet-control-scale {
+ margin-left: 5px;
+ }
+.leaflet-bottom .leaflet-control-scale {
+ margin-bottom: 5px;
+ }
+.leaflet-control-scale-line {
+ border: 2px solid #777;
+ border-top: none;
+ line-height: 1.1;
+ padding: 2px 5px 1px;
+ font-size: 11px;
+ white-space: nowrap;
+ overflow: hidden;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+
+ background: #fff;
+ background: rgba(255, 255, 255, 0.5);
+ }
+.leaflet-control-scale-line:not(:first-child) {
+ border-top: 2px solid #777;
+ border-bottom: none;
+ margin-top: -2px;
+ }
+.leaflet-control-scale-line:not(:first-child):not(:last-child) {
+ border-bottom: 2px solid #777;
+ }
+
+.leaflet-touch .leaflet-control-attribution,
+.leaflet-touch .leaflet-control-layers,
+.leaflet-touch .leaflet-bar {
+ box-shadow: none;
+ }
+.leaflet-touch .leaflet-control-layers,
+.leaflet-touch .leaflet-bar {
+ border: 2px solid rgba(0,0,0,0.2);
+ background-clip: padding-box;
+ }
+
+
+/* popup */
+
+.leaflet-popup {
+ position: absolute;
+ text-align: center;
+ margin-bottom: 20px;
+ }
+.leaflet-popup-content-wrapper {
+ padding: 1px;
+ text-align: left;
+ border-radius: 12px;
+ }
+.leaflet-popup-content {
+ margin: 13px 19px;
+ line-height: 1.4;
+ }
+.leaflet-popup-content p {
+ margin: 18px 0;
+ }
+.leaflet-popup-tip-container {
+ width: 40px;
+ height: 20px;
+ position: absolute;
+ left: 50%;
+ margin-left: -20px;
+ overflow: hidden;
+ pointer-events: none;
+ }
+.leaflet-popup-tip {
+ width: 17px;
+ height: 17px;
+ padding: 1px;
+
+ margin: -10px auto 0;
+
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ }
+.leaflet-popup-content-wrapper,
+.leaflet-popup-tip {
+ background: white;
+ color: #333;
+ box-shadow: 0 3px 14px rgba(0,0,0,0.4);
+ }
+.leaflet-container a.leaflet-popup-close-button {
+ position: absolute;
+ top: 0;
+ right: 0;
+ padding: 4px 4px 0 0;
+ border: none;
+ text-align: center;
+ width: 18px;
+ height: 14px;
+ font: 16px/14px Tahoma, Verdana, sans-serif;
+ color: #c3c3c3;
+ text-decoration: none;
+ font-weight: bold;
+ background: transparent;
+ }
+.leaflet-container a.leaflet-popup-close-button:hover {
+ color: #999;
+ }
+.leaflet-popup-scrolled {
+ overflow: auto;
+ border-bottom: 1px solid #ddd;
+ border-top: 1px solid #ddd;
+ }
+
+.leaflet-oldie .leaflet-popup-content-wrapper {
+ zoom: 1;
+ }
+.leaflet-oldie .leaflet-popup-tip {
+ width: 24px;
+ margin: 0 auto;
+
+ -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
+ filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
+ }
+.leaflet-oldie .leaflet-popup-tip-container {
+ margin-top: -1px;
+ }
+
+.leaflet-oldie .leaflet-control-zoom,
+.leaflet-oldie .leaflet-control-layers,
+.leaflet-oldie .leaflet-popup-content-wrapper,
+.leaflet-oldie .leaflet-popup-tip {
+ border: 1px solid #999;
+ }
+
+
+/* div icon */
+
+.leaflet-div-icon {
+ background: #fff;
+ border: 1px solid #666;
+ }
+
+
+/* Tooltip */
+/* Base styles for the element that has a tooltip */
+.leaflet-tooltip {
+ position: absolute;
+ padding: 6px;
+ background-color: #fff;
+ border: 1px solid #fff;
+ border-radius: 3px;
+ color: #222;
+ white-space: nowrap;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ pointer-events: none;
+ box-shadow: 0 1px 3px rgba(0,0,0,0.4);
+ }
+.leaflet-tooltip.leaflet-clickable {
+ cursor: pointer;
+ pointer-events: auto;
+ }
+.leaflet-tooltip-top:before,
+.leaflet-tooltip-bottom:before,
+.leaflet-tooltip-left:before,
+.leaflet-tooltip-right:before {
+ position: absolute;
+ pointer-events: none;
+ border: 6px solid transparent;
+ background: transparent;
+ content: "";
+ }
+
+/* Directions */
+
+.leaflet-tooltip-bottom {
+ margin-top: 6px;
+}
+.leaflet-tooltip-top {
+ margin-top: -6px;
+}
+.leaflet-tooltip-bottom:before,
+.leaflet-tooltip-top:before {
+ left: 50%;
+ margin-left: -6px;
+ }
+.leaflet-tooltip-top:before {
+ bottom: 0;
+ margin-bottom: -12px;
+ border-top-color: #fff;
+ }
+.leaflet-tooltip-bottom:before {
+ top: 0;
+ margin-top: -12px;
+ margin-left: -6px;
+ border-bottom-color: #fff;
+ }
+.leaflet-tooltip-left {
+ margin-left: -6px;
+}
+.leaflet-tooltip-right {
+ margin-left: 6px;
+}
+.leaflet-tooltip-left:before,
+.leaflet-tooltip-right:before {
+ top: 50%;
+ margin-top: -6px;
+ }
+.leaflet-tooltip-left:before {
+ right: 0;
+ margin-right: -12px;
+ border-left-color: #fff;
+ }
+.leaflet-tooltip-right:before {
+ left: 0;
+ margin-left: -12px;
+ border-right-color: #fff;
+ }
diff --git a/site/assets/css/tabulator.css b/site/assets/css/tabulator.css
new file mode 100755
index 00000000..200f0c5c
--- /dev/null
+++ b/site/assets/css/tabulator.css
@@ -0,0 +1,754 @@
+/* Tabulator v4.1.3 (c) Oliver Folkerd */
+.tabulator {
+ position: relative;
+ font-size: 14px;
+ text-align: left;
+ overflow: hidden;
+ -ms-transform: translatez(0);
+ transform: translatez(0);
+}
+
+.tabulator[tabulator-layout="fitDataFill"] .tabulator-tableHolder .tabulator-table {
+ min-width: 100%;
+}
+
+.tabulator.tabulator-block-select {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.tabulator .tabulator-header {
+ position: relative;
+ box-sizing: border-box;
+ width: 100%;
+ border-bottom: 1px solid #999;
+ color: #ddd;
+ white-space: nowrap;
+ overflow: hidden;
+ -moz-user-select: none;
+ -khtml-user-select: none;
+ -webkit-user-select: none;
+ -o-user-select: none;
+}
+
+.tabulator .tabulator-header .tabulator-col {
+ display: inline-block;
+ position: relative;
+ box-sizing: border-box;
+ border-right: 1px solid #333;
+ text-align: left;
+ vertical-align: bottom;
+ overflow: hidden;
+}
+
+.tabulator .tabulator-header .tabulator-col.tabulator-moving {
+ position: absolute;
+ border: 1px solid #333;
+ background: rgba(80,20,10,0.2);
+ pointer-events: none;
+}
+
+.tabulator .tabulator-header .tabulator-col .tabulator-col-content {
+ box-sizing: border-box;
+ position: relative;
+ padding: 4px;
+}
+
+.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title {
+ box-sizing: border-box;
+ width: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ vertical-align: bottom;
+}
+
+.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor {
+ box-sizing: border-box;
+ width: 100%;
+ border: 1px solid #333;
+ padding: 1px;
+ background: #fff;
+}
+
+.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow {
+ display: inline-block;
+ position: absolute;
+ top: 9px;
+ right: 8px;
+ width: 0;
+ height: 0;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid #bbb;
+}
+
+.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols {
+ position: relative;
+ display: -ms-flexbox;
+ display: flex;
+ border-top: 1px solid #333;
+ overflow: hidden;
+}
+
+.tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols .tabulator-col:last-child {
+ margin-right: -1px;
+}
+
+.tabulator .tabulator-header .tabulator-col:first-child .tabulator-col-resize-handle.prev {
+ display: none;
+}
+
+.tabulator .tabulator-header .tabulator-col.ui-sortable-helper {
+ position: absolute;
+ border: 1px solid #333;
+}
+
+.tabulator .tabulator-header .tabulator-col .tabulator-header-filter {
+ position: relative;
+ box-sizing: border-box;
+ margin-top: 2px;
+ width: 100%;
+ text-align: center;
+}
+
+.tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea {
+ height: auto !important;
+}
+
+.tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg {
+ margin-top: 3px;
+}
+
+.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear {
+ width: 0;
+ height: 0;
+}
+
+.tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title {
+ padding-right: 25px;
+}
+
+.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover {
+ cursor: pointer;
+}
+
+.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="none"] .tabulator-col-content .tabulator-arrow {
+ border-top: none;
+ border-bottom: 6px solid #bbb;
+}
+
+.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="asc"] .tabulator-col-content .tabulator-arrow {
+ border-top: none;
+ border-bottom: 6px solid #666;
+}
+
+.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="desc"] .tabulator-col-content .tabulator-arrow {
+ border-top: 6px solid #666;
+ border-bottom: none;
+}
+
+.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title {
+ -webkit-writing-mode: vertical-rl;
+ -ms-writing-mode: tb-rl;
+ writing-mode: vertical-rl;
+ text-orientation: mixed;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-align: center;
+ align-items: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+}
+
+.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title {
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+
+.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title {
+ padding-right: 0;
+ padding-top: 20px;
+}
+
+.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title {
+ padding-right: 0;
+ padding-bottom: 20px;
+}
+
+.tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-arrow {
+ right: calc(50% - 6px);
+}
+
+.tabulator .tabulator-header .tabulator-frozen {
+ display: inline-block;
+ position: absolute;
+ z-index: 10;
+}
+
+.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left {
+ border-right: 2px solid #333;
+}
+
+.tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right {
+ border-left: 2px solid #333;
+}
+
+.tabulator .tabulator-header .tabulator-calcs-holder {
+ box-sizing: border-box;
+ min-width: 400%;
+ background: rgba(80,20,10,0.2);
+ border-top: 1px solid #333;
+ border-bottom: 1px solid #333;
+ overflow: hidden;
+}
+
+.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row {
+ background: rgba(80,20,10,0.2);
+}
+
+.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
+ display: none;
+}
+
+.tabulator .tabulator-header .tabulator-frozen-rows-holder {
+ min-width: 400%;
+}
+
+.tabulator .tabulator-header .tabulator-frozen-rows-holder:empty {
+ display: none;
+}
+
+.tabulator .tabulator-tableHolder {
+ position: relative;
+ width: 100%;
+ white-space: nowrap;
+ overflow: auto;
+ -webkit-overflow-scrolling: touch;
+}
+
+.tabulator .tabulator-tableHolder:focus {
+ outline: none;
+}
+
+.tabulator .tabulator-tableHolder .tabulator-placeholder {
+ box-sizing: border-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-align: center;
+ align-items: center;
+ width: 100%;
+}
+
+.tabulator .tabulator-tableHolder .tabulator-placeholder[tabulator-render-mode="virtual"] {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 100%;
+}
+
+.tabulator .tabulator-tableHolder .tabulator-placeholder span {
+ display: inline-block;
+ margin: 0 auto;
+ padding: 10px;
+ color: #ccc;
+ font-weight: bold;
+ font-size: 20px;
+}
+
+.tabulator .tabulator-tableHolder .tabulator-table {
+ position: relative;
+ display: inline-block;
+ white-space: nowrap;
+ overflow: visible;
+}
+
+.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs {
+ font-weight: bold;
+ background: rgba(80,20,10,0.2);
+}
+
+.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top {
+ border-bottom: 2px solid #333;
+}
+
+.tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom {
+ border-top: 2px solid #333;
+}
+
+.tabulator .tabulator-footer {
+ padding: 5px 10px;
+ border-top: 1px solid #999;
+ text-align: right;
+ color: #555;
+ font-weight: bold;
+ white-space: nowrap;
+ -ms-user-select: none;
+ user-select: none;
+ -moz-user-select: none;
+ -khtml-user-select: none;
+ -webkit-user-select: none;
+ -o-user-select: none;
+}
+
+.tabulator .tabulator-footer .tabulator-calcs-holder {
+ box-sizing: border-box;
+ width: calc(100% + 20px);
+ margin: -5px -10px 5px -10px;
+ text-align: left;
+ background: rgba(80,20,10,0.2);
+ border-bottom: 1px solid #333;
+ border-top: 1px solid #333;
+ overflow: hidden;
+}
+
+.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row {
+ background: rgba(80,20,10,0.2);
+}
+
+.tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle {
+ display: none;
+}
+
+.tabulator .tabulator-footer .tabulator-calcs-holder:only-child {
+ margin-bottom: -5px;
+ border-bottom: none;
+}
+
+.tabulator .tabulator-footer .tabulator-pages {
+ margin: 0 7px;
+}
+
+.tabulator .tabulator-footer .tabulator-page {
+ display: inline-block;
+ margin: 0 2px;
+ padding: 2px 5px;
+ border: 1px solid #333;
+ border-radius: 3px;
+ background: rgba(255, 255, 255, 0.2);
+ color: #555;
+ font-family: inherit;
+ font-weight: inherit;
+ font-size: inherit;
+}
+
+.tabulator .tabulator-footer .tabulator-page.active {
+ color: #d00;
+}
+
+.tabulator .tabulator-footer .tabulator-page:disabled {
+ opacity: .5;
+}
+
+.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover {
+ cursor: pointer;
+ background: rgba(0, 0, 0, 0.2);
+ color: #fff;
+}
+
+.tabulator .tabulator-col-resize-handle {
+ position: absolute;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ width: 5px;
+}
+
+.tabulator .tabulator-col-resize-handle.prev {
+ left: 0;
+ right: auto;
+}
+
+.tabulator .tabulator-col-resize-handle:hover {
+ cursor: ew-resize;
+}
+
+.tabulator .tabulator-loader {
+ position: absolute;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-align: center;
+ align-items: center;
+ top: 0;
+ left: 0;
+ z-index: 100;
+ height: 100%;
+ width: 100%;
+ background: rgba(0, 0, 0, 0.4);
+ text-align: center;
+}
+
+.tabulator .tabulator-loader .tabulator-loader-msg {
+ display: inline-block;
+ margin: 0 auto;
+ padding: 10px 20px;
+ border-radius: 4px;
+ background: #fff;
+ font-weight: bold;
+ font-size: 16px;
+}
+
+.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-loading {
+ border: 4px solid #333;
+ color: #000;
+}
+
+.tabulator .tabulator-loader .tabulator-loader-msg.tabulator-error {
+ color: #000;
+}
+
+.tabulator-row {
+ position: relative;
+ box-sizing: border-box;
+ min-height: 22px;
+}
+
+.tabulator-row.tabulator-row-even {
+}
+
+.tabulator-row.tabulator-selectable:hover {
+ cursor: pointer;
+}
+
+.tabulator-row.tabulator-selected {
+ background-color: #9ABCEA;
+}
+
+.tabulator-row.tabulator-selected:hover {
+ background-color: #555;
+ cursor: pointer;
+}
+
+.tabulator-row.tabulator-row-moving {
+ border: 1px solid #000;
+ background: #fff;
+}
+
+.tabulator-row.tabulator-moving {
+ position: absolute;
+ border-top: 1px solid #333;
+ border-bottom: 1px solid #333;
+ pointer-events: none;
+ z-index: 15;
+}
+
+.tabulator-row .tabulator-row-resize-handle {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ height: 5px;
+}
+
+.tabulator-row .tabulator-row-resize-handle.prev {
+ top: 0;
+ bottom: auto;
+}
+
+.tabulator-row .tabulator-row-resize-handle:hover {
+ cursor: ns-resize;
+}
+
+.tabulator-row .tabulator-frozen {
+ display: inline-block;
+ position: absolute;
+ background-color: inherit;
+ z-index: 10;
+}
+
+.tabulator-row .tabulator-frozen.tabulator-frozen-left {
+ border-right: 2px solid #333;
+}
+
+.tabulator-row .tabulator-frozen.tabulator-frozen-right {
+ border-left: 2px solid #333;
+}
+
+.tabulator-row .tabulator-responsive-collapse {
+ box-sizing: border-box;
+ padding: 5px;
+ border-top: 1px solid #333;
+ border-bottom: 1px solid #333;
+}
+
+.tabulator-row .tabulator-responsive-collapse:empty {
+ display: none;
+}
+
+.tabulator-row .tabulator-responsive-collapse table {
+ font-size: 14px;
+}
+
+.tabulator-row .tabulator-responsive-collapse table tr td {
+ position: relative;
+}
+
+.tabulator-row .tabulator-responsive-collapse table tr td:first-of-type {
+ padding-right: 10px;
+}
+
+.tabulator-row .tabulator-cell {
+ display: inline-block;
+ position: relative;
+ box-sizing: border-box;
+ padding: 4px;
+ border-right: 1px solid #333;
+ vertical-align: middle;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.tabulator-row .tabulator-cell.tabulator-editing {
+ border: 1px solid #1D68CD;
+ padding: 0;
+}
+
+.tabulator-row .tabulator-cell.tabulator-editing input, .tabulator-row .tabulator-cell.tabulator-editing select {
+ border: 1px;
+ background: transparent;
+}
+
+.tabulator-row .tabulator-cell.tabulator-validation-fail {
+ border: 1px solid #dd0000;
+}
+
+.tabulator-row .tabulator-cell.tabulator-validation-fail input, .tabulator-row .tabulator-cell.tabulator-validation-fail select {
+ border: 1px;
+ background: transparent;
+ color: #dd0000;
+}
+
+.tabulator-row .tabulator-cell:first-child .tabulator-col-resize-handle.prev {
+ display: none;
+}
+
+.tabulator-row .tabulator-cell.tabulator-row-handle {
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -ms-flex-align: center;
+ align-items: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -moz-user-select: none;
+ -khtml-user-select: none;
+ -webkit-user-select: none;
+ -o-user-select: none;
+}
+
+.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box {
+ width: 80%;
+}
+
+.tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar {
+ width: 100%;
+ height: 3px;
+ margin-top: 2px;
+ background: #666;
+}
+
+.tabulator-row .tabulator-cell .tabulator-data-tree-branch {
+ display: inline-block;
+ vertical-align: middle;
+ height: 9px;
+ width: 7px;
+ margin-top: -9px;
+ margin-right: 5px;
+ border-bottom-left-radius: 1px;
+ border-left: 2px solid #333;
+ border-bottom: 2px solid #333;
+}
+
+.tabulator-row .tabulator-cell .tabulator-data-tree-control {
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -ms-flex-align: center;
+ align-items: center;
+ vertical-align: middle;
+ height: 11px;
+ width: 11px;
+ margin-right: 5px;
+ border: 1px solid #333;
+ border-radius: 2px;
+ background: rgba(0, 0, 0, 0.1);
+ overflow: hidden;
+}
+
+.tabulator-row .tabulator-cell .tabulator-data-tree-control:hover {
+ cursor: pointer;
+ background: rgba(0, 0, 0, 0.2);
+}
+
+.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse {
+ display: inline-block;
+ position: relative;
+ height: 7px;
+ width: 1px;
+ background: transparent;
+}
+
+.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after {
+ position: absolute;
+ content: "";
+ left: -3px;
+ top: 3px;
+ height: 1px;
+ width: 7px;
+}
+
+.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand {
+ display: inline-block;
+ position: relative;
+ height: 7px;
+ width: 1px;
+ background: #333;
+}
+
+.tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after {
+ position: absolute;
+ content: "";
+ left: -3px;
+ top: 3px;
+ height: 1px;
+ width: 7px;
+ background: #333;
+}
+
+.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle {
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -ms-flex-align: center;
+ align-items: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -moz-user-select: none;
+ -khtml-user-select: none;
+ -webkit-user-select: none;
+ -o-user-select: none;
+ height: 15px;
+ width: 15px;
+ border-radius: 4px;
+ background: #666;
+ color: #fff;
+ font-weight: bold;
+ font-size: 1.1em;
+}
+
+.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover {
+ opacity: .7;
+}
+
+.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close {
+ display: initial;
+}
+
+.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open {
+ display: none;
+}
+
+.tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close {
+ display: none;
+}
+
+.tabulator-row.tabulator-group {
+ box-sizing: border-box;
+ border-bottom: 1px solid #999;
+ border-right: 1px solid #333;
+ border-top: 1px solid #999;
+ padding: 5px;
+ padding-left: 10px;
+ background: #333;
+ font-weight: bold;
+ min-width: 100%;
+}
+
+.tabulator-row.tabulator-group:hover {
+ cursor: pointer;
+ background-color: rgba(0, 0, 0, 0.1);
+}
+
+.tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow {
+ margin-right: 10px;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-top: 6px solid #666;
+ border-bottom: 0;
+}
+
+.tabulator-row.tabulator-group.tabulator-group-level-1 .tabulator-arrow {
+ margin-left: 20px;
+}
+
+.tabulator-row.tabulator-group.tabulator-group-level-2 .tabulator-arrow {
+ margin-left: 40px;
+}
+
+.tabulator-row.tabulator-group.tabulator-group-level-3 .tabulator-arrow {
+ margin-left: 60px;
+}
+
+.tabulator-row.tabulator-group.tabulator-group-level-4 .tabulator-arrow {
+ margin-left: 80px;
+}
+
+.tabulator-row.tabulator-group.tabulator-group-level-5 .tabulator-arrow {
+ margin-left: 100px;
+}
+
+.tabulator-row.tabulator-group .tabulator-arrow {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-right: 16px;
+ border-top: 6px solid transparent;
+ border-bottom: 6px solid transparent;
+ border-right: 0;
+ border-left: 6px solid #666;
+ vertical-align: middle;
+}
+
+.tabulator-row.tabulator-group span {
+ margin-left: 10px;
+ color: #d00;
+}
+
+.tabulator-edit-select-list {
+ position: absolute;
+ display: inline-block;
+ box-sizing: border-box;
+ max-height: 200px;
+ background: #fff;
+ border: 1px solid #333;
+ font-size: 14px;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ z-index: 10000;
+}
+
+.tabulator-edit-select-list .tabulator-edit-select-list-item {
+ padding: 4px;
+ color: #333;
+}
+
+.tabulator-edit-select-list .tabulator-edit-select-list-item.active {
+ color: #fff;
+ background: #1D68CD;
+}
+
+.tabulator-edit-select-list .tabulator-edit-select-list-item:hover {
+ cursor: pointer;
+ color: #fff;
+ background: #1D68CD;
+}
+
+.tabulator-edit-select-list .tabulator-edit-select-list-group {
+ border-bottom: 1px solid #333;
+ padding: 4px;
+ padding-top: 6px;
+ color: #333;
+ font-weight: bold;
+}