style.css 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. body {
  2. border: 0;
  3. margin: 0;
  4. margin-bottom:50px;
  5. padding-left: 12px;
  6. padding-right: 12px;
  7. }
  8. a {
  9. color: #fff;
  10. transition: color .2s ease-out;
  11. text-decoration: none
  12. }
  13. a:hover {
  14. color: #99f;
  15. text-decoration: none
  16. }
  17. input:focus,
  18. select:focus,
  19. textarea:focus,
  20. button:focus {
  21. outline: none;
  22. }
  23. .blur {
  24. -webkit-filter: blur(2px);
  25. -moz-filter: blur(2px);
  26. -ms-filter: blur(2px);
  27. -o-filter: blur(2px);
  28. filter: blur(2px);
  29. }
  30. .ape {
  31. padding: 10px 0px 10px 10px;
  32. background-color: #444;
  33. }
  34. .ape:hover {
  35. cursor: pointer;
  36. }
  37. header {
  38. border-bottom: 1px solid #000;
  39. border-top: 1px solid #000;
  40. }
  41. section {
  42. border-bottom: 1px solid #000;
  43. border-top: 1px solid #000;
  44. }
  45. h1 {
  46. margin: 0;
  47. margin-top: 20px;
  48. padding: 10px;
  49. text-transform: uppercase;
  50. color: #888;
  51. font-size: 1.6em
  52. }
  53. h2 {
  54. margin: 0;
  55. margin-top: 20px;
  56. padding: 10px;
  57. text-transform: uppercase;
  58. color: #888;
  59. font-size: 1.0em
  60. }
  61. h3 {
  62. margin: 0;
  63. text-align: center;
  64. padding: 20px 0px 20px 0px;
  65. }
  66. .gr {
  67. color: green;
  68. }
  69. .rd {
  70. color: red;
  71. }
  72. #wifi-status {
  73. display: none;
  74. }
  75. #connect {
  76. display: none;
  77. }
  78. #connect_manual {
  79. display: none;
  80. }
  81. #manual_ssid {
  82. border: none;
  83. width: 80%;
  84. padding: 10px 0px 10px 10px;
  85. display: block
  86. }
  87. #manual_pwd {
  88. border: none;
  89. width: 80%;
  90. padding: 10px 0px 10px 10px;
  91. display: block
  92. }
  93. #pwd {
  94. border: none;
  95. width: 80%;
  96. padding: 10px 0px 10px 10px;
  97. display: block
  98. }
  99. .buttons {
  100. padding: 15px;
  101. }
  102. #join {
  103. float: right;
  104. }
  105. #manual_join {
  106. float: right;
  107. }
  108. #yes-disconnect {
  109. display: inline-block;
  110. }
  111. #no-disconnect {
  112. display: inline-block;
  113. }
  114. .tctr {
  115. text-align: center;
  116. }
  117. #connect-wait {
  118. display: none;
  119. }
  120. #connect-success {
  121. display: none;
  122. }
  123. #connect-fail {
  124. display: none;
  125. }
  126. #connect-details {
  127. display: none;
  128. }
  129. #diag-disconnect {
  130. display: none;
  131. }
  132. .fr {
  133. float: right;
  134. margin-right: 20px;
  135. }
  136. .w0 {
  137. background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvsAAABzUlEQVRIS+WUTShEURTH3zyRhjQ+8hWxmCJMoSzEwsbCgi1LZRYW9pONptiwka9iI81CWFpYaEqNMkVKmpWN1IhYKN9ZDL/z3p3mxZh5g9X4168799xz/vPefedeLeuVC+3gdTgc07CsmCQ2DI2gg21Jci30wSpGt/CeghickTsHPVACDkgqp67rPgpO4E0ZZMIj7OHhxSvPtEyomcVDeFXJv+EZNvEsNa01rZfAuSUhThR2wU+ObJkbyhRNMMDaDIThBqy1MdZ3wAPawqfFC2Lj0Ab5kpBGxdAJs9TeW72ITUhCPZMjFYwwbwXpnkwlDzOIx50yXwP5c0MeggHGanNqSDqqBqQ7/Kxvg2zHAfMN8IE8uZhYO6eBnBXGKnOakLWfaQZ9jMRjSPXhZUuC5A9JjVFpKkeNSVVA0Tq8KJN0yFl4gilqbW2tm+SQKoybXIG8jcT34RSsh1Byt6iVg2ZLlRCg6JpROqEDpFheXZ5S9rcLFsl5YJwHad+MVA5y13w5lRY5oRsKjdm/Vz/7LR86zG+5wr+9NX+iOowjEO+aELEic+lv1ILppeUPosRst6QduTANgnE2mC+BnYswI1VwfYzCCL9dZij7pWkf6UeSTYAuE/QAAAAASUVORK5CYII=') no-repeat right top;
  138. height: 24px;
  139. margin-right: 20px;
  140. }
  141. .w1 {
  142. background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEQAACxEBf2RfkQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xNkRpr/UAAAHiSURBVEhL5dRPKINxHMfxPVskpA35F3FYEVasHBYHFwcHrhyVZ8vBfblIceEi/4qLtINwdHCQUpQVKcnJRYqIg/J3OYz399nv0YPNtuzEt149+31/v+/n4fGYLVHpup4Rnyregd+K27TIghe63+8fx7wySqsPdbAj3qzha0MOV6ETiwTd4u0HUZxydgrtKISGj0xreG4gEAgycIRXFZCOR2yTQZSebeaa4Q1s7iOiDv/GM1bJLDJv0EHjzHLAdIFNjHBGHpkbxUo9utmbQBg3sM5G2d+AR24w82XznN4QmpGjXrCExRkXfJhk9t6aRW9YDtSwOFDNE9ZNyFLzKRczOegh406FL8ElG8JDM8S1Qtaq7KhEO0Y0TVtHGHusVxCEDy5oMLNqyVrgWm5kqaYw3mdVdmqQsENE8JbAPbY43yszMqiyHOr66QayL5XH0DJeVEgyUTxhjNmPR/vtBpZyc3hHDZohV5DfRvq7OMYtrDdZY7YwFpG8yhBi6JrrMFogww7IT1mOVsxy5oHrNIqRVpWgDtnGKn7log35xurfVxfPW/7QYT57Ybz7mapqgk9gvjU79ApiW5mpRkIvLTe4oJfyK5lKOQndgvG/wXoOSb8I061Svj4G0M9nZ6z198tmeweYtIrMYP17VAAAAABJRU5ErkJggg==') no-repeat right top;
  143. height: 24px;
  144. margin-right: 20px;
  145. }
  146. .w2 {
  147. background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEQAACxEBf2RfkQAAABl0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC4xNkRpr/UAAAHkSURBVEhL3dRLKERRGMDxuSPSkLzyilgo8iiUhVjYWFiwZancmSzsZSPFho28io1kISwtLKQURZGSrGykiFgo7yyG/zdzznRm5iK5Sk79uvd85/u++5hzx2Pb9q9yDLrJMWhIRB1sv98/ghlliFAXyuGFU21IbECSi9CKORrd4O0TQZyQO45mZMJCpKfZ3BcIBPooOMSravAdD9ikB63sJN1XN69kcQ8vKvknnrBMzyx9gRYCp0aCdo51DJIjr6wU2UoF2lkbxS6uYdYGWV9DtVxgMmbxjFg/apEM/ZQfyUADxqi9M3sRG5CEEib7KnjMvAaye2IbfUVupoMet6r5PDL0YjXBBY4Fai5kRxVCdscg66uQ17HDfAl9kDuXJzB3Thk5sxzzZa6DumHknN3QS+IBPvvh5ZVskN8ZU5+gz3XAlELRIp5Vk6/It/CIYWrjXm3URCkleUsV6iaXkKeR+DaOYH6EkrtCrXxoUf2iJoY8LFB0xXEA9ZBieXS5S3m/jZgi557jBGT7xvWKCxhyIP81ka/SgQ9NSDViURyDbvpTo82yrAPscl4HKxR1aRTT+BhvyhaxtPCSO6OKphfGBc6JZYaX3BnpNN1AUC7AfBrJoRUXR67X6+1BN+fp4dD/Hx7PO4o9VGuAapKIAAAAAElFTkSuQmCC') no-repeat right top;
  148. height: 24px;
  149. margin-right: 20px;
  150. }
  151. .w3 {
  152. background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAACAElEQVRIS7XUP0gbYRjH8VSpiBZJWvEflXYQKtqACg6ig4uDg651LPQSHLpLlyDoUhdpVdBFxEG0YwcHCQgRFJSCFKcuUohY6iC0VYtD9PuE9w3vXZ74h16HD3fv733e53KX9y7ied5/pYZhUkPHQ3TBSyQS7zFvTBC9RivKoK3NCwZS3IxBLNLoBFc3yOEbtR/Qj8d4gEJPt3lVMpkcY8E+Lk2D+/iDTXrQyquwfW3zdiZ38dcU/4tzrNHzib3AAMGhU2BlsYFxauSRtaDWaMMwc1PYwU+4a3PMryMuF5gJTH4ne4dOVMLeZSkx9GCatb/cXmQpKXjOYM+EB4w7ILsn2Og28mNe0ePUNF9CzE7GCZc5NpmxkB31FLI7xpn/DHkc24xXMQb55XIH7s55Qc0Cx0YZ29A2LJyzG95S+AU3/fHySNLUjwTWl9tzG7iqWbSCC9PkNvIunGGStUWP1jcwWijOmIW2yTHkbiTfwle4L6HUfmKtvGi+fr6BowHLLPrBMYVuyGK5dfmV8nx7MUvNb44fIdu3qFdR4KiDfGsKb6WiCn145GQ+ahgmNQyTGpYwxPOWP3qHc/mE+76apaih4hmND2B3TYasJlCjUkPFS5oeORfIkhVtSY0aKqI0TSP/bjCew10+hPf6D+r5fIziDefRwFxJahgmNQyPF7kGEsc1es+A2E4AAAAASUVORK5CYII=') no-repeat right top;
  153. height: 24px;
  154. margin-right: 20px;
  155. }
  156. .pw {
  157. background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvsAAABIUlEQVRIS+3VsU7CUBTGcYhBJCwqwcmEJ2DkCQgzb8ADmLgYWXTzMVjcGNjYGEAXgoSRhTg5OroYIyFY/h+hWGwvtzQ0LpzkF8i5l/uRQ2kTjuPEKrC5T79vzHWJO4wxwzeGuMY5AitsQBFvmEObvNQboQBfhQk4gQ5wD+zgBrcYrHrSwzE2KkxAHVrQWB6QgiqJLB7xA+2pYaNsAWm8QAsa0Sn+1gU+oT1NHGFdtoAcJtBCSw1DuaPqQiNdly0gj1doQaMwleavPc+IJUDffKeADO7Rxxe08A4dEOQD2qPXJ1xh+VuYAirQVaNGFFPov2MM0OXm/UAUZRwCtjoEWP1vQBXuLTgKPYRKMAacoY0oIboDNLB8+PgC4hLY3B8nsQCQEf56jLJoQAAAAABJRU5ErkJggg==') no-repeat right top;
  158. height: 24px;
  159. margin-right: 20px;
  160. height: 24px;
  161. margin-right: 30px;
  162. }
  163. /* SpinKit is licensed under the MIT License. Copyright (c) 2015 Tobias Ahlin */
  164. .spinner {
  165. width: 40px;
  166. height: 40px;
  167. position: relative;
  168. margin: 100px auto;
  169. }
  170. .double-bounce1,
  171. .double-bounce2 {
  172. width: 100%;
  173. height: 100%;
  174. border-radius: 50%;
  175. background-color: #333;
  176. opacity: 0.6;
  177. position: absolute;
  178. top: 0;
  179. left: 0;
  180. -webkit-animation: sk-bounce 2.0s infinite ease-in-out;
  181. animation: sk-bounce 2.0s infinite ease-in-out;
  182. }
  183. .double-bounce2 {
  184. -webkit-animation-delay: -1.0s;
  185. animation-delay: -1.0s;
  186. }
  187. @-webkit-keyframes sk-bounce {
  188. 0%, 100% {
  189. -webkit-transform: scale(0.0)
  190. }
  191. 50% {
  192. -webkit-transform: scale(1.0)
  193. }
  194. }
  195. @keyframes sk-bounce {
  196. 0%, 100% {
  197. transform: scale(0.0);
  198. -webkit-transform: scale(0.0);
  199. }
  200. 50% {
  201. transform: scale(1.0);
  202. -webkit-transform: scale(1.0);
  203. }
  204. }
  205. /* end of SpinKit */
  206. /* daduke stuff */
  207. input[type='text'], input[type='password'], textarea {
  208. background: #999;
  209. border: 0;
  210. padding: 4px;
  211. }
  212. input.gpio {
  213. width: 2em;
  214. color: #000;
  215. height: 1.8em;
  216. }
  217. .custom-switch {
  218. margin-left: 8px;
  219. }
  220. .custom-switch, .custom-radio {
  221. padding-left: 2.25rem;
  222. padding-bottom: 1rem;
  223. }
  224. .custom-checkbox > .custom-control-label {
  225. padding-top: 0.5rem;
  226. padding-left: 2rem;
  227. padding-bottom: 0.1rem;
  228. }
  229. .custom-switch .custom-control-label::before {
  230. left: -2.25rem;
  231. height: 2rem;
  232. width: 3.5rem;
  233. pointer-events: all;
  234. border-radius: 1rem;
  235. background-color: #f00;
  236. }
  237. .custom-switch .custom-control-label::after {
  238. top: calc(0.25rem + 2px);
  239. left: calc(-2.25rem + 2px);
  240. width: calc(2rem - 4px);
  241. height: calc(2rem - 4px);
  242. background-color: #adb5bd;
  243. border-radius: 2rem;
  244. transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;
  245. transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  246. transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out;
  247. }
  248. @media (prefers-reduced-motion: reduce) {
  249. .custom-switch .custom-control-label::after {
  250. transition: none;
  251. }
  252. }
  253. .custom-switch .custom-control-input:checked ~ .custom-control-label::before {
  254. background-color: #0f0;
  255. }
  256. .custom-switch .custom-control-input:checked ~ .custom-control-label::after {
  257. background-color: #fff;
  258. -webkit-transform: translateX(1.5rem); //translateX(0.75rem);
  259. transform: translateX(1.5rem); //translateX(0.75rem);
  260. }
  261. textarea#autoexec1, textarea#fwurl, div#upload {
  262. width: 80%;
  263. }
  264. input, textarea {
  265. border-radius: 3px;
  266. border: 1px solid transparent;
  267. border-top: none;
  268. border-bottom: 1px solid #DDD;
  269. box-shadow: inset 0 1px 2px rgba(0,0,0,.39), 0 -1px 1px #FFF, 0 1px 0 #FFF;
  270. }
  271. #otadiv {
  272. display: none;
  273. }
  274. #btsinkdiv {
  275. display: none;
  276. }
  277. .tooltip-inner {
  278. font-family: monospace, monospace;
  279. font-size: 70%;
  280. }
  281. #progress {
  282. width: 60%;
  283. }
  284. .progress-bar {
  285. color: #fff;
  286. background-color: #037AF0;
  287. }
  288. span#flash-status {
  289. padding-left: 15px;
  290. font-size: 120%;
  291. }
  292. #info {
  293. padding-top: 7px;
  294. float: right;
  295. }
  296. svg#battery {
  297. fill: #ddd;
  298. }
  299. svg#output {
  300. fill: #ddd;
  301. padding-right: 4px;
  302. }
  303. svg#jack {
  304. fill: #ddd;
  305. padding-right: 4px;
  306. }
  307. ul#navbar {
  308. border-bottom: 0px;
  309. }
  310. #content {
  311. border-top: 1px solid black;
  312. }
  313. .footer {
  314. position: fixed;
  315. left: 0;
  316. bottom: 0;
  317. width: 100%;
  318. background-color: #555;
  319. color: white;
  320. text-align: center;
  321. }
  322. .sl {
  323. background-color: #053c1e;
  324. }
  325. .recovery {
  326. background-color: #3c0505;
  327. }
  328. td.value {
  329. width: 80%;
  330. }
  331. #boot-div {
  332. float: right;
  333. }
  334. iframe#dummyframe {
  335. float: right;
  336. border: none;
  337. }
  338. div#message {
  339. display: none;
  340. color: #000;
  341. background: #f00;
  342. position:fixed;
  343. padding: 8px;
  344. top: 20%;
  345. left: 50%;
  346. width:20em;
  347. height:4em;
  348. text-align: center;
  349. margin-left: -10em; /*set to a negative number 1/2 of your width*/
  350. margin-top: -2em; /*set to a negative number 1/2 of your height*/
  351. border-radius: 8px;
  352. box-shadow: 0px 5px 2px -5px rgba(255, 255, 255, 0.5) inset, 0px 10px 20px -5px rgba(255, 255, 255, 0.1) inset, 0 0px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 1px rgba(0, 0, 0, 0.12), 0 1px 10px 0 rgba(0, 0, 0, 0.3);
  353. }
  354. tr.hide {
  355. display: none;
  356. }
  357. #searchfw {
  358. float: right;
  359. display: none;
  360. }
  361. button#updateAP {
  362. float: right;
  363. display: inline;
  364. }