diff --git a/html/pages/about.tpl b/html/pages/about.tpl index 2fa8684..de9417c 100644 --- a/html/pages/about.tpl +++ b/html/pages/about.tpl @@ -60,7 +60,7 @@
- The webserver is built using the great esp-httpd + The webserver was built using the great esp-httpd library by Jeroen Domburg.
diff --git a/html_src/css/app.css b/html_src/css/app.css index 09d0a23..8085426 100644 --- a/html_src/css/app.css +++ b/html_src/css/app.css @@ -1 +1,1387 @@ -*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}figure,nav{display:block}canvas,progress{display:inline-block;vertical-align:baseline}[hidden]{display:none}a{background-color:transparent}a:active,a:hover{outline:0}b{font-weight:700}h1,h2{font-size:2em;margin:.67em 0}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,pre{font-family:monospace;font-size:1em}button,input,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}legend{border:0;padding:0}textarea{overflow:auto}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}.ct-zoom-rect{fill:rgba(200,100,100,.3);stroke:#ff2b12}.ct-axis-title{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ct-axis-title,.ct-label{fill:rgba(255,255,255,.8)}.ct-label{color:rgba(255,255,255,.8);font-size:.75rem;line-height:1}.ct-label.ct-horizontal.ct-start{align-items:flex-end;justify-content:flex-start;text-align:left;text-anchor:start}.ct-label.ct-horizontal.ct-end{align-items:flex-start;justify-content:flex-start;text-align:left;text-anchor:start;transform:translate(-4px) rotate(45deg)}.ct-label.ct-vertical.ct-start{align-items:flex-end;justify-content:flex-end;text-align:right;text-anchor:end;transform:translateY(20%)}.ct-label.ct-vertical.ct-end{align-items:flex-end;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar .ct-label,.ct-chart-line .ct-label{display:flex}.ct-chart-bar .ct-label.ct-horizontal.ct-start{align-items:flex-end;justify-content:center;text-align:center;text-anchor:start}.ct-chart-bar .ct-label.ct-horizontal.ct-end{align-items:flex-start;justify-content:center;text-align:center;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-start{align-items:flex-end;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-end{align-items:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-start{align-items:center;justify-content:flex-end;text-align:right;text-anchor:end}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-end{align-items:center;justify-content:flex-start;text-align:left;text-anchor:end}.ct-grid{stroke:rgba(255,255,255,.3);stroke-width:1px;stroke-dasharray:2px}.ct-point{stroke-width:4px;stroke-linecap:round}.ct-line{fill:none;stroke-width:2px}.ct-with-area .ct-line{stroke-width:1px}.ct-area{stroke:none;fill-opacity:.3}.ct-bar{fill:none;stroke-width:10px}.ct-series-a .ct-bar,.ct-series-a .ct-line,.ct-series-a .ct-point{stroke:#f05b4f}.ct-series-a .ct-area,.ct-series-a .ct-slice-pie{fill:#f05b4f}.ct-series-b .ct-bar,.ct-series-b .ct-line,.ct-series-b .ct-point{stroke:#6188e2}.ct-series-b .ct-area,.ct-series-b .ct-slice-pie{fill:#6188e2}.ct-series-c .ct-bar,.ct-series-c .ct-line,.ct-series-c .ct-point{stroke:#59922b}.ct-series-c .ct-area,.ct-series-c .ct-slice-pie{fill:#59922b}.ct-series-d .ct-bar,.ct-series-d .ct-line,.ct-series-d .ct-point{stroke:#eacf7d}.ct-series-d .ct-area,.ct-series-d .ct-slice-pie{fill:#eacf7d}.ct-series-e .ct-bar,.ct-series-e .ct-line,.ct-series-e .ct-point{stroke:#a748ca}.ct-series-e .ct-area,.ct-series-e .ct-slice-pie{fill:#a748ca}.ct-wide{display:block;position:relative;width:100%}.ct-wide:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:62.5%}.ct-wide:after{content:"";display:table;clear:both}.ct-wide>svg{display:block;position:absolute;top:0;left:0}.ct-narrow{display:block;position:relative;width:100%}.ct-narrow:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:66.6666666667%}.ct-narrow:after{content:"";display:table;clear:both}.ct-narrow>svg{display:block;position:absolute;top:0;left:0}.center{text-align:center}.invis{visibility:hidden!important}.hidden{display:none!important}.nb{font-weight:400}html{font-family:Arial,sans-serif;color:#D0D0D0;background:#131315}body,html{border:0 none;margin:0;padding:0;text-decoration:none;width:100%;height:100%;overflow:hidden}a,a:link,a:visited{cursor:pointer;color:#5abfff;text-decoration:none}a:hover{color:#5abfff;text-decoration:underline}.chartexport a{background:#3b7299;border-radius:3px;padding:5px;color:#0c171e;text-decoration:none}.chartexport a:hover{background:#4ea6dd}.chartexport a:active{position:relative;top:1px}.chartexport textarea{margin-top:10px;width:100%;height:10em;resize:vertical}#outer{display:flex;position:absolute;width:100%;height:100%;left:0;right:0;top:0;bottom:0;overflow:hidden;flex-direction:row}@media screen and (max-width:544px){#outer{display:block;overflow-y:scroll}}#menu{flex:0 0 15rem;background:#2bab5f}#menu>*{display:block;text-decoration:none;padding:.6180469716rem 1rem;white-space:nowrap;word-wrap:normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#menu #brand{color:white;background:#218248;font-size:120%;text-align:center;position:relative;margin-bottom:1rem}@media screen and (max-width:544px){#menu #brand{background:#2bab5f;cursor:pointer}#menu #brand:after{position:absolute;color:rgba(0,0,0,.2);right:1rem;content:'>';top:50%;font-size:120%;font-weight:700;transform:translateY(-50%) rotate(90deg)}}#menu.expanded #brand{background:#218248}@media screen and (max-width:544px){#menu.expanded #brand:after{transform:translateY(-50%) rotate(-90deg)}}#menu a{font-size:130%;color:white;transition:background-color .2s;text-shadow:0 0 5px rgba(0,0,0,.4)}#menu a.selected,#menu a:hover{background:#1bd886;text-shadow:0 0 5px rgba(0,0,0,.6)}#menu a.selected{position:relative;box-shadow:0 0 5px rgba(0,0,0,.5)}#menu a:before{content:"▸";padding-right:.5rem;position:relative;top:-.1rem}@media screen and (max-width:544px){#menu a{display:none}}#menu.expanded a{display:block}@media screen and (min-width:545px) and (max-width:1000px){#menu{flex-basis:10rem}#menu #brand{font-size:95%;margin-bottom:.6180469716rem}#menu a{font-size:105%}#menu>*{padding:.3819820591rem .6180469716rem}}#content{flex-grow:1;position:relative;padding:1rem;overflow-y:auto}@media screen and (max-width:544px){#content{padding:.6180469716rem}}#content>*{margin-left:auto;margin-right:auto}#content h1{text-align:center;font-size:2.2806973457em;margin-top:0;margin-bottom:1rem}#content h2{font-size:1.423828125em;margin-bottom:.6180469716rem}#content td,#content th{padding:.3819820591rem}#content tbody th{text-align:right;width:130px;color:#fff}#loader{position:absolute;right:1.618rem;top:1.618rem;transition:opacity .2s;opacity:0}@media screen and (max-width:544px){#loader{top:1rem;right:1rem}}#loader.show{opacity:1}.Box{display:block;max-width:900px;margin-top:1rem;padding:.6180469716rem 1rem;border-radius:3px;background-color:rgba(255,255,255,.07)}@media screen and (max-width:544px){.Box{margin-top:.6180469716rem}}.Box h2,h1+.Box{margin-top:0}.Box.wide{width:initial;max-width:initial}.Box.medium{max-width:1200px}.Box .Valfield{display:inline-block;min-width:10em}.Modal{position:fixed;width:100%;height:100%;left:0;top:0;right:0;bottom:0;display:flex;justify-content:center;align-items:center;transition:opacity .5s;background:rgba(0,0,0,.65);opacity:0}.Modal.visible{opacity:1}.Modal.hidden{display:none}.Dialog{margin:.6180469716rem;padding:1rem;overflow:hidden;max-width:100%;max-height:100%;flex:0 1 30rem;background:#1c1c1e;border-left:6px solid #217b3a;border-right:6px solid #217b3a;box-shadow:0 0 2px 0 #434349,0 0 6px 0 black;border-radius:6px}.Dialog h1,.Dialog h2{margin-top:0}.Dialog p:last-child{margin-bottom:0}.NotifyMsg{position:fixed;bottom:2.617924rem;padding:.6180469716rem 1rem;left:50%;transform:translate(-50%);-webkit-font-smoothing:subpixel-antialiased;-webkit-transform:translateZ(0) scale(1);background:#37a349;color:white;text-shadow:0 0 2px black;box-shadow:0 0 6px 0 rgba(0,0,0,.6);border-radius:5px;max-width:80%;transition:opacity .5s;opacity:0}.NotifyMsg.error{background:#d03e42}@media screen and (max-width:544px){.NotifyMsg{width:calc(100% - 1rem)}}.NotifyMsg.visible{opacity:1}.NotifyMsg.hidden{display:none}.button,button,input[type=button],input[type=reset],input[type=submit]{text-align:center;cursor:pointer;display:inline-block;border-radius:2px;padding:0 .6em;border:0 none;outline:0 none!important;line-height:1.8em;font-size:1.1em;margin-bottom:3px;min-width:5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-shadow:1.5px 1.5px 2px rgba(0,0,0,.8)}.button:active,button:active,input[type=button]:active,input[type=reset]:active,input[type=submit]:active{position:relative;top:2px}.button.narrow,button.narrow,input[type=button].narrow,input[type=reset].narrow,input[type=submit].narrow{min-width:initial}.btn-green,input[type=submit]{background-color:#2ca94b;box-shadow:0 3px 0 #1d7032;text-decoration:none!important}.btn-green,.btn-green:link,.btn-green:visited,input[type=submit],input[type=submit]:link,input[type=submit]:visited{color:#FEFEFE}.btn-green.active,.btn-green.selected,.btn-green:active,.btn-green:hover,input[type=submit].active,input[type=submit].selected,input[type=submit]:active,input[type=submit]:hover{background-color:#28ba5c;color:#FEFEFE}.btn-green.active,.btn-green.selected,.btn-green:hover,input[type=submit].active,input[type=submit].selected,input[type=submit]:hover{box-shadow:0 3px 0 #1a773b}.btn-green:active,input[type=submit]:active{box-shadow:0 1px 0 #1a773b}.btn-red,input[type=reset]{background-color:#D04E51;box-shadow:0 3px 0 #aa2d30;text-decoration:none!important}.btn-red,.btn-red:link,.btn-red:visited,input[type=reset],input[type=reset]:link,input[type=reset]:visited{color:#FEFEFE}.btn-red.active,.btn-red.selected,.btn-red:active,.btn-red:hover,input[type=reset].active,input[type=reset].selected,input[type=reset]:active,input[type=reset]:hover{background-color:#d4403f;color:#FEFEFE}.btn-red.active,.btn-red.selected,.btn-red:hover,input[type=reset].active,input[type=reset].selected,input[type=reset]:hover{box-shadow:0 3px 0 #9e2423}.btn-red:active,input[type=reset]:active{box-shadow:0 1px 0 #9e2423}.btn-blue{background-color:#3983cd;box-shadow:0 3px 0 #265f98;text-decoration:none!important}.btn-blue,.btn-blue:link,.btn-blue:visited{color:#FEFEFE}.btn-blue.active,.btn-blue.selected,.btn-blue:active,.btn-blue:hover{background-color:#2076C6;color:#FEFEFE}.btn-blue.active,.btn-blue.selected,.btn-blue:hover{box-shadow:0 3px 0 #154c80}.btn-blue:active{box-shadow:0 1px 0 #154c80}input[type=number],input[type=password],input[type=text],select,textarea{border:0 none;border-bottom:2px solid #217b3a;background-color:#303030;color:#fff;padding:6px;line-height:1em;outline:0 none!important;-moz-outline:0 none!important;font-weight:400}input[type=number]:focus,input[type=number]:hover,input[type=password]:focus,input[type=password]:hover,input[type=text]:focus,input[type=text]:hover,select:focus,select:hover,textarea:focus,textarea:hover{border-bottom-color:#28bc65}input[type=number],input[type=password],input[type=text],textarea{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;cursor:text}textarea{font-family:monospace;line-height:1.2em;display:block}form{border:0 none;margin:0;padding:0;text-decoration:none}input[type=number],input[type=password],input[type=text],label.select-wrap,select,textarea{width:250px}form .Row{vertical-align:middle;margin:14px auto;text-align:left;display:flex;flex-direction:row}form .Row:first-child{margin-top:0}form .Row:last-child{margin-bottom:0}form .Row .spacer{width:130px}@media screen and (max-width:544px){form .Row .spacer{display:none}}form .Row.buttons .button,form .Row.buttons input{margin-right:.6180469716rem}form .Row.centered{justify-content:center}form .Row.message{font-size:1em;text-shadow:1px 1px 3px black;text-align:center}form .Row.message.error{color:crimson}form .Row.message.ok{color:#0fe851}form .Row.separator{padding-top:14px;border-top:2px solid rgba(255,255,255,.1)}form .Row textarea{display:inline-block;vertical-align:top;min-height:10rem;flex-grow:1;resize:vertical}form .Row label{font-weight:700;color:#fff;text-shadow:1px 1px 3px black;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}form .Row .checkbox-wrap,form .Row label{display:inline-block;width:130px;text-align:right;padding:8px;align-self:flex-start}form .Row .checkbox-wrap input[type=checkbox]{margin:auto;width:auto;height:auto}form .Row .checkbox-wrap+label{width:250px;padding-left:0;text-align:left;cursor:pointer}@media screen and (max-width:544px){form .Row{flex-direction:column}form .Row.buttons,form .Row.centered{flex-direction:row}form .Row.buttons{justify-content:center}form .Row.buttons :last-child{margin-right:0}form .Row label{padding-left:0;text-align:left;width:auto}form .Row .checkbox-wrap{order:1;text-align:left;padding-bottom:0;border-radius:.4px;width:auto}form .Row .checkbox-wrap+label{width:auto}form .Row input[type=number],form .Row input[type=password],form .Row input[type=text],form .Row textarea{width:100%}}form span.required{color:red}.RadioGroup{display:inline-block;line-height:1.5em;vertical-align:middle}.RadioGroup label{width:auto;text-align:left;cursor:pointer;font-weight:400}.RadioGroup input[type=radio]{vertical-align:middle;margin:0 0 0 5px}@media screen and (-webkit-min-device-pixel-ratio:0){select{padding-right:18px}}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;line-height:1.2em;padding-right:1em}select:-moz-focusring{color:transparent;text-shadow:0 0 0 #fff}select option{background:#303030}label.select-wrap{position:relative;display:inline!important;margin:0!important;padding:0!important;width:auto!important}label.select-wrap:after{content:'<>';font-family:Consolas,monospace;font-weight:700;color:#28bc65;top:50%;transform:translateY(-50%) rotate(90deg);right:2px;position:absolute;z-index:100;pointer-events:none}#ap-list{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:0;-moz-column-gap:0;column-gap:0;margin:0 -.2360828548rem}@media screen and (min-width:545px) and (max-width:1000px){#ap-list{-webkit-column-count:2;-moz-column-count:2;column-count:2}}@media screen and (max-width:544px){#ap-list{-webkit-column-count:1;-moz-column-count:1;column-count:1}}#ap-loader{background:rgba(255,255,255,.1);border-radius:5px;padding:.3819820591rem;margin-bottom:.3819820591rem}#ap-box{padding-bottom:.3819820591rem}#psk-modal form{display:flex;align-items:center;margin:.3819820591rem}#psk-modal form>*{margin-left:.3819820591rem;margin-right:.3819820591rem}#psk-modal form>:first-child{margin-left:0}#psk-modal form>:last-child{margin-right:0}#psk-modal form input[type=password]{min-width:5rem}.AP{-webkit-column-break-inside:avoid;page-break-inside:avoid;break-inside:avoid-column;max-width:500px;padding:.2360828548rem}.AP.selected .inner{background:#43de81!important;cursor:default;top:0!important}.AP .inner{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;border-radius:3px;color:#222;background:#afafaf;transition:background-color .5s;display:flex}.AP .inner:active{left:0;top:1px}.AP .inner:hover{background:white}.AP .inner>*{padding:.6180469716rem;white-space:nowrap;word-wrap:normal}.AP .inner .rssi{min-width:2rem;flex:0 0 15%;text-align:right}.AP .inner .rssi:after{padding-left:.090179415rem;content:'%';font-size:.8888888889em}.AP .inner .essid{flex:1 1 70%;min-width:0;text-overflow:ellipsis;overflow:hidden;font-weight:700}.AP .inner .auth{flex:0 0 15%}.page-home #staRSSIperc:after{padding-left:.1459102934rem;content:'%';font-size:.8888888889em}.page-home #staRSSI:after{padding-left:.1459102934rem;content:'dBm';font-size:.8888888889em}#samp-ctrl{display:flex;padding:.3819820591rem;flex-direction:row;justify-content:center;align-items:stretch}@media screen and (max-width:544px){#samp-ctrl{flex-direction:column}}#samp-ctrl>div{margin:.3819820591rem .6180469716rem}#samp-ctrl label{line-height:1.8;font-weight:700}#samp-ctrl input,#samp-ctrl select{width:6em}@media screen and (max-width:544px){#samp-ctrl input,#samp-ctrl select{width:100%}}#samp-ctrl #tile-cfg input{width:3em}#samp-ctrl #interval{width:4.5em}.Box.chartbox{display:flex;flex-direction:row}@media screen and (max-width:544px){.Box.chartbox{flex-direction:column}}.Box.chartbox .stats{flex:0 1;position:relative;padding-bottom:50px}@media screen and (max-width:544px){.Box.chartbox .stats table{margin:0 auto}.Box.chartbox .stats td,.Box.chartbox .stats th{width:50%}}.Box.chartbox .stats td,.Box.chartbox .stats th{white-space:nowrap;word-wrap:normal}.Box.chartbox .stats th sub{font-weight:400}.Box.chartbox .stats td{min-width:100px}.Box.chartbox .stats td:after{font-size:90%;padding-left:.5em}.Box.chartbox .stats #stat-f-s:after{content:"Hz"}.Box.chartbox .stats #stat-i-peak:after,.Box.chartbox .stats #stat-i-rms:after{content:"mA"}.Box.chartbox .stats .ar{position:absolute;bottom:.3819820591rem;width:100%;text-align:center}.Box.chartbox .stats .ar input[type=number]{width:4em}.Box.chartbox .stats .ar input[type=button]{margin-left:.3819820591rem}.page-about .Box{padding-left:1rem;padding-right:1rem}.page-about .Box a{font-weight:700}.page-about #logo{float:right;height:130px}.page-about #logo2{max-width:150px}@media screen and (min-width:545px){.mq-phone{display:none}}@media screen and (max-width:544px){.mq-tablet-min{display:none}}@media screen and (min-width:1001px){.mq-tablet-max{display:none}}@media screen and (max-width:1000px){.mq-normal-min{display:none}} \ No newline at end of file +@charset "UTF-8"; +/* 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. + */ +*, *:before, *:after { + box-sizing: border-box; } + +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. + */ +figure, +nav { + display: block; } + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ +canvas, +progress { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ } + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ +/** + * 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] { + 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. + */ +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ +b { + font-weight: bold; } + +/** + * Address styling not present in Safari and Chrome. + */ +/** + * 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; } + +h2 { + font-size: 2em; + margin: 0.67em 0; } + +/** + * Address styling not present in IE 8/9. + */ +/** + * 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. + */ +/** + * 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, +pre { + font-family: 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, +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, +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`. + */ +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. + */ +/** + * 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). + */ +/** + * Define consistent border, margin, and padding. + */ +/** + * 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. + */ +/* Tables + ========================================================================== */ +/** + * Remove most spacing between table cells. + */ +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + +html { + box-sizing: border-box; } + +*, *::after, *::before { + box-sizing: inherit; } + +.ct-zoom-rect { + fill: rgba(200, 100, 100, 0.3); + stroke: #ff2b12; } + +.ct-axis-title { + fill: rgba(255, 255, 255, 0.8); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.ct-label { + fill: rgba(255, 255, 255, 0.8); + color: rgba(255, 255, 255, 0.8); + font-size: 0.75rem; + line-height: 1; } + .ct-label.ct-horizontal.ct-start { + align-items: flex-end; + justify-content: flex-start; + text-align: left; + text-anchor: start; } + .ct-label.ct-horizontal.ct-end { + align-items: flex-start; + justify-content: flex-start; + text-align: left; + text-anchor: start; + transform: translate(-4px, 0%) rotate(45deg); } + .ct-label.ct-vertical.ct-start { + align-items: flex-end; + justify-content: flex-end; + text-align: right; + text-anchor: end; + transform: translate(0, 20%); } + .ct-label.ct-vertical.ct-end { + align-items: flex-end; + justify-content: flex-start; + text-align: left; + text-anchor: start; } + +.ct-chart-line .ct-label, +.ct-chart-bar .ct-label { + display: flex; } + +.ct-chart-bar .ct-label.ct-horizontal.ct-start { + align-items: flex-end; + justify-content: center; + text-align: center; + text-anchor: start; } + +.ct-chart-bar .ct-label.ct-horizontal.ct-end { + align-items: flex-start; + justify-content: center; + text-align: center; + text-anchor: start; } + +.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-start { + align-items: flex-end; + justify-content: flex-start; + text-align: left; + text-anchor: start; } + +.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-end { + align-items: flex-start; + justify-content: flex-start; + text-align: left; + text-anchor: start; } + +.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-start { + align-items: center; + justify-content: flex-end; + text-align: right; + text-anchor: end; } + +.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-end { + align-items: center; + justify-content: flex-start; + text-align: left; + text-anchor: end; } + +.ct-grid { + stroke: rgba(255, 255, 255, 0.3); + stroke-width: 1px; + stroke-dasharray: 2px; } + +.ct-point { + stroke-width: 4px; + stroke-linecap: round; } + +.ct-line { + fill: none; + stroke-width: 2px; } + +.ct-with-area .ct-line { + stroke-width: 1px; } + +.ct-area { + stroke: none; + fill-opacity: 0.3; } + +.ct-bar { + fill: none; + stroke-width: 10px; } + +.ct-series-a .ct-point, .ct-series-a .ct-line, .ct-series-a .ct-bar { + stroke: #f05b4f; } + +.ct-series-a .ct-slice-pie, .ct-series-a .ct-area { + fill: #f05b4f; } + +.ct-series-b .ct-point, .ct-series-b .ct-line, .ct-series-b .ct-bar { + stroke: #6188e2; } + +.ct-series-b .ct-slice-pie, .ct-series-b .ct-area { + fill: #6188e2; } + +.ct-series-c .ct-point, .ct-series-c .ct-line, .ct-series-c .ct-bar { + stroke: #59922b; } + +.ct-series-c .ct-slice-pie, .ct-series-c .ct-area { + fill: #59922b; } + +.ct-series-d .ct-point, .ct-series-d .ct-line, .ct-series-d .ct-bar { + stroke: #eacf7d; } + +.ct-series-d .ct-slice-pie, .ct-series-d .ct-area { + fill: #eacf7d; } + +.ct-series-e .ct-point, .ct-series-e .ct-line, .ct-series-e .ct-bar { + stroke: #a748ca; } + +.ct-series-e .ct-slice-pie, .ct-series-e .ct-area { + fill: #a748ca; } + +.ct-wide { + display: block; + position: relative; + width: 100%; } + .ct-wide:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 62.5%; } + .ct-wide:after { + content: ""; + display: table; + clear: both; } + .ct-wide > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.ct-narrow { + display: block; + position: relative; + width: 100%; } + .ct-narrow:before { + display: block; + float: left; + content: ""; + width: 0; + height: 0; + padding-bottom: 66.6666666667%; } + .ct-narrow:after { + content: ""; + display: table; + clear: both; } + .ct-narrow > svg { + display: block; + position: absolute; + top: 0; + left: 0; } + +.center { + text-align: center; } + +.invis { + visibility: hidden !important; } + +.hidden { + display: none !important; } + +.nb { + font-weight: normal; } + +html { + font-family: Arial, sans-serif; + color: #D0D0D0; + background: #131315; } + +html, body { + border: 0 none; + margin: 0; + padding: 0; + text-decoration: none; + width: 100%; + height: 100%; + overflow: hidden; } + +a, a:visited, a:link { + cursor: pointer; + color: #5abfff; + text-decoration: none; } + +a:hover { + color: #5abfff; + text-decoration: underline; } + +.chartexport a { + background: #3b7299; + border-radius: 3px; + padding: 5px; + color: #0c171e; + text-decoration: none; } + .chartexport a:hover { + background: #4ea6dd; } + .chartexport a:active { + position: relative; + top: 1px; } + +.chartexport textarea { + margin-top: 10px; + width: 100%; + height: 10em; + resize: vertical; } + +/* Main outer container */ +#outer { + display: flex; + position: absolute; + width: 100%; + height: 100%; + left: 0; + right: 0; + top: 0; + bottom: 0; + overflow: hidden; + flex-direction: row; } + +@media screen and (max-width: 544px) { + #outer { + display: block; + overflow-y: scroll; } } + +#menu { + flex: 0 0 15rem; + background: #2bab5f; } + #menu > * { + display: block; + text-decoration: none; + padding: 0.6180469716rem 1rem; + white-space: nowrap; + word-wrap: normal; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + #menu #brand { + color: white; + background: #218248; + font-size: 120%; + text-align: center; + position: relative; + margin-bottom: 1rem; } + @media screen and (max-width: 544px) { + #menu #brand { + background: #2bab5f; + cursor: pointer; } + #menu #brand:after { + position: absolute; + color: rgba(0, 0, 0, 0.2); + right: 1rem; + content: '>'; + top: 50%; + font-size: 120%; + font-weight: bold; + transform: translate(0, -50%) rotate(90deg); } } + #menu.expanded #brand { + background: #218248; } + @media screen and (max-width: 544px) { + #menu.expanded #brand:after { + transform: translate(0, -50%) rotate(-90deg); } } + #menu a { + font-size: 130%; + color: white; + transition: background-color 0.2s; + text-shadow: 0 0 5px rgba(0, 0, 0, 0.4); } + #menu a:hover, #menu a.selected { + background: #1bd886; + text-shadow: 0 0 5px rgba(0, 0, 0, 0.6); } + #menu a.selected { + position: relative; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.5); } + #menu a:before { + content: "▸"; + padding-right: .5rem; + position: relative; + top: -0.1rem; } + @media screen and (max-width: 544px) { + #menu a { + display: none; } } + #menu.expanded a { + display: block; } + @media screen and (min-width: 545px) and (max-width: 1000px) { + #menu { + flex-basis: 10rem; } + #menu #brand { + font-size: 95%; + margin-bottom: 0.6180469716rem; } + #menu a { + font-size: 105%; } + #menu > * { + padding: 0.3819820591rem 0.6180469716rem; } } + +#content { + flex-grow: 1; + position: relative; + padding: 1rem; + overflow-y: auto; } + @media screen and (max-width: 544px) { + #content { + padding: 0.6180469716rem; } } + #content > * { + margin-left: auto; + margin-right: auto; } + #content h1 { + text-align: center; + font-size: 2.2806973457em; + margin-top: 0; + margin-bottom: 1rem; } + #content h2 { + font-size: 1.423828125em; + margin-bottom: 0.6180469716rem; } + #content td, #content th { + padding: 0.3819820591rem; } + #content tbody th { + text-align: right; + width: 130px; + color: white; } + +#loader { + position: absolute; + right: 1.618rem; + top: 1.618rem; + transition: opacity .2s; + opacity: 0; } + @media screen and (max-width: 544px) { + #loader { + top: 1rem; + right: 1rem; } } + #loader.show { + opacity: 1; } + +.Box { + display: block; + max-width: 900px; + margin-top: 1rem; + padding: 0.6180469716rem 1rem; + border-radius: 3px; + background-color: rgba(255, 255, 255, 0.07); } + @media screen and (max-width: 544px) { + .Box { + margin-top: 0.6180469716rem; } } + h1 + .Box { + margin-top: 0; } + .Box h2 { + margin-top: 0; } + .Box.wide { + width: initial; + max-width: initial; } + .Box.medium { + max-width: 1200px; } + .Box .Valfield { + display: inline-block; + min-width: 10em; } + +.Modal { + position: fixed; + width: 100%; + height: 100%; + left: 0; + top: 0; + right: 0; + bottom: 0; + display: flex; + justify-content: center; + align-items: center; + transition: opacity .5s; + background: rgba(0, 0, 0, 0.65); + opacity: 0; } + .Modal.visible { + opacity: 1; } + .Modal.hidden { + display: none; } + +.Dialog { + margin: 0.6180469716rem; + padding: 1rem; + overflow: hidden; + max-width: 100%; + max-height: 100%; + flex: 0 1 30rem; + background: #1c1c1e; + border-left: 6px solid #217b3a; + border-right: 6px solid #217b3a; + box-shadow: 0 0 2px 0 #434349, 0 0 6px 0 black; + border-radius: 6px; } + .Dialog h1, .Dialog h2 { + margin-top: 0; } + .Dialog p:last-child { + margin-bottom: 0; } + +.NotifyMsg { + position: fixed; + bottom: 2.617924rem; + padding: 0.6180469716rem 1rem; + left: 50%; + transform: translate(-50%, 0); + -webkit-font-smoothing: subpixel-antialiased; + -webkit-transform: translateZ(0) scale(1, 1); + background: #37a349; + color: white; + text-shadow: 0 0 2px black; + box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.6); + border-radius: 5px; + max-width: 80%; + transition: opacity .5s; + opacity: 0; } + .NotifyMsg.error { + background: #d03e42; } + @media screen and (max-width: 544px) { + .NotifyMsg { + width: calc(100% - 1rem); } } + .NotifyMsg.visible { + opacity: 1; } + .NotifyMsg.hidden { + display: none; } + +button, input[type="button"], input[type="reset"], input[type="submit"], .button { + text-align: center; + cursor: pointer; + display: inline-block; + border-radius: 2px; + padding: 0 0.6em; + border: 0 none; + outline: 0 none !important; + line-height: 1.8em; + font-size: 1.1em; + margin-bottom: 3px; + min-width: 5em; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + /* &::before { + margin-right: .4em; + } + + &.icononly::before { + margin-right: 0; + }*/ + text-shadow: 1.5px 1.5px 2px rgba(0, 0, 0, 0.8); } + button:active, input[type="button"]:active, input[type="reset"]:active, input[type="submit"]:active, .button:active { + position: relative; + top: 2px; } + button.narrow, input[type="button"].narrow, input[type="reset"].narrow, input[type="submit"].narrow, .button.narrow { + min-width: initial; } + +input[type="submit"], .btn-green { + background-color: #2ca94b; + box-shadow: 0 3px 0 #1d7032; + text-decoration: none !important; } + input[type="submit"], input[type="submit"]:link, input[type="submit"]:visited, .btn-green, .btn-green:link, .btn-green:visited { + color: #FEFEFE; } + input[type="submit"]:hover, input[type="submit"]:active, input[type="submit"].active, input[type="submit"].selected, .btn-green:hover, .btn-green:active, .btn-green.active, .btn-green.selected { + background-color: #28ba5c; + color: #FEFEFE; } + input[type="submit"]:hover, input[type="submit"].selected, input[type="submit"].active, .btn-green:hover, .btn-green.selected, .btn-green.active { + box-shadow: 0 3px 0 #1a773b; } + input[type="submit"]:active, .btn-green:active { + box-shadow: 0 1px 0 #1a773b; } + +input[type="reset"], .btn-red { + background-color: #D04E51; + box-shadow: 0 3px 0 #aa2d30; + text-decoration: none !important; } + input[type="reset"], input[type="reset"]:link, input[type="reset"]:visited, .btn-red, .btn-red:link, .btn-red:visited { + color: #FEFEFE; } + input[type="reset"]:hover, input[type="reset"]:active, input[type="reset"].active, input[type="reset"].selected, .btn-red:hover, .btn-red:active, .btn-red.active, .btn-red.selected { + background-color: #d4403f; + color: #FEFEFE; } + input[type="reset"]:hover, input[type="reset"].selected, input[type="reset"].active, .btn-red:hover, .btn-red.selected, .btn-red.active { + box-shadow: 0 3px 0 #9e2423; } + input[type="reset"]:active, .btn-red:active { + box-shadow: 0 1px 0 #9e2423; } + +.btn-blue { + background-color: #3983cd; + box-shadow: 0 3px 0 #265f98; + text-decoration: none !important; } + .btn-blue, .btn-blue:link, .btn-blue:visited { + color: #FEFEFE; } + .btn-blue:hover, .btn-blue:active, .btn-blue.active, .btn-blue.selected { + background-color: #2076C6; + color: #FEFEFE; } + .btn-blue:hover, .btn-blue.selected, .btn-blue.active { + box-shadow: 0 3px 0 #154c80; } + .btn-blue:active { + box-shadow: 0 1px 0 #154c80; } + +/* + +&[type="submit"], +&.gray-green { + @include fancy-btn-colors-full( + $btn-gray-f, $btn-gray-b, $btn-gray-l, + $btn-green-fa, $btn-green-ba, darken($btn-green-ba, 16) + ) +} + +&.gray-blue { + @include fancy-btn-colors-full( + $btn-gray-f, $btn-gray-b, $btn-gray-l, + $btn-blue-fa, $btn-blue-ba, darken($btn-blue-ba, 16) + ) +} + +&.gray-red { + @include fancy-btn-colors-full( + $btn-gray-f, $btn-gray-b, $btn-gray-l, + $btn-red-fa, $btn-red-ba, darken($btn-red-ba, 16) + ) +} + +&.gray-orange { + @include fancy-btn-colors-full( + $btn-gray-f, $btn-gray-b, $btn-gray-l, + $btn-orange-fa, $btn-orange-ba, darken($btn-orange-ba, 16) + ) +} + +// No change on hover - to be used for disabled buttons +&.gray-gray { + @include fancy-btn-colors-full( + $btn-gray-f, $btn-gray-b, $btn-gray-l, + $btn-gray-f, $btn-gray-b, $btn-gray-l + ) +} + +*/ +button, input[type="button"], input[type="reset"], input[type="submit"], .button { + text-align: center; + cursor: pointer; + display: inline-block; + border-radius: 2px; + padding: 0 0.6em; + border: 0 none; + outline: 0 none !important; + line-height: 1.8em; + font-size: 1.1em; + margin-bottom: 3px; + min-width: 5em; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + /* &::before { + margin-right: .4em; + } + + &.icononly::before { + margin-right: 0; + }*/ + text-shadow: 1.5px 1.5px 2px rgba(0, 0, 0, 0.8); } + button:active, input[type="button"]:active, input[type="reset"]:active, input[type="submit"]:active, .button:active { + position: relative; + top: 2px; } + button.narrow, input[type="button"].narrow, input[type="reset"].narrow, input[type="submit"].narrow, .button.narrow { + min-width: initial; } + +input[type="submit"], .btn-green { + background-color: #2ca94b; + box-shadow: 0 3px 0 #1d7032; + text-decoration: none !important; } + input[type="submit"], input[type="submit"]:link, input[type="submit"]:visited, .btn-green, .btn-green:link, .btn-green:visited { + color: #FEFEFE; } + input[type="submit"]:hover, input[type="submit"]:active, input[type="submit"].active, input[type="submit"].selected, .btn-green:hover, .btn-green:active, .btn-green.active, .btn-green.selected { + background-color: #28ba5c; + color: #FEFEFE; } + input[type="submit"]:hover, input[type="submit"].selected, input[type="submit"].active, .btn-green:hover, .btn-green.selected, .btn-green.active { + box-shadow: 0 3px 0 #1a773b; } + input[type="submit"]:active, .btn-green:active { + box-shadow: 0 1px 0 #1a773b; } + +input[type="reset"], .btn-red { + background-color: #D04E51; + box-shadow: 0 3px 0 #aa2d30; + text-decoration: none !important; } + input[type="reset"], input[type="reset"]:link, input[type="reset"]:visited, .btn-red, .btn-red:link, .btn-red:visited { + color: #FEFEFE; } + input[type="reset"]:hover, input[type="reset"]:active, input[type="reset"].active, input[type="reset"].selected, .btn-red:hover, .btn-red:active, .btn-red.active, .btn-red.selected { + background-color: #d4403f; + color: #FEFEFE; } + input[type="reset"]:hover, input[type="reset"].selected, input[type="reset"].active, .btn-red:hover, .btn-red.selected, .btn-red.active { + box-shadow: 0 3px 0 #9e2423; } + input[type="reset"]:active, .btn-red:active { + box-shadow: 0 1px 0 #9e2423; } + +.btn-blue { + background-color: #3983cd; + box-shadow: 0 3px 0 #265f98; + text-decoration: none !important; } + .btn-blue, .btn-blue:link, .btn-blue:visited { + color: #FEFEFE; } + .btn-blue:hover, .btn-blue:active, .btn-blue.active, .btn-blue.selected { + background-color: #2076C6; + color: #FEFEFE; } + .btn-blue:hover, .btn-blue.selected, .btn-blue.active { + box-shadow: 0 3px 0 #154c80; } + .btn-blue:active { + box-shadow: 0 1px 0 #154c80; } + +/* + +&[type="submit"], +&.gray-green { + @include fancy-btn-colors-full( + $btn-gray-f, $btn-gray-b, $btn-gray-l, + $btn-green-fa, $btn-green-ba, darken($btn-green-ba, 16) + ) +} + +&.gray-blue { + @include fancy-btn-colors-full( + $btn-gray-f, $btn-gray-b, $btn-gray-l, + $btn-blue-fa, $btn-blue-ba, darken($btn-blue-ba, 16) + ) +} + +&.gray-red { + @include fancy-btn-colors-full( + $btn-gray-f, $btn-gray-b, $btn-gray-l, + $btn-red-fa, $btn-red-ba, darken($btn-red-ba, 16) + ) +} + +&.gray-orange { + @include fancy-btn-colors-full( + $btn-gray-f, $btn-gray-b, $btn-gray-l, + $btn-orange-fa, $btn-orange-ba, darken($btn-orange-ba, 16) + ) +} + +// No change on hover - to be used for disabled buttons +&.gray-gray { + @include fancy-btn-colors-full( + $btn-gray-f, $btn-gray-b, $btn-gray-l, + $btn-gray-f, $btn-gray-b, $btn-gray-l + ) +} + +*/ +input[type="number"], input[type="password"], input[type="text"], textarea, select { + border: 0 none; + border-bottom: 2px solid #217b3a; + background-color: #303030; + color: white; + padding: 6px; + line-height: 1em; + outline: 0 none !important; + -moz-outline: 0 none !important; + font-weight: normal; } + input[type="number"]:focus, input[type="number"]:hover, input[type="password"]:focus, input[type="password"]:hover, input[type="text"]:focus, input[type="text"]:hover, textarea:focus, textarea:hover, select:focus, select:hover { + border-bottom-color: #28bc65; } + +input[type="number"], input[type="password"], input[type="text"], textarea { + -webkit-user-select: text; + -khtml-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + cursor: text; } + +textarea { + font-family: monospace; + line-height: 1.2em; + display: block; } + +@media screen and (-webkit-min-device-pixel-ratio: 0) { + select { + padding-right: 18px; } } + +select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + cursor: pointer; + line-height: 1.2em; + padding-right: 1em; } + select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 white; } + select option { + background: #303030; } + +label.select-wrap { + position: relative; + display: inline !important; + margin: 0 !important; + padding: 0 !important; + width: auto !important; } + label.select-wrap:after { + content: '<>'; + /* will be rotated */ + font-family: "Consolas", monospace; + font-weight: bold; + color: #28bc65; + top: 50%; + transform: translate(0, -50%) rotate(90deg); + right: 2px; + position: absolute; + z-index: 100; + pointer-events: none; } + +form { + border: 0 none; + margin: 0; + padding: 0; + text-decoration: none; } + +input[type="number"], input[type="password"], input[type="text"], textarea, select, label.select-wrap { + width: 250px; } + +form .Row { + vertical-align: middle; + margin: 14px auto; + text-align: left; + display: flex; + flex-direction: row; } + form .Row:first-child { + margin-top: 0; } + form .Row:last-child { + margin-bottom: 0; } + form .Row .spacer { + width: 130px; } + @media screen and (max-width: 544px) { + form .Row .spacer { + display: none; } } + form .Row.buttons input, form .Row.buttons .button { + margin-right: 0.6180469716rem; } + form .Row.centered { + justify-content: center; } + form .Row.message { + font-size: 1em; + text-shadow: 1px 1px 3px black; + text-align: center; } + form .Row.message.error { + color: crimson; } + form .Row.message.ok { + color: #0fe851; } + form .Row.separator { + padding-top: 14px; + border-top: 2px solid rgba(255, 255, 255, 0.1); } + form .Row textarea { + display: inline-block; + vertical-align: top; + min-height: 10rem; + flex-grow: 1; + resize: vertical; } + form .Row label { + font-weight: bold; + color: white; + display: inline-block; + width: 130px; + text-align: right; + text-shadow: 1px 1px 3px black; + padding: 8px; + align-self: flex-start; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + form .Row .checkbox-wrap { + display: inline-block; + width: 130px; + padding: 8px; + text-align: right; + align-self: flex-start; } + form .Row .checkbox-wrap input[type=checkbox] { + margin: auto; + width: auto; + height: auto; } + form .Row .checkbox-wrap + label { + width: 250px; + padding-left: 0; + text-align: left; + cursor: pointer; } + @media screen and (max-width: 544px) { + form .Row { + flex-direction: column; } + form .Row.buttons, form .Row.centered { + flex-direction: row; } + form .Row.buttons { + justify-content: center; } + form .Row.buttons :last-child { + margin-right: 0; } + form .Row label { + padding-left: 0; + text-align: left; + width: auto; } + form .Row .checkbox-wrap { + order: 1; + text-align: left; + padding-bottom: 0; + border-radius: .4px; + width: auto; } + form .Row .checkbox-wrap + label { + width: auto; } + form .Row input[type="number"], form .Row input[type="password"], form .Row input[type="text"], form .Row textarea, form .Row textarea { + width: 100%; } } + +form span.required { + color: red; } + +.RadioGroup { + display: inline-block; + line-height: 1.5em; + vertical-align: middle; } + .RadioGroup label { + width: auto; + text-align: left; + cursor: pointer; + font-weight: normal; } + .RadioGroup input[type="radio"] { + vertical-align: middle; + margin: 0 0 0 5px; } + +@media screen and (-webkit-min-device-pixel-ratio: 0) { + select { + padding-right: 18px; } } + +select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + cursor: pointer; + line-height: 1.2em; + padding-right: 1em; } + select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 white; } + select option { + background: #303030; } + +label.select-wrap { + position: relative; + display: inline !important; + margin: 0 !important; + padding: 0 !important; + width: auto !important; } + label.select-wrap:after { + content: '<>'; + /* will be rotated */ + font-family: "Consolas", monospace; + font-weight: bold; + color: #28bc65; + top: 50%; + transform: translate(0, -50%) rotate(90deg); + right: 2px; + position: absolute; + z-index: 100; + pointer-events: none; } + +#ap-list { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; + -webkit-column-gap: 0; + -moz-column-gap: 0; + column-gap: 0; + margin: 0 -0.2360828548rem; } + @media screen and (min-width: 545px) and (max-width: 1000px) { + #ap-list { + -webkit-column-count: 2; + -moz-column-count: 2; + column-count: 2; } } + @media screen and (max-width: 544px) { + #ap-list { + -webkit-column-count: 1; + -moz-column-count: 1; + column-count: 1; } } + +#ap-loader { + background: rgba(255, 255, 255, 0.1); + border-radius: 5px; + padding: 0.3819820591rem; + margin-bottom: 0.3819820591rem; } + +#ap-box { + padding-bottom: 0.3819820591rem; } + +#psk-modal form { + display: flex; + align-items: center; + margin: 0.3819820591rem; } + #psk-modal form > * { + margin-left: 0.3819820591rem; + margin-right: 0.3819820591rem; } + #psk-modal form > *:first-child { + margin-left: 0; } + #psk-modal form > *:last-child { + margin-right: 0; } + #psk-modal form input[type=password] { + min-width: 5rem; } + +.AP { + -webkit-column-break-inside: avoid; + page-break-inside: avoid; + break-inside: avoid-column; + max-width: 500px; + padding: 0.2360828548rem; } + .AP.selected .inner { + background: #43de81 !important; + cursor: default; + top: 0 !important; } + .AP .inner { + cursor: pointer; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + position: relative; + border-radius: 3px; + color: #222; + background: #afafaf; + transition: background-color 0.5s; + display: flex; } + .AP .inner:active { + left: 0; + top: 1px; } + .AP .inner:hover { + background: white; } + .AP .inner > * { + padding: 0.6180469716rem; + white-space: nowrap; + word-wrap: normal; } + .AP .inner .rssi { + min-width: 2rem; + flex: 0 0 15%; + text-align: right; } + .AP .inner .rssi:after { + padding-left: 0.090179415rem; + content: '%'; + font-size: 0.8888888889em; } + .AP .inner .essid { + flex: 1 1 70%; + min-width: 0; + text-overflow: ellipsis; + overflow: hidden; + font-weight: bold; } + .AP .inner .auth { + flex: 0 0 15%; } + +.page-home #staRSSIperc:after { + padding-left: 0.1459102934rem; + content: '%'; + font-size: 0.8888888889em; } + +.page-home #staRSSI:after { + padding-left: 0.1459102934rem; + content: 'dBm'; + font-size: 0.8888888889em; } + +#samp-ctrl { + display: flex; + padding: 0.3819820591rem; + flex-direction: row; + justify-content: center; + align-items: stretch; } + @media screen and (max-width: 544px) { + #samp-ctrl { + flex-direction: column; } } + #samp-ctrl > div { + margin: 0.3819820591rem 0.6180469716rem; } + #samp-ctrl label { + line-height: 1.8; + font-weight: bold; } + #samp-ctrl input, #samp-ctrl select { + width: 6em; } + @media screen and (max-width: 544px) { + #samp-ctrl input, #samp-ctrl select { + width: 100%; } } + #samp-ctrl #tile-cfg input { + width: 3em; } + #samp-ctrl #interval { + width: 4.5em; } + +.Box.chartbox { + display: flex; + flex-direction: row; } + @media screen and (max-width: 544px) { + .Box.chartbox { + flex-direction: column; } } + .Box.chartbox .stats { + flex: 0 1; + position: relative; + padding-bottom: 50px; } + @media screen and (max-width: 544px) { + .Box.chartbox .stats table { + margin: 0 auto; } + .Box.chartbox .stats td, .Box.chartbox .stats th { + width: 50%; } } + .Box.chartbox .stats th, .Box.chartbox .stats td { + white-space: nowrap; + word-wrap: normal; } + .Box.chartbox .stats th sub { + font-weight: normal; } + .Box.chartbox .stats td { + min-width: 100px; } + .Box.chartbox .stats td:after { + font-size: 90%; + padding-left: .5em; } + .Box.chartbox .stats #stat-f-s:after { + content: "Hz"; } + .Box.chartbox .stats #stat-i-peak:after { + content: "mA"; } + .Box.chartbox .stats #stat-i-rms:after { + content: "mA"; } + .Box.chartbox .stats .ar { + position: absolute; + bottom: 0.3819820591rem; + width: 100%; + text-align: center; } + .Box.chartbox .stats .ar input[type=number] { + width: 4em; } + .Box.chartbox .stats .ar input[type=button] { + margin-left: 0.3819820591rem; } + +.page-about .Box { + padding-left: 1rem; + padding-right: 1rem; } + .page-about .Box a { + font-weight: bold; } + +.page-about #logo { + float: right; + height: 130px; } + +.page-about #logo2 { + max-width: 150px; } + +@media screen and (min-width: 545px) { + .mq-phone { + display: none; } } + +@media screen and (max-width: 544px) { + .mq-tablet-min { + display: none; } } + +@media screen and (min-width: 1001px) { + .mq-tablet-max { + display: none; } } + +@media screen and (max-width: 1000px) { + .mq-normal-min { + display: none; } } + +/*# sourceMappingURL=app.css.map */ diff --git a/html_src/js/all.js b/html_src/js/all.js index 872e021..eed009e 100644 --- a/html_src/js/all.js +++ b/html_src/js/all.js @@ -1,3 +1,9616 @@ -function bool(t){return 1===t||"1"===t||t===!0||"true"===t}function numfmt(t,e){var n=Math.pow(10,e);return Math.round(t*n)/n}function estimateLoadTime(t,e){return 1e3/t*e+1500}function msNow(){return+new Date}function msElapsed(t){return msNow()-t}function copyToClipboard(t){if(!document.execCommand)return!1;var e="_hiddenCopyText_";if(n=document.getElementById(e),!n){var n=document.createElement("textarea");n.style.position="absolute",n.style.left="-9999px",n.style.top="0",n.id=e,document.body.appendChild(n)}n.textContent=t;var r=document.activeElement;n.focus(),n.setSelectionRange(0,n.value.length);var i;try{i=document.execCommand("copy")}catch(a){i=!1}return r&&"function"==typeof r.focus&&r.focus(),n.textContent="",i}function errorMsg(t,e){$("#notif").addClass("error"),notify.show(t,e||3e3)}function infoMsg(t,e){$("#notif").removeClass("error"),notify.show(t,e||3e3)}!function(){"use strict";function t(){var t;for(p=!0,t=0;t- The webserver is built using the great esp-httpd + The webserver was built using the great esp-httpd library by Jeroen Domburg.