summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfr4nc0is <fps.courriel+github@gmail.com>2022-10-16 11:38:10 +0200
committerfr4nc0is <fps.courriel+github@gmail.com>2022-10-16 11:57:47 +0200
commit6c73885a7e0f1208a82846ffde698a8750cdeb7c (patch)
tree537cf685d1c3e8d36463b3d18a6c78bc3eac9490
parenta4067cd856fea9e842f71a3b15012f5ba54ef567 (diff)
added now plugin and updated layout
-rw-r--r--glances/outputs/static/css/style.scss9
-rw-r--r--glances/outputs/static/js/App.vue221
-rw-r--r--glances/outputs/static/js/components/plugin-alert.vue4
-rw-r--r--glances/outputs/static/js/components/plugin-cloud.vue2
-rw-r--r--glances/outputs/static/js/components/plugin-connections.vue2
-rw-r--r--glances/outputs/static/js/components/plugin-diskio.vue2
-rw-r--r--glances/outputs/static/js/components/plugin-folders.vue2
-rw-r--r--glances/outputs/static/js/components/plugin-fs.vue2
-rw-r--r--glances/outputs/static/js/components/plugin-ip.vue2
-rw-r--r--glances/outputs/static/js/components/plugin-irq.vue2
-rw-r--r--glances/outputs/static/js/components/plugin-network.vue2
-rw-r--r--glances/outputs/static/js/components/plugin-now.vue20
-rw-r--r--glances/outputs/static/js/components/plugin-ports.vue2
-rw-r--r--glances/outputs/static/js/components/plugin-quicklook.vue2
-rw-r--r--glances/outputs/static/js/components/plugin-raid.vue2
-rw-r--r--glances/outputs/static/js/components/plugin-sensors.vue2
-rw-r--r--glances/outputs/static/js/components/plugin-system.vue2
-rw-r--r--glances/outputs/static/js/components/plugin-uptime.vue2
-rw-r--r--glances/outputs/static/js/components/plugin-wifi.vue2
-rw-r--r--glances/outputs/static/public/glances.js12
20 files changed, 164 insertions, 132 deletions
diff --git a/glances/outputs/static/css/style.scss b/glances/outputs/static/css/style.scss
index 502e1b37..ba76e0b5 100644
--- a/glances/outputs/static/css/style.scss
+++ b/glances/outputs/static/css/style.scss
@@ -20,12 +20,11 @@ body {
text-align: right;
}
-.top-plugin {
- margin-bottom: 20px;
-}
-
.plugin {
margin-bottom: 20px;
+ .table:last-child {
+ margin-bottom: 0;
+ }
}
.plugin.table-row-group .table-row:last-child .table-cell {
padding-bottom: 20px;
@@ -116,7 +115,7 @@ body {
white-space: nowrap;
}
-#quicklook-plugin {
+#quicklook {
.progress {
margin-bottom: 0px;
min-width: 100px;
diff --git a/glances/outputs/static/js/App.vue b/glances/outputs/static/js/App.vue
index 7911fdc8..cd6dcf84 100644
--- a/glances/outputs/static/js/App.vue
+++ b/glances/outputs/static/js/App.vue
@@ -4,8 +4,8 @@
<div class="loader">Loading...</div>
</div>
<glances-help v-else-if="args.help_tag"></glances-help>
- <div v-else class="container-fluid">
- <div class="top-plugin">
+ <main v-else>
+ <div class="container-fluid">
<div class="row">
<div class="col-sm-24">
<div class="pull-left">
@@ -19,6 +19,8 @@
</div>
</div>
</div>
+ </div>
+ <div class="container-fluid">
<div class="row">
<div class="col-sm-24">
<div class="pull-left">
@@ -26,115 +28,124 @@
</div>
</div>
</div>
- </div>
- <div class="row">
- <div class="hidden-xs hidden-sm hidden-md col-lg-6" v-if="!args.disable_quicklook">
- <glances-plugin-quicklook :data="data"></glances-plugin-quicklook>
- </div>
- <div class="col-sm-6 col-md-8 col-lg-6" v-if="!args.disable_cpu && !args.percpu">
- <glances-plugin-cpu :data="data"></glances-plugin-cpu>
- </div>
- <div class="col-sm-12 col-md-8 col-lg-6" v-if="!args.disable_cpu && args.percpu">
- <glances-plugin-percpu :data="data"></glances-plugin-percpu>
- </div>
- <div class="col-sm-6 col-md-4 col-lg-3" v-if="!args.disable_gpu && hasGpu">
- <glances-plugin-gpu :data="data"></glances-plugin-gpu>
- </div>
- <div class="col-sm-6 col-md-4 col-lg-3" v-if="!args.disable_mem">
- <glances-plugin-mem :data="data"></glances-plugin-mem>
- </div>
- <!-- NOTE: display if MEM enabled and GPU disabled -->
- <div
- v-if="!args.disable_mem && !(!args.disable_gpu && hasGpu)"
- class="hidden-xs hidden-sm col-md-4 col-lg-3"
- >
- <glances-plugin-mem-more :data="data"></glances-plugin-mem-more>
- </div>
- <div class="col-sm-6 col-md-4 col-lg-3" v-if="!args.disable_memswap">
- <glances-plugin-memswap :data="data"></glances-plugin-memswap>
- </div>
- <div class="col-sm-6 col-md-4 col-lg-3" v-if="!args.disable_load">
- <glances-plugin-load :data="data"></glances-plugin-load>
+ <div class="row">
+ <div class="hidden-xs hidden-sm hidden-md col-lg-6" v-if="!args.disable_quicklook">
+ <glances-plugin-quicklook :data="data"></glances-plugin-quicklook>
+ </div>
+ <div class="col-sm-6 col-md-8 col-lg-6" v-if="!args.disable_cpu && !args.percpu">
+ <glances-plugin-cpu :data="data"></glances-plugin-cpu>
+ </div>
+ <div class="col-sm-12 col-md-8 col-lg-6" v-if="!args.disable_cpu && args.percpu">
+ <glances-plugin-percpu :data="data"></glances-plugin-percpu>
+ </div>
+ <div class="col-sm-6 col-md-4 col-lg-3" v-if="!args.disable_gpu && hasGpu">
+ <glances-plugin-gpu :data="data"></glances-plugin-gpu>
+ </div>
+ <div class="col-sm-6 col-md-4 col-lg-3" v-if="!args.disable_mem">
+ <glances-plugin-mem :data="data"></glances-plugin-mem>
+ </div>
+ <!-- NOTE: display if MEM enabled and GPU disabled -->
+ <div
+ v-if="!args.disable_mem && !(!args.disable_gpu && hasGpu)"
+ class="hidden-xs hidden-sm col-md-4 col-lg-3"
+ >
+ <glances-plugin-mem-more :data="data"></glances-plugin-mem-more>
+ </div>
+ <div class="col-sm-6 col-md-4 col-lg-3" v-if="!args.disable_memswap">
+ <glances-plugin-memswap :data="data"></glances-plugin-memswap>
+ </div>
+ <div class="col-sm-6 col-md-4 col-lg-3" v-if="!args.disable_load">
+ <glances-plugin-load :data="data"></glances-plugin-load>
+ </div>
</div>
</div>
- <div class="row">
- <div class="col-sm-6 sidebar" v-if="!args.disable_left_sidebar">
- <div class="table">
- <glances-plugin-network
- id="plugin-network"
- class="plugin table-row-group"
- v-if="!args.disable_network"
- :data="data"
- ></glances-plugin-network>
- <glances-plugin-connections
- id="plugin-connections"
- class="plugin table-row-group"
- v-if="isLinux && !args.disable_connections"
- :data="data"
- ></glances-plugin-connections>
- <glances-plugin-wifi
- id="plugin-wifi"
- class="plugin table-row-group"
- v-if="!args.disable_wifi"
- :data="data"
- ></glances-plugin-wifi>
- <glances-plugin-ports
- id="plugin-ports"
- class="plugin table-row-group"
- v-if="!args.disable_ports"
- :data="data"
- ></glances-plugin-ports>
- <glances-plugin-diskio
- id="plugin-diskio"
- class="plugin table-row-group"
- v-if="!args.disable_diskio"
- :data="data"
- ></glances-plugin-diskio>
- <glances-plugin-fs
- id="plugin-fs"
- class="plugin table-row-group"
- v-if="!args.disable_fs"
- :data="data"
- ></glances-plugin-fs>
- <glances-plugin-irq
- id="plugin-irq"
- class="plugin table-row-group"
- v-if="args.enable_irq"
- :data="data"
- ></glances-plugin-irq>
- <glances-plugin-folders
- id="plugin-folders"
- class="plugin table-row-group"
- v-if="!args.disable_folders"
- :data="data"
- ></glances-plugin-folders>
- <glances-plugin-raid
- id="plugin-raid"
- class="plugin table-row-group"
- v-if="!args.raid"
+ <div class="container-fluid">
+ <div class="row">
+ <div class="col-sm-6 sidebar" v-if="!args.disable_left_sidebar">
+ <div class="table">
+ <glances-plugin-network
+ id="plugin-network"
+ class="plugin table-row-group"
+ v-if="!args.disable_network"
+ :data="data"
+ ></glances-plugin-network>
+ <glances-plugin-connections
+ id="plugin-connections"
+ class="plugin table-row-group"
+ v-if="isLinux && !args.disable_connections"
+ :data="data"
+ ></glances-plugin-connections>
+ <glances-plugin-wifi
+ id="plugin-wifi"
+ class="plugin table-row-group"
+ v-if="!args.disable_wifi"
+ :data="data"
+ ></glances-plugin-wifi>
+ <glances-plugin-ports
+ id="plugin-ports"
+ class="plugin table-row-group"
+ v-if="!args.disable_ports"
+ :data="data"
+ ></glances-plugin-ports>
+ <glances-plugin-diskio
+ id="plugin-diskio"
+ class="plugin table-row-group"
+ v-if="!args.disable_diskio"
+ :data="data"
+ ></glances-plugin-diskio>
+ <glances-plugin-fs
+ id="plugin-fs"
+ class="plugin table-row-group"
+ v-if="!args.disable_fs"
+ :data="data"
+ ></glances-plugin-fs>
+ <glances-plugin-irq
+ id="plugin-irq"
+ class="plugin table-row-group"
+ v-if="args.enable_irq"
+ :data="data"
+ ></glances-plugin-irq>
+ <glances-plugin-folders
+ id="plugin-folders"
+ class="plugin table-row-group"
+ v-if="!args.disable_folders"
+ :data="data"
+ ></glances-plugin-folders>
+ <glances-plugin-raid
+ id="plugin-raid"
+ class="plugin table-row-group"
+ v-if="!args.raid"
+ :data="data"
+ ></glances-plugin-raid>
+ <glances-plugin-sensors
+ id="plugin-sensors"
+ class="plugin table-row-group"
+ v-if="!args.disable_sensors"
+ :data="data"
+ ></glances-plugin-sensors>
+ </div>
+ </div>
+ <div class="col-sm-18">
+ <glances-plugin-docker
+ v-if="!args.disable_docker"
:data="data"
- ></glances-plugin-raid>
- <glances-plugin-sensors
- id="plugin-sensors"
- class="plugin table-row-group"
- v-if="!args.disable_sensors"
+ ></glances-plugin-docker>
+ <glances-plugin-process :data="data"></glances-plugin-process>
+ <glances-plugin-alert
+ v-if="!args.disable_alert"
:data="data"
- ></glances-plugin-sensors>
+ ></glances-plugin-alert>
</div>
</div>
- <div class="col-sm-18">
- <glances-plugin-docker
- v-if="!args.disable_docker"
- :data="data"
- ></glances-plugin-docker>
- <glances-plugin-alert
- v-if="!args.disable_alert"
- :data="data"
- ></glances-plugin-alert>
- <glances-plugin-process :data="data"></glances-plugin-process>
+ </div>
+ <div class="container-fluid">
+ <div class="row">
+ <div class="col-sm-24">
+ <glances-plugin-now :data="data"></glances-plugin-now>
+ </div>
</div>
</div>
- </div>
+ </main>
</template>
<script>
@@ -159,6 +170,7 @@ import GlancesPluginMem from './components/plugin-mem.vue';
import GlancesPluginMemMore from './components/plugin-mem-more.vue';
import GlancesPluginMemswap from './components/plugin-memswap.vue';
import GlancesPluginNetwork from './components/plugin-network.vue';
+import GlancesPluginNow from './components/plugin-now.vue';
import GlancesPluginPercpu from './components/plugin-percpu.vue';
import GlancesPluginPorts from './components/plugin-ports.vue';
import GlancesPluginProcess from './components/plugin-process.vue';
@@ -188,6 +200,7 @@ export default {
GlancesPluginMemMore,
GlancesPluginMemswap,
GlancesPluginNetwork,
+ GlancesPluginNow,
GlancesPluginPercpu,
GlancesPluginPorts,
GlancesPluginProcess,
@@ -268,7 +281,7 @@ export default {
hotkeys('t', () => {
this.store.args.sort_processes_key = 'timemillis';
});
-
+
// A => Enable/disable AMPs
hotkeys('shift+A', () => {
this.store.args.disable_amps = !this.store.args.disable_amps;
diff --git a/glances/outputs/static/js/components/plugin-alert.vue b/glances/outputs/static/js/components/plugin-alert.vue
index 9affe21d..73db0502 100644
--- a/glances/outputs/static/js/components/plugin-alert.vue
+++ b/glances/outputs/static/js/components/plugin-alert.vue
@@ -1,12 +1,12 @@
<template>
- <div>
+ <div class="plugin">
<section id="alerts">
<span class="title" v-if="hasAlerts">
Warning or critical alerts (last {{ countAlerts }} entries)
</span>
<span class="title" v-else>No warning or critical alert detected</span>
</section>
- <section id="alert" class="plugin">
+ <section id="alert">
<div class="table">
<div class="table-row" v-for="(alert, alertId) in alerts" :key="alertId">
<div class="table-cell text-left">
diff --git a/glances/outputs/static/js/components/plugin-cloud.vue b/glances/outputs/static/js/components/plugin-cloud.vue
index 796cec66..1cebc903 100644
--- a/glances/outputs/static/js/components/plugin-cloud.vue
+++ b/glances/outputs/static/js/components/plugin-cloud.vue
@@ -1,5 +1,5 @@
<template>
- <section id="cloud">
+ <section id="cloud" class="plugin" v-if="instance || provider">
<span class="title">{{ provider }}</span> {{ instance }}
</section>
</template>
diff --git a/glances/outputs/static/js/components/plugin-connections.vue b/glances/outputs/static/js/components/plugin-connections.vue
index 6b5de96a..5cf65ecd 100644
--- a/glances/outputs/static/js/components/plugin-connections.vue
+++ b/glances/outputs/static/js/components/plugin-connections.vue
@@ -1,5 +1,5 @@
<template>
- <section>
+ <section class="plugin" id="connections">
<div class="table-row">
<div class="table-cell text-left title">TCP CONNECTIONS</div>
<div class="table-cell"></div>
diff --git a/glances/outputs/static/js/components/plugin-diskio.vue b/glances/outputs/static/js/components/plugin-diskio.vue
index 739a3f02..143879f2 100644
--- a/glances/outputs/static/js/components/plugin-diskio.vue
+++ b/glances/outputs/static/js/components/plugin-diskio.vue
@@ -1,5 +1,5 @@
<template>
- <section>
+ <section class="plugin" id="diskio">
<div class="table-row" v-if="disks.length > 0">
<div class="table-cell text-left title">DISK I/O</div>
<div class="table-cell" v-show="!args.diskio_iops">R/s</div>
diff --git a/glances/outputs/static/js/components/plugin-folders.vue b/glances/outputs/static/js/components/plugin-folders.vue
index 69f92526..7e6f704b 100644
--- a/glances/outputs/static/js/components/plugin-folders.vue
+++ b/glances/outputs/static/js/components/plugin-folders.vue
@@ -1,5 +1,5 @@
<template>
- <section>
+ <section class="plugin" id="folders">
<div class="table-row" v-if="folders.length > 0">
<div class="table-cell text-left title">FOLDERS</div>
<div class="table-cell"></div>
diff --git a/glances/outputs/static/js/components/plugin-fs.vue b/glances/outputs/static/js/components/plugin-fs.vue
index eeb0df95..f7dd5880 100644
--- a/glances/outputs/static/js/components/plugin-fs.vue
+++ b/glances/outputs/static/js/components/plugin-fs.vue
@@ -1,5 +1,5 @@
<template>
- <section>
+ <section class="plugin" id="fs">
<div class="table-row">
<div class="table-cell text-left title">FILE SYS</div>
<div class="table-cell">
diff --git a/glances/outputs/static/js/components/plugin-ip.vue b/glances/outputs/static/js/components/plugin-ip.vue
index 17be6b93..01c9d4c8 100644
--- a/glances/outputs/static/js/components/plugin-ip.vue
+++ b/glances/outputs/static/js/components/plugin-ip.vue
@@ -1,5 +1,5 @@
<template>
- <section id="ip" v-if="address != undefined">
+ <section class="plugin" id="ip" v-if="address != undefined">
<span v-if="address != undefined" class="title">IP</span>
<span v-if="address != undefined">{{ address }}/{{ maskCdir }}</span>
<span v-if="publicAddress != undefined" class="title">Pub</span>
diff --git a/glances/outputs/static/js/components/plugin-irq.vue b/glances/outputs/static/js/components/plugin-irq.vue
index df093455..174230f3 100644
--- a/glances/outputs/static/js/components/plugin-irq.vue
+++ b/glances/outputs/static/js/components/plugin-irq.vue
@@ -1,5 +1,5 @@
<template>
- <section>
+ <section class="plugin" id="irq">
<div class="table-row" v-if="irqs.length > 0">
<div class="table-cell text-left title">IRQ</div>
<div class="table-cell"></div>
diff --git a/glances/outputs/static/js/components/plugin-network.vue b/glances/outputs/static/js/components/plugin-network.vue
index b4846db5..3eb42bcf 100644
--- a/glances/outputs/static/js/components/plugin-network.vue
+++ b/glances/outputs/static/js/components/plugin-network.vue
@@ -1,5 +1,5 @@
<template>
- <section>
+ <section class="plugin" id="network">
<div class="table-row">
<div class="table-cell text-left title">NETWORK</div>
<div class="table-cell" v-show="!args.network_cumul && !args.network_sum">Rx/s</div>
diff --git a/glances/outputs/static/js/components/plugin-now.vue b/glances/outputs/static/js/components/plugin-now.vue
new file mode 100644
index 00000000..f35688c5
--- /dev/null
+++ b/glances/outputs/static/js/components/plugin-now.vue
@@ -0,0 +1,20 @@
+<template>
+ <section id="now" class="plugin">
+ <span>{{ value }}</span>
+ </section>
+</template>
+
+<script>
+export default {
+ props: {
+ data: {
+ type: Object
+ }
+ },
+ computed: {
+ value() {
+ return this.data.stats['now'];
+ }
+ }
+};
+</script> \ No newline at end of file
diff --git a/glances/outputs/static/js/components/plugin-ports.vue b/glances/outputs/static/js/components/plugin-ports.vue
index c2801c6a..040a75e5 100644
--- a/glances/outputs/static/js/components/plugin-ports.vue
+++ b/glances/outputs/static/js/components/plugin-ports.vue
@@ -1,5 +1,5 @@
<template>
- <section>
+ <section class="plugin" id="ports">
<div class="table-row" v-for="(port, portId) in ports" :key="portId">
<div class="table-cell text-left">
<!-- prettier-ignore -->
diff --git a/glances/outputs/static/js/components/plugin-quicklook.vue b/glances/outputs/static/js/components/plugin-quicklook.vue
index aa12f553..1b806275 100644
--- a/glances/outputs/static/js/components/plugin-quicklook.vue
+++ b/glances/outputs/static/js/components/plugin-quicklook.vue
@@ -1,5 +1,5 @@
<template>
- <section id="quicklook-plugin" class="plugin">
+ <section id="quicklook" class="plugin">
<div class="cpu-name">
{{ cpu_name }}
</div>
diff --git a/glances/outputs/static/js/components/plugin-raid.vue b/glances/outputs/static/js/components/plugin-raid.vue
index 67c75e82..4c32daf6 100644
--- a/glances/outputs/static/js/components/plugin-raid.vue
+++ b/glances/outputs/static/js/components/plugin-raid.vue
@@ -1,5 +1,5 @@
<template>
- <section>
+ <section class="plugin" id="raid">
<div class="table-row" v-if="hasDisks">
<div class="table-cell text-left title">RAID disks</div>
<div class="table-cell">Used</div>
diff --git a/glances/outputs/static/js/components/plugin-sensors.vue b/glances/outputs/static/js/components/plugin-sensors.vue
index bce35429..d1c44a3b 100644
--- a/glances/outputs/static/js/components/plugin-sensors.vue
+++ b/glances/outputs/static/js/components/plugin-sensors.vue
@@ -1,5 +1,5 @@
<template>
- <section>
+ <section class="plugin" id="sensors">
<div class="table-row" v-if="sensors.length > 0">
<div class="table-cell text-left title">SENSORS</div>
</div>
diff --git a/glances/outputs/static/js/components/plugin-system.vue b/glances/outputs/static/js/components/plugin-system.vue
index 68e4c769..85758164 100644
--- a/glances/outputs/static/js/components/plugin-system.vue
+++ b/glances/outputs/static/js/components/plugin-system.vue
@@ -1,5 +1,5 @@
<template>
- <section id="system">
+ <section class="plugin" id="system">
<span v-if="isDisconnected" class="critical">Disconnected from</span>
<span class="title">{{ hostname }}</span>
<span v-if="isLinux" class="hidden-xs hidden-sm">
diff --git a/glances/outputs/static/js/components/plugin-uptime.vue b/glances/outputs/static/js/components/plugin-uptime.vue
index 7b28e9aa..7c72b415 100644
--- a/glances/outputs/static/js/components/plugin-uptime.vue
+++ b/glances/outputs/static/js/components/plugin-uptime.vue
@@ -1,5 +1,5 @@
<template>
- <section id="uptime">
+ <section class="plugin" id="uptime">
<span>Uptime: {{ value }}</span>
</section>
</template>
diff --git a/glances/outputs/static/js/components/plugin-wifi.vue b/glances/outputs/static/js/components/plugin-wifi.vue
index 6999e1bd..b4d43343 100644
--- a/glances/outputs/static/js/components/plugin-wifi.vue
+++ b/glances/outputs/static/js/components/plugin-wifi.vue
@@ -1,5 +1,5 @@
<template>
- <section>
+ <section class="plugin" id="wifi">
<div class="table-row" v-if="hotspots.length > 0">
<div class="table-cell text-left title">WIFI</div>
<div class="table-cell"></div>
diff --git a/glances/outputs/static/public/glances.js b/glances/outputs/static/public/glances.js
index e5fb4e2e..a29a27fd 100644
--- a/glances/outputs/static/public/glances.js
+++ b/glances/outputs/static/public/glances.js
@@ -1,10 +1,10 @@
-(()=>{var t={895:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var r=n(8081),i=n.n(r),s=n(3645),o=n.n(s)()(i());o.push([t.id,'/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: none;\n text-decoration: underline;\n text-decoration: underline dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type="button"],\ninput[type="reset"],\ninput[type="submit"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type="checkbox"],\ninput[type="radio"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type="number"]::-webkit-inner-spin-button,\ninput[type="number"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type="search"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\ninput[type="search"]::-webkit-search-cancel-button,\ninput[type="search"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role="button"] {\n cursor: pointer;\n}\n.container {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n.row {\n margin-right: -15px;\n margin-left: -15px;\n}\n.row-no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n.row-no-gutters [class*="col-"] {\n padding-right: 0;\n padding-left: 0;\n}\n.col-xs-1,\n.col-sm-1,\n.col-md-1,\n.col-lg-1,\n.col-xs-2,\n.col-sm-2,\n.col-md-2,\n.col-lg-2,\n.col-xs-3,\n.col-sm-3,\n.col-md-3,\n.col-lg-3,\n.col-xs-4,\n.col-sm-4,\n.col-md-4,\n.col-lg-4,\n.col-xs-5,\n.col-sm-5,\n.col-md-5,\n.col-lg-5,\n.col-xs-6,\n.col-sm-6,\n.col-md-6,\n.col-lg-6,\n.col-xs-7,\n.col-sm-7,\n.col-md-7,\n.col-lg-7,\n.col-xs-8,\n.col-sm-8,\n.col-md-8,\n.col-lg-8,\n.col-xs-9,\n.col-sm-9,\n.col-md-9,\n.col-lg-9,\n.col-xs-10,\n.col-sm-10,\n.col-md-10,\n.col-lg-10,\n.col-xs-11,\n.col-sm-11,\n.col-md-11,\n.col-lg-11,\n.col-xs-12,\n.col-sm-12,\n.col-md-12,\n.col-lg-12,\n.col-xs-13,\n.col-sm-13,\n.col-md-13,\n.col-lg-13,\n.col-xs-14,\n.col-sm-14,\n.col-md-14,\n.col-lg-14,\n.col-xs-15,\n.col-sm-15,\n.col-md-15,\n.col-lg-15,\n.col-xs-16,\n.col-sm-16,\n.col-md-16,\n.col-lg-16,\n.c