Merge pull request #2236 from simontretter/master
[oweals/luci.git] / themes / luci-theme-material / htdocs / luci-static / material / cascade.css
1 /**
2  *  Material is a clean HTML5 theme for LuCI. It is based on luci-theme-bootstrap and MUI
3  *
4  *  luci-theme-material
5  *      Copyright 2015 Lutty Yang <lutty@wcan.in>
6  *
7  *  Have a bug? Please create an issue here on GitHub!
8  *      https://github.com/LuttyYang/luci-theme-material/issues
9  *
10  *  luci-theme-bootstrap:
11  *      Copyright 2008 Steven Barth <steven@midlink.org>
12  *      Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
13  *      Copyright 2012 David Menting <david@nut-bolt.nl>
14  *
15  *  MUI:
16  *      https://github.com/muicss/mui
17  *
18  *  Licensed to the public under the Apache License 2.0
19  */
20
21 /*
22  *  Include custom css
23  */
24 @import url("custom.css");
25
26 /*
27  *  Font generate by Icomoon<icomoon.io>
28  */
29 @font-face {
30     font-family: 'icomoon';
31     src: url('fonts/font.eot');
32     src: url('fonts/font.eot') format('embedded-opentype'),
33     url('fonts/font.ttf') format('truetype'),
34     url('fonts/font.woff') format('woff'),
35     url('fonts/font.svg') format('svg');
36     font-weight: normal;
37     font-style: normal;
38 }
39
40 .table { display: table; position: relative; }
41 .tr    { display: table-row; }
42 .thead { display: table-header-group; }
43 .tbody { display: table-row-group; }
44 .tfoot { display: table-footer-group; }
45 .td, .th {
46     vertical-align: middle;
47     text-align: center;
48     display: table-cell;
49     padding: .5em;
50 }
51
52 .th {
53     font-weight: bold;
54 }
55
56 .tr.placeholder {
57     height: 4em;
58 }
59
60 .tr.placeholder > .td {
61     position: absolute;
62     left: 0;
63     right: 0;
64     bottom: 0;
65     text-align: center;
66     line-height: 3em;
67     background: inherit;
68 }
69
70 .table[width="33%"], .th[width="33%"], .td[width="33%"] { width: 33%; }
71 .table[width="100%"], .th[width="100%"], .td[width="100%"] { width: 100%; }
72
73 .col-1 { flex: 1 1 30px !important; -webkit-flex: 1 1 30px !important; }
74 .col-2 { flex: 2 2 60px !important; -webkit-flex: 2 2 60px !important; }
75 .col-3 { flex: 3 3 90px !important; -webkit-flex: 3 3 90px !important; }
76 .col-4 { flex: 4 4 120px !important; -webkit-flex: 4 4 120px !important; }
77 .col-5 { flex: 5 5 150px !important; -webkit-flex: 5 5 150px !important; }
78 .col-6 { flex: 6 6 180px !important; -webkit-flex: 6 6 180px !important; }
79 .col-7 { flex: 7 7 210px !important; -webkit-flex: 7 7 210px !important; }
80 .col-8 { flex: 8 8 240px !important; -webkit-flex: 8 8 240px !important; }
81 .col-9 { flex: 9 9 270px !important; -webkit-flex: 9 9 270px !important; }
82 .col-10 { flex: 10 10 300px !important; -webkit-flex: 10 10 300px !important; }
83
84 .cbi-button-up,
85 .cbi-button-down,
86 .cbi-value-helpicon,
87 .showSide,
88 .main > .loading > span {
89     font-family: 'icomoon' !important;
90     speak: none;
91     font-style: normal !important;
92     font-weight: normal !important;
93     font-variant: normal !important;
94     text-transform: none !important;
95     line-height: 1;
96
97     -webkit-font-smoothing: antialiased;
98     -moz-osx-font-smoothing: grayscale;
99 }
100
101 * {
102     margin: 0;
103     padding: 0;
104     box-sizing: border-box;
105 }
106
107 .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
108     font-family: inherit;
109     font-weight: 400;
110     line-height: 1.1;
111     color: inherit;
112 }
113
114 html {
115     -webkit-text-size-adjust: 100%;
116     -ms-text-size-adjust: 100%;
117 }
118
119 body {
120     font-size: 0.8rem;
121     background-color: #EEE;
122 }
123
124 html, body {
125     margin: 0px;
126     padding: 0px;
127     height: 100%;
128     font-family: var(--font-body, "Microsoft Yahei", "WenQuanYi Micro Hei", "sans-serif", "Helvetica Neue", "Helvetica", "Hiragino Sans GB");
129 }
130
131 select {
132     padding: 0.36rem 0.8rem;
133     color: #555;
134     background-color: #fff;
135     background-image: none;
136     border: 1px solid #ccc;
137 }
138
139 select,
140 input,
141 .cbi-dropdown {
142     background-color: transparent;
143     color: rgba(0, 0, 0, .87);
144     border: none;
145     border-bottom: 2px solid rgba(0, 0, 0, .26);
146     outline: 0;
147     padding: 0;
148     box-shadow: none;
149     border-radius: 0;
150     background-image: none;
151     height: 1.8rem;
152     font-size: 0.8rem;
153 }
154
155 select:not([multiple="multiple"]):focus,
156 input:focus {
157     border-color: var(--main-color, #0099CC);
158 }
159
160 select[multiple="multiple"] {
161     height: auto;
162 }
163
164 code {
165     color: var(--main-color, #0099CC);
166 }
167
168 abbr {
169     color: #005470;
170     text-decoration: underline;
171     cursor: help;
172 }
173
174 hr {
175     margin: 1rem 0;
176     border-color: #EEE;
177     opacity: 0.1;
178 }
179
180 header, .main {
181     width: 100%;
182     position: absolute;
183 }
184
185 header {
186     box-shadow: 0 2px 5px rgba(0, 0, 0, .26);
187     transition: box-shadow .2s;
188     float: left;
189     position: fixed;
190     z-index: 2000;
191 }
192
193 footer {
194     text-align: right;
195     padding: 1rem;
196     color: #aaa;
197     font-size: 0.8rem;
198     text-shadow: 0px 0px 2px #BBB;
199 }
200
201 footer > a {
202     color: #aaa;
203     text-decoration: none;
204 }
205
206 .main {
207     top: 5rem;
208     bottom: 0rem;
209     position: relative;
210     height: 100%;
211     height: calc(100% - 4rem);
212 }
213
214 .main > .loading {
215     position: fixed;
216     width: 100%;
217     height: 100%;
218     z-index: 1000;
219     display: block;
220     background-color: rgb(240, 240, 240);
221     top: 0;
222 }
223
224 .main > .loading > span {
225     display: block;
226     text-align: center;
227     margin-top: 2rem;
228     color: #888;
229     font-size: 1.2rem;
230 }
231
232 .main > .loading > span > .loading-img:before {
233     content: "\e603";
234 }
235
236 .main > .loading > span > .loading-img {
237     animation: anim-rotate 2s infinite linear;
238     display: inline-block;
239     margin: 5rem;
240 }
241
242 @keyframes anim-rotate {
243     0% {
244         -webkit-transform: rotate(0);
245         -ms-transform: rotate(0);
246         transform: rotate(0);
247     }
248     100% {
249         -webkit-transform: rotate(360deg);
250         -ms-transform: rotate(360deg);
251         transform: rotate(360deg)
252     }
253 }
254
255 .main-left {
256     float: left;
257     top: 5rem;
258     width: 15%;
259     width: calc(0% + 15rem);
260     height: 100%;
261     height: calc(100% - 4rem);
262     background-color: var(--menu-bg-color, #FFFFFF);
263     overflow-x: auto;
264     position: fixed;
265 }
266
267 .main-right {
268     width: 85%;
269     width: calc(100% - 15rem);
270     float: right;
271     height: 100%;
272     background-color: #EEE;
273 }
274
275 .main-right > #maincontent {
276     background-color: #EEE;
277 }
278
279 .pull-right {
280     float: right;
281 }
282
283 .pull-left {
284     float: left;
285 }
286
287 header {
288     background: var(--header-bg, #0099CC);
289     color: var(--header-color, #FFFFFF);
290     height: 5rem;
291 }
292
293 header > .fill > .container {
294     padding-top: 0.25rem; 
295     padding-right: 1rem;
296     padding-bottom: 0.25rem;
297     display: flex;
298     align-items: center;
299     height: 5rem;
300 }
301
302 header > .fill > .container > .brand {
303     font-size: 2rem;
304     color: var(--header-color, #FFFFFF);
305     text-decoration: none;
306     cursor: default;
307     margin-left: 1rem;
308 }
309
310 header > .fill > .container > img{
311     max-height: 4.5rem;
312     width: calc(0% + 13rem);
313     margin: 1rem;
314 }
315
316 header > .fill > .container > .status {
317     display: flex;
318     justify-content: flex-end;
319     flex-grow: 8;
320 }
321
322 .danger {
323     background-color: #FA8072 !important;
324     color: black;
325 }
326
327 .warning {
328     background-color:  #F0E68C !important;
329     color: black;
330 }
331
332 .success {
333     background-color: #90EE90 !important;
334     color: black;
335 }
336
337 .alert-message {
338     margin: 2rem 0 0 0;
339     padding: 1rem;
340     border: 0;
341     font-weight: normal;
342     font-style: normal;
343     line-height: 1;
344     font-family: inherit;
345     min-width: inherit;
346     overflow: auto;
347     border-radius: 0;
348     background-color: #FFF;
349     box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
350 }
351
352 .error {
353     color: red;
354 }
355
356 .alert-message > h4 {
357     font-weight: bold;
358     font-size: 110%;
359 }
360
361 .alert-message > * {
362     margin: .5rem 0;
363 }
364
365 #maincontent > .container > div:nth-child(1).alert-message.warning > a {
366     font: inherit;
367     overflow: visible;
368     text-transform: none;
369     display: inline-block;
370     margin-bottom: 0;
371     font-weight: 400;
372     text-align: center;
373     white-space: nowrap;
374     vertical-align: middle;
375     touch-action: manipulation;
376     cursor: pointer;
377     -webkit-user-select: none;
378     -moz-user-select: none;
379     -ms-user-select: none;
380     user-select: none;
381     background-image: none;
382     min-width: 6rem;
383     padding: 0.5rem 1rem;
384     font-size: 0.9rem;
385     line-height: 1.42857143;
386     color: #fff;
387     background-color: #5bc0de;
388     border-color: #46b8da;
389     margin-top: 2rem;
390     text-decoration: inherit;
391 }
392
393 .main > .main-left > .nav {
394     margin-top: 0.5rem;
395 }
396
397 .main > .main-left > .nav > li a {
398     color: var(--menu-color, #404040);
399     display: block;
400 }
401
402 .main > .main-left > .nav > li:nth-last-child(1) {
403     margin-top: 1rem;
404     margin-bottom: 1rem;
405     font-size: 1.2rem;
406 }
407
408 .main > .main-left > .nav > li {
409     padding: 0.5rem 1rem;
410     cursor: pointer;
411 }
412
413 .main > .main-left > .nav > .slide {
414     padding: 0;
415 }
416
417 .main > .main-left > .nav > .slide > ul {
418     display: none;
419 }
420
421 .main > .main-left > .nav > .slide > .menu {
422     display: block;
423     padding: 0.5rem 1rem;
424     text-decoration: none;
425     cursor: default;
426     font-size: 1.15rem;
427 }
428
429 .main > .main-left > .nav > li:hover,
430 .main > .main-left > .nav > .slide > .menu:hover {
431     background: var(--submenu-bg-hover, #D4D4D4)
432 }
433
434 .main > .main-left > .nav > .slide:hover {
435     background: none;
436 }
437
438 .main > .main-left > .nav > .slide > .slide-menu > li {
439     padding: 0.4rem 2rem;
440 }
441
442 .main > .main-left > .nav > .slide > .slide-menu > .active {
443     background-color: var(--submenu-bg-hover-active, #0099CC);
444 }
445
446 .main > .main-left > .nav > .slide > .slide-menu > li > a {
447     text-decoration: none;
448     white-space: nowrap;
449 }
450
451 .main > .main-left > .nav > .slide > .slide-menu > .active > a {
452     color: white;
453 }
454
455 .main > .main-left > .nav > .slide > .slide-menu > li:hover {
456     background: var(--submenu-bg-hover, #D4D4D4)
457 }
458
459 .main > .main-left > .nav > .slide > .slide-menu > .active:hover {
460     background-color: var(--main-color, #0099CC);
461     cursor: hand;
462 }
463
464 li {
465     list-style-type: none;
466 }
467
468 #maincontent > .container {
469     margin: 0 2rem 1rem 2rem;
470 }
471
472 h1 {
473     font-size: 2rem;
474     padding-bottom: 10px;
475     border-bottom: 1px solid #eee;
476 }
477
478 h2 {
479     margin: 2rem 0 0 0;
480     font-size: 1.8rem;
481     padding-bottom: 10px;
482     border-bottom: 1px solid #eee;
483 }
484
485 h3 {
486     margin: 2rem 0 0 0;
487     font-size: 1.4rem;
488     padding-bottom: 10px;
489 }
490
491 h4 {
492     margin: 2rem 0 0 0;
493     font-size: 1.2rem;
494     padding-bottom: 10px;
495 }
496
497 .cbi-section {
498     margin: 1rem 0 0 0;
499     padding: 2rem;
500     border: 0;
501     font-weight: normal;
502     font-style: normal;
503     line-height: 1;
504     font-family: inherit;
505     min-width: inherit;
506     border-radius: 0;
507     background-color: #FFF;
508     box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
509
510     -webkit-overflow-scrolling: touch;
511 }
512
513 .cbi-map-descr + fieldset {
514     margin-top: 1rem;
515 }
516
517 .cbi-section > legend {
518     display: none !important;
519 }
520
521 fieldset > fieldset {
522     margin: 0;
523     padding: 0;
524     border: none;
525     box-shadow: none;
526 }
527
528 .cbi-section > h3:first-child,
529 .panel-title {
530     width: 100%;
531     display: block;
532     line-height: 1;
533     color: #404040;
534     font-size: 1.4rem;
535     padding-bottom: 1rem;
536     border-bottom: 1px solid #eee;
537     margin: 0;
538 }
539
540 table {
541     border-spacing: 0;
542     border-collapse: collapse;
543 }
544
545 table, .table {
546     width: 100%;
547     border: 1px solid #eee;
548 }
549
550 table > tbody > tr > td, table > tbody > tr > th, table > tfoot > tr > td, table > tfoot > tr > th, table > thead > tr > td, table > thead > tr > th,
551 .table > .tbody > .tr > .td, .table > .tbody > .tr > .th, .table > .tfoot > .tr > .td, .table > .tfoot > .tr > .th, .table > .thead > .tr > .td, .table > .thead > .tr > .th {
552     padding: .5rem;
553     border-top: 1px solid #ddd;
554     white-space: nowrap;
555 }
556
557 .cbi-section-table-cell {
558     white-space: nowrap;
559     align-self: flex-end;
560     flex: 1 1 auto;
561 }
562
563 .cbi-section-table {
564     border: none;
565 }
566
567 .cbi-section-table-row {
568     text-align: center;
569     margin-bottom: 1rem;
570     background: #f4f4f4;
571     box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
572 }
573
574 .cbi-section-table-row:last-child {
575     margin-bottom: 0;
576 }
577
578 .cbi-section-table-row > .cbi-value-field .cbi-input-select,
579 .cbi-section-table-row > .cbi-value-field .cbi-input-text,
580 .cbi-section-table-row > .cbi-value-field .cbi-input-password,
581 .cbi-section-table-row > .cbi-value-field .cbi-dropdown {
582     width: 100%;
583 }
584
585 .cbi-section-table-row > .cbi-value-field [data-dynlist] > input,
586 .cbi-section-table-row > .cbi-value-field input.cbi-input-password {
587     width: calc(100% - 1.5rem);
588 }
589
590 div > table > tbody > tr:nth-of-type(2n),
591 div > .table > .tbody > .tr:nth-of-type(2n) {
592     background-color: #f9f9f9;
593 }
594
595 div > table > tbody > tr:nth-of-type(2n),
596 div > .table > .tbody > .tr:nth-of-type(2n) {
597     background-color: #f9f9f9;
598 }
599
600 /* fix progress bar */
601 #swaptotal > div,
602 #swapfree > div,
603 #memfree > div,
604 #membuff > div,
605 #conns > div,
606 #memtotal > div {
607     width: 100% !important;
608     height: 1.2rem !important;
609 }
610
611 #swaptotal > div > div,
612 #swapfree > div > div,
613 #memfree > div > div,
614 #membuff > div > div,
615 #conns > div > div,
616 #memtotal > div > div {
617     height: 100% !important;
618     background-color: var(--main-color, #0099CC) !important;
619 }
620
621 /* fix multiple table */
622
623 table table,
624 .table .table {
625     border: none;
626 }
627
628 .cbi-value-field table,
629 .cbi-value-field .table {
630     border: none;
631 }
632
633 td > table > tbody > tr > td,
634 .td > .table > .tbody > .tr > .td {
635     border: none;
636 }
637
638 .cbi-value-field > table > tbody > tr > td,
639 .cbi-value-field > .table > .tbody > .tr > .td {
640     border: none;
641 }
642
643 /* button style */
644
645 .btn, .cbi-button {
646     -webkit-appearance: none;
647     text-transform: uppercase;
648     color: rgba(0, 0, 0, 0.87);
649     background-color: #F0F0F0;
650     transition: all 0.2s ease-in-out;
651     display: inline-block;
652     padding: 0 0.8rem;
653     border: none;
654     border-radius: 0.2rem;
655     cursor: pointer;
656     -ms-touch-action: manipulation;
657     touch-action: manipulation;
658     background-image: none;
659     text-align: center;
660     vertical-align: middle;
661     white-space: nowrap;
662     -webkit-user-select: none;
663     -moz-user-select: none;
664     -ms-user-select: none;
665     user-select: none;
666     font-size: 0.8rem;
667     width: auto !important;
668     display: inline-block;
669     text-decoration: none;
670 }
671
672 .btn:hover,
673 .btn:focus,
674 .btn:active,
675 .cbi-button:hover,
676 .cbi-button:focus,
677 .cbi-button:active,
678 .cbi-page-actions .cbi-button-apply + .cbi-button-save:hover,
679 .cbi-page-actions .cbi-button-apply + .cbi-button-save:focus,
680 .cbi-page-actions .cbi-button-apply + .cbi-button-save:active {
681     outline: 0;
682     text-decoration: none;
683     background-color: rgba(250, 250, 250, 0.7);
684 }
685
686 .btn:hover,
687 .btn:focus,
688 .cbi-button:hover,
689 .cbi-button:focus {
690     box-shadow: 0 0px 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
691 }
692
693 .btn:active,
694 .cbi-button:active {
695     box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
696 }
697
698 .btn:disabled,
699 .cbi-button:disabled {
700     cursor: not-allowed;
701     pointer-events: none;
702     opacity: 0.60;
703     box-shadow: none;
704 }
705
706 .cbi-page-actions .cbi-button-apply,
707 .cbi-section-actions .cbi-button-edit,
708 .cbi-button-edit.important,
709 .cbi-button-apply.important,
710 .cbi-button-reload.important,
711 .cbi-button-action.important {
712     color: #fff;
713     background-color: #337ab7;
714 }
715
716 .cbi-page-actions .cbi-button-save,
717 .cbi-button-add.important,
718 .cbi-button-save.important,
719 .cbi-button-positive.important {
720     color: #fff;
721     background-color: #5bc0de;
722 }
723
724 .cbi-button-remove.important,
725 .cbi-button-reset.important,
726 .cbi-button-negative.important {
727     color: #fff;
728     background-color: #d9534f;
729 }
730
731 .cbi-button-find,
732 .cbi-button-link,
733 .cbi-button-up,
734 .cbi-button-down,
735 .cbi-button-neutral {
736     border: 1px solid #bfbfbf;
737     background-color: transparent;
738 }
739
740 .cbi-button-edit,
741 .cbi-button-apply,
742 .cbi-button-reload,
743 .cbi-button-action {
744     color: #2e6da4;
745     border: 1px solid #2e6da4;
746     background-color: transparent;
747 }
748
749 .cbi-page-actions .cbi-button-apply + .cbi-button-save,
750 .cbi-button-add,
751 .cbi-button-save,
752 .cbi-button-positive {
753     color: #46b8da;
754     border: 1px solid #46b8da;
755     background-color: transparent;
756 }
757
758 .cbi-section-remove > .cbi-button,
759 .cbi-button-remove,
760 .cbi-button-reset,
761 .cbi-button-negative {
762     color: #d43f3a;
763     border: 1px solid #d43f3a;
764     background-color: transparent;
765 }
766
767 .cbi-page-actions .cbi-button-link:first-child {
768     float: left;
769 }
770
771 .a-to-btn {
772     text-decoration: none;
773 }
774
775 /* table */
776
777 .tabs {
778     margin: 0 -2rem;
779     padding-left: 0.5rem;
780     background-color: #FFFFFF;
781 }
782
783 .cbi-tabmenu > li,
784 .tabs > li {
785     display: inline-block;
786     padding: 0.6rem 0rem;
787 }
788
789 .cbi-tabmenu > li > a,
790 .tabs > li > a {
791     text-decoration: none;
792     color: #404040;
793     padding: 0.5rem 0.8rem;
794 }
795
796 .tabs > li[class~="active"],
797 .tabs > li:hover {
798     cursor: pointer;
799     border-bottom: 0.2rem solid var(--main-color, #0099CC);
800     color: var(--main-color, #0099CC);
801     margin-bottom: -0.18751rem;
802 }
803
804 .tabs > li[class~="active"] > a {
805     color: var(--main-color, #0099CC);
806 }
807
808 .tabs > li:hover {
809     border-bottom: 0.18751rem solid #C9C9C9;
810 }
811
812 .cbi-tabmenu {
813     border-top: 1px solid #D4D4D4;
814     border-left: 1px solid #D4D4D4;
815     border-right: 1px solid #D4D4D4;
816 }
817
818 .cbi-tabmenu > li:hover {
819     background-color: #F1F1F1;
820 }
821
822 .cbi-tabmenu > li[class~="cbi-tab"] {
823     background-color: white;
824 }
825
826 .cbi-tabmenu {
827     background-color: #D4D4D4;
828 }
829
830 .cbi-section-remove:nth-of-type(2n),
831 .cbi-section-node:nth-of-type(2n){
832     background-color: #f9f9f9;
833 }
834
835 .cbi-section-node-tabbed {
836     padding: 0;
837     margin-top: 0;
838     border-bottom: 1px solid #D4D4D4;
839     border-left: 1px solid #D4D4D4;
840     border-right: 1px solid #D4D4D4;
841 }
842
843 .cbi-tabcontainer > .cbi-value:nth-of-type(2n) {
844     background-color: #f9f9f9;
845 }
846
847 .cbi-value-field,
848 .cbi-value-description {
849     display: table-cell;
850     line-height: 1.25;
851 }
852
853 .cbi-value-helpicon > img {
854     display: none;
855 }
856
857 .cbi-value-helpicon:before {
858     content: "\f059";
859 }
860
861 .cbi-value-description {
862     font-size: small;
863     opacity: 0.5;
864     padding: 0.5rem 0 0 0;
865 }
866
867 .cbi-value-title {
868     word-wrap: break-word;
869     padding-top: 0.6rem;
870     width: 23rem;
871     float: left;
872     text-align: right;
873     padding-right: 2rem;
874     display: table-cell;
875 }
876
877 .cbi-value {
878     padding: 0.3rem 1rem;
879     display: inline-block;
880     width: 100%;
881 }
882
883 .cbi-section-table-descr > .cbi-section-table-cell,
884 .cbi-section-table-titles > .cbi-section-table-cell {
885     border: none;
886 }
887
888 .td[data-title]::before {
889     content: attr(data-title) ":\20";
890     font-weight: bold;
891     text-align: left;
892     display: none;
893     padding: .25rem 0;
894     white-space: nowrap;
895 }
896
897 .tr.placeholder .td[data-title]::before {
898     display: none;
899 }
900
901 .tr[data-title]::before,
902 .tr.cbi-section-table-titles.named::before {
903     content: attr(data-title) "\20";
904     font-weight: bold;
905     text-align: center;
906     display: table-cell;
907     align-self: center;
908     flex: 1 1 5%;
909     padding: .25rem;
910     white-space: normal;
911     word-wrap: break-word;
912     vertical-align: middle;
913 }
914
915 .cbi-rowstyle-1 {
916     background-color: #f9f9f9;
917 }
918
919 .cbi-rowstyle-2 {
920     background-color: #eee;
921 }
922
923 .cbi-rowstyle-2 .cbi-button-up,
924 .cbi-rowstyle-2 .cbi-button-down {
925     background-color: #FFF !important;
926 }
927
928 .cbi-section-table .cbi-section-table-titles .cbi-section-table-cell {
929     width: auto !important;
930 }
931
932 .td.cbi-section-actions {
933     text-align: right;
934     vertical-align: middle;
935 }
936
937 .td.cbi-section-actions > * {
938     display: flex;
939 }
940
941 .td.cbi-section-actions > * > *,
942 .td.cbi-section-actions > * > form > * {
943     flex: 1 1 4em;
944     margin: 0 1px;
945 }
946
947 .td.cbi-section-actions > * > form {
948     display: inline-flex;
949     margin: 0;
950 }
951
952 /* desc */
953 .cbi-section-descr,
954 .cbi-map-descr {
955     padding: 0.5rem;
956     color: #999;
957     font-size: small;
958 }
959
960
961 .cbi-dropdown {
962     display: inline-flex;
963     cursor: pointer;
964     position: relative;
965     padding: 0;
966     height: auto;
967 }
968
969 .cbi-dropdown:focus {
970     outline: 2px solid #4b6e9b;
971 }
972
973 .cbi-dropdown > ul {
974     margin: 0 !important;
975     padding: 0;
976     list-style: none;
977     overflow-x: hidden;
978     overflow-y: auto;
979     display: flex;
980     width: 100%;
981 }
982
983 .cbi-dropdown > ul.preview {
984     display: none;
985 }
986
987 .cbi-dropdown > .open {
988     border: 2px outset #eee;
989     flex-basis: 15px;
990     background: #eee;
991 }
992
993 .cbi-dropdown > .open,
994 .cbi-dropdown > .more {
995     flex-grow: 0;
996     flex-shrink: 0;
997     display: flex;
998     flex-direction: column;
999     justify-content: center;
1000     text-align: center;
1001     line-height: 2em;
1002     padding: 0 .25em;
1003 }
1004
1005 .cbi-dropdown > .more,
1006 .cbi-dropdown > ul > li[placeholder] {
1007     color: #777;
1008     font-weight: bold;
1009     text-shadow: 1px 1px 0px #fff;
1010     display: none;
1011 }
1012
1013 .cbi-dropdown > ul > li {
1014     display: none;
1015     padding: .25em;
1016     white-space: nowrap;
1017     overflow: hidden;
1018     text-overflow: ellipsis;
1019     flex-shrink: 1;
1020     flex-grow: 1;
1021     align-items: center;
1022     align-self: center;
1023     min-height: 20px;
1024 }
1025
1026 .cbi-dropdown > ul > li .hide-open { display: initial; }
1027 .cbi-dropdown > ul > li .hide-close { display: none; }
1028
1029 .cbi-dropdown > ul > li[display]:not([display="0"]) {
1030     border-left: 1px solid #ccc;
1031 }
1032
1033 .cbi-dropdown[empty] > ul {
1034     max-width: 1px;
1035 }
1036
1037 .cbi-dropdown > ul > li > form {
1038     display: none;
1039     margin: 0;
1040     padding: 0;
1041     pointer-events: none;
1042 }
1043
1044 .cbi-dropdown > ul > li img {
1045     vertical-align: middle;
1046     margin-right: .25em;
1047 }
1048
1049 .cbi-dropdown > ul > li > form > input[type="checkbox"] {
1050     margin: 0;
1051     height: auto;
1052 }
1053
1054 .cbi-dropdown > ul > li input[type="text"] {
1055     height: 20px;
1056 }
1057
1058 .cbi-dropdown[open] {
1059     position: relative;
1060 }
1061
1062 .cbi-dropdown[open] > ul.dropdown {
1063     display: block;
1064     background: #f6f6f5;
1065     border: 1px solid #918e8c;
1066     box-shadow: 0 0 4px #918e8c;
1067     position: absolute;
1068     z-index: 1000;
1069     max-width: none;
1070     min-width: 100%;
1071     width: auto;
1072 }
1073
1074 .cbi-dropdown > ul > li[display],
1075 .cbi-dropdown[open] > ul.preview,
1076 .cbi-dropdown[open] > ul.dropdown > li,
1077 .cbi-dropdown[multiple] > ul > li > label,
1078 .cbi-dropdown[multiple][open] > ul.dropdown > li,
1079 .cbi-dropdown[multiple][more] > .more,
1080 .cbi-dropdown[multiple][empty] > .more {
1081     flex-grow: 1;
1082     display: flex;
1083     align-items: center;
1084 }
1085
1086 .cbi-dropdown[empty] > ul > li,
1087 .cbi-dropdown[optional][open] > ul.dropdown > li[placeholder],
1088 .cbi-dropdown[multiple][open] > ul.dropdown > li > form {
1089     display: block;
1090 }
1091
1092 .cbi-dropdown[open] > ul.dropdown > li .hide-open { display: none; }
1093 .cbi-dropdown[open] > ul.dropdown > li .hide-close { display: initial; }
1094
1095 .cbi-dropdown[open] > ul.dropdown > li {
1096     border-bottom: 1px solid #ccc;
1097 }
1098
1099 .cbi-dropdown[open] > ul.dropdown > li[selected] {
1100     background: #b0d0f0;
1101 }
1102
1103 .cbi-dropdown[open] > ul.dropdown > li.focus {
1104     background: linear-gradient(90deg, #a3c2e8 0%, #84aad9 100%);
1105 }
1106
1107 .cbi-dropdown[open] > ul.dropdown > li:last-child {
1108     margin-bottom: 0;
1109     border-bottom: none;
1110 }
1111
1112 .cbi-dropdown[disabled] {
1113     pointer-events: none;
1114     opacity: .6;
1115 }
1116
1117 .cbi-dropdown .zonebadge {
1118     width: 100%;
1119 }
1120
1121 .cbi-dropdown[open] .zonebadge {
1122     width: auto;
1123 }
1124
1125
1126 /* luci */
1127
1128 .hidden {
1129     display: none
1130 }
1131
1132 .left, .left::before {
1133     text-align: left !important;
1134 }
1135
1136 .right, .right::before {
1137     text-align: right !important;
1138 }
1139
1140 .center, .center::before {
1141     text-align: center !important;
1142 }
1143
1144 .top {
1145     align-self: flex-start !important;
1146     vertical-align: top !important;
1147 }
1148
1149 .bottom {
1150     align-self: flex-end !important;
1151     vertical-align: bottom !important;
1152 }
1153
1154 .inline {
1155     display: inline;
1156 }
1157
1158 .cbi-page-actions {
1159     border-top: 1px solid #eee;
1160     padding-top: 1rem;
1161     text-align: right;
1162 }
1163
1164 /* input */
1165 .cbi-value input[type="password"],
1166 .cbi-value input[type="text"] {
1167     min-width: 15rem;
1168 }
1169
1170 /* select */
1171 .cbi-value-field .cbi-dropdown {
1172     min-width: 15rem;
1173 }
1174
1175 .cbi-value-field .cbi-input-select {
1176     width: 15rem;
1177 }
1178
1179 .th[data-type="button"], .td[data-type="button"],
1180 .th[data-type="fvalue"], .td[data-type="fvalue"] {
1181     flex: 1 1 2em;
1182     text-align: center;
1183 }
1184
1185 .ifacebadge {
1186     display: inline-flex;
1187     border-bottom: 1px solid #CCCCCC;
1188     padding: 0.5rem 1rem;
1189     box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1190     background: #fff;
1191 }
1192
1193 td > .ifacebadge,
1194 .td > .ifacebadge {
1195     background-color: #F0F0F0;
1196     font-size: 0.9rem;
1197 }
1198
1199 .ifacebadge > em,
1200 .ifacebadge > img {
1201     display: inline-block;
1202     margin: 0 .2rem;
1203     align-self: flex-start;
1204 }
1205
1206 .ifacebadge > img + img {
1207     margin: 0 .2rem 0 0;
1208 }
1209
1210 .network-status-table {
1211     display: flex;
1212     flex-wrap: wrap;
1213 }
1214
1215 .network-status-table .ifacebox {
1216     margin: .5em;
1217     flex-grow: 1;
1218 }
1219
1220 .network-status-table .ifacebox-body {
1221     display: flex;
1222     flex-direction: column;
1223     height: 100%;
1224 }
1225
1226 .network-status-table .ifacebox-body > span {
1227     flex: 10 10 auto;
1228 }
1229
1230 .network-status-table .ifacebox-body > div {
1231     display: flex;
1232     flex-wrap: wrap;
1233 }
1234
1235 .network-status-table .ifacebox-body .ifacebadge {
1236     flex: 1 1 auto;
1237     margin: .5em .25em 0 .25em;
1238     padding: .5em;
1239     min-width: 220px;
1240     background-color: #fff;
1241     align-items: center;
1242 }
1243
1244 /*textarea*/
1245
1246 .cbi-input-textarea {
1247     width: 100%;
1248     min-height: 14rem;
1249     padding: 0.8rem;
1250     font-size: 0.8rem;
1251     font-family: monospace;
1252     color: black;
1253 }
1254
1255 #syslog {
1256     width: 100%;
1257     min-height: 15rem;
1258     padding: 1rem;
1259     font-size: small;
1260     color: #5F5F5F;
1261
1262     margin-bottom: 20px;
1263     border-radius: 0;
1264     background-color: #FFF;
1265     box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
1266     border: none;
1267 }
1268
1269 /* change */
1270
1271 .uci-change-list {
1272     font-family: monospace;
1273 }
1274
1275 .uci-change-list ins,
1276 .uci-change-legend-label ins {
1277     text-decoration: none;
1278     border: 1px solid #00FF00;
1279     background-color: #CCFFCC;
1280     display: block;
1281     padding: 2px;
1282 }
1283
1284 .uci-change-list del,
1285 .uci-change-legend-label del {
1286     text-decoration: none;
1287     border: 1px solid #FF0000;
1288     background-color: #FFCCCC;
1289     display: block;
1290     font-style: normal;
1291     padding: 2px;
1292 }
1293
1294 .uci-change-list var,
1295 .uci-change-legend-label var {
1296     text-decoration: none;
1297     border: 1px solid #CCCCCC;
1298     background-color: #EEEEEE;
1299     display: block;
1300     font-style: normal;
1301     padding: 2px;
1302 }
1303
1304 .uci-change-list var ins,
1305 .uci-change-list var del {
1306     border: none;
1307     white-space: pre;
1308     font-style: normal;
1309     padding: 0px;
1310 }
1311
1312 .uci-change-legend {
1313     padding: 5px;
1314 }
1315
1316 .uci-change-legend-label {
1317     width: 150px;
1318     float: left;
1319 }
1320
1321 .uci-change-legend-label > ins,
1322 .uci-change-legend-label > del,
1323 .uci-change-legend-label > var {
1324     float: left;
1325     margin-right: 4px;
1326     width: 10px;
1327     height: 10px;
1328     display: block;
1329 }
1330
1331 .uci-change-legend-label var ins,
1332 .uci-change-legend-label var del {
1333     line-height: 6px;
1334     border: none;
1335 }
1336
1337 .uci-change-list var,
1338 .uci-change-list del,
1339 .uci-change-list ins {
1340     padding: 0.5rem;
1341 }
1342
1343 /* other fix */
1344 #iwsvg,
1345 #iwsvg2,
1346 #bwsvg {
1347     border: 1px solid #D4D4D4 !important;
1348     border-top: none !important;
1349 }
1350
1351 .ifacebox {
1352     box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 2px rgba(0, 0, 0, 0.2);
1353     border-bottom: 1px solid #ccc;
1354     background-color: #f9f9f9;
1355     display: inline-flex;
1356     flex-direction: column;
1357     line-height: 1.2em;
1358     min-width: 100px;
1359 }
1360
1361 .ifacebox-head {
1362     padding: .25em;
1363     background: #eee;
1364 }
1365
1366 .ifacebox-head.active {
1367     background: #90c0e0;
1368 }
1369
1370 .ifacebox-body {
1371     padding: .25em;
1372 }
1373
1374 .cbi-image-button {
1375     margin-left: 0.5rem;
1376 }
1377
1378 .zonebadge {
1379     padding: 0.2rem 0.5rem;
1380     display: inline-block;
1381 }
1382
1383 .zonebadge .ifacebadge {
1384     padding: .2rem .3rem;
1385     margin: 0.1rem 0.2rem;
1386     border: 1px solid #6C6C6C;
1387 }
1388
1389 .zonebadge > input[type="text"] {
1390     padding: 0.16rem 1rem;
1391     min-width: 10rem;
1392     margin-top: 0.3rem;
1393 }
1394
1395 .zonebadge > em,
1396 .zonebadge > strong {
1397     margin: 0 0.2rem;
1398     display: inline-block;
1399 }
1400
1401 .cbi-value-field .cbi-input-checkbox,
1402 .cbi-value-field .cbi-input-radio {
1403     margin-top: 0.5rem;
1404     height: 1rem;
1405 }
1406
1407 .td .cbi-input-checkbox,
1408 .td .cbi-input-radio {
1409     margin-top: 0;
1410 }
1411
1412 .cbi-value-field > input + .cbi-value-description {
1413     padding: 0;
1414 }
1415
1416 .cbi-value-field > ul > li {
1417     display: flex;
1418 }
1419
1420 .cbi-value-field > ul > li > label {
1421     margin-top: 0.5rem;
1422 }
1423
1424 .cbi-value-field > ul > li .ifacebadge {
1425     background-color: #eee;
1426     margin-left: 0.4rem;
1427     margin-top: -0.5rem;
1428 }
1429
1430 .cbi-section-table-row > .cbi-value-field .cbi-dropdown {
1431     min-width: 7rem;
1432 }
1433
1434 .cbi-section-create {
1435     margin: .5rem -3px;
1436     display: inline-flex;
1437     align-items: center;
1438 }
1439
1440 .cbi-section-create > * {
1441     margin: 0.5rem;
1442 }
1443
1444 .cbi-section-remove {
1445     padding: 0.5rem;
1446 }
1447
1448 div.cbi-value var, td.cbi-value-field var, .td.cbi-value-field var {
1449     font-style: italic;
1450     color: #0069D6;
1451 }
1452
1453 small {
1454     font-size: 90%;
1455     white-space: normal;
1456     line-height: 1.42857143;
1457 }
1458
1459 .cbi-button-up,
1460 .cbi-button-down {
1461     display: inline-block;
1462     min-width: 0;
1463     padding: 0.2rem 0.3rem;
1464     font-size: 1.2rem;
1465 }
1466
1467 .cbi-optionals {
1468     padding: 1rem 1rem 0 1rem;
1469     border-top: 1px solid #CCC;
1470 }
1471
1472 .cbi-dropdown-container {
1473     position: relative;
1474 }
1475
1476 .cbi-tooltip-container {
1477     cursor: help;
1478 }
1479
1480 .cbi-tooltip {
1481     position: absolute;
1482     z-index: 1000;
1483     left: -1000px;
1484     opacity: 0;
1485     transition: opacity .25s ease-out;
1486     pointer-events: none;
1487     box-shadow: 0 0 2px #444;
1488 }
1489
1490 .cbi-tooltip-container:hover .cbi-tooltip {
1491     left: auto;
1492     opacity: 1;
1493     transition: opacity .25s ease-in;
1494 }
1495
1496 .zonebadge .cbi-tooltip {
1497     padding: .25rem;
1498     background: inherit;
1499     margin: -1.5rem 0 0 -.5rem;
1500 }
1501
1502 .zonebadge-empty {
1503     background: repeating-linear-gradient(45deg,rgba(204,204,204,0.5),rgba(204,204,204,0.5) 5px,rgba(255,255,255,0.5) 5px,rgba(255,255,255,0.5) 10px);
1504     color: #404040;
1505 }
1506
1507 .zone-forwards {
1508     display: flex;
1509     min-width: 10rem;
1510 }
1511
1512 .zone-forwards > * {
1513     flex: 1 1 45%;
1514 }
1515
1516 .zone-forwards > span {
1517     flex-basis: 10%;
1518     text-align: center;
1519     padding: 0 .25rem;
1520 }
1521
1522 .zone-forwards .zone-src,
1523 .zone-forwards .zone-dest {
1524     display: flex;
1525     flex-direction: column;
1526 }
1527
1528 #diag-rc-output > pre {
1529     background-color: #f5f5f5;
1530     display: block;
1531     padding: 8.5px;
1532     margin: 0 0 18px;
1533     line-height: 1.5rem;
1534     -moz-border-radius: 3px;
1535     white-space: pre-wrap;
1536     word-wrap: break-word;
1537     font-size: 1.4rem;
1538     color: #404040;
1539 }
1540
1541 input[name="ping"],
1542 input[name="traceroute"],
1543 input[name="nslookup"] {
1544     width: 80%;
1545 }
1546
1547 header > .container > .pull-right > * {
1548     position: relative;
1549     top: 0.45rem;
1550     cursor: pointer;
1551 }
1552
1553 #xhr_poll_status > .label.success {
1554     background-color: #14CE14;
1555 }
1556
1557 #xhr_poll_status {
1558     display: flex;
1559 }
1560
1561 .label {
1562     padding: 0.3rem 0.8rem;
1563     font-size: 0.8rem;
1564     font-weight: bold;
1565     color: #ffffff !important;
1566     text-transform: uppercase;
1567     white-space: nowrap;
1568     background-color: #bfbfbf;
1569     -webkit-border-radius: 3px;
1570     -moz-border-radius: 3px;
1571     border-radius: 3px;
1572     text-shadow: none;
1573     text-decoration: none;
1574 }
1575
1576 .notice {
1577     background-color: #5BC0DE;
1578 }
1579
1580 .showSide {
1581     display: none;
1582 }
1583
1584 .darkMask {
1585     width: 100%;
1586     height: 100%;
1587     position: fixed;
1588     background-color: rgba(0, 0, 0, 0.56);
1589     content: "";
1590     z-index: 99;
1591     display: none;
1592 }
1593
1594 /* fix Main Login*/
1595 .node-main-login > .main > .main-left {
1596     display: none;
1597 }
1598
1599 .node-main-login > .main > .main-right {
1600     width: 100%;
1601 }
1602
1603 .node-main-login > .main fieldset {
1604     padding: 0.5rem;
1605     margin-bottom: 1rem;
1606     display: inline;
1607     background: none;
1608     border: none;
1609     box-shadow: none;
1610     overflow: hidden;
1611 }
1612
1613 .node-main-login > .main .cbi-value-title {
1614     width: 8rem;
1615 }
1616
1617 .node-main-login > .main #maincontent {
1618
1619     text-align: center;
1620 }
1621
1622 .node-main-login > .main .container {
1623     display: inline-block;
1624     padding: 2rem 4rem;
1625     margin-top: 2rem !important;
1626     background-color: #FFF;
1627     box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
1628     text-align: left;
1629 }
1630
1631 .node-main-login > .main form > div:nth-last-child(1) {
1632     float: right;
1633 }
1634
1635 .node-main-login > .main .cbi-value {
1636     display: block;
1637 }
1638
1639 .node-main-login > .main .cbi-value > * {
1640     display: inline-block !important;
1641 }
1642
1643 .node-main-login > .main .cbi-input-user,
1644 .node-main-login > .main .cbi-input-password {
1645     min-width: 15rem;
1646 }
1647
1648 .node-main-login footer {
1649     bottom: 0;
1650     position: absolute;
1651     width: 100%;
1652 }
1653
1654 /* fix status overview */
1655
1656 .node-status-overview > .main fieldset:nth-child(4) .td:nth-child(2) {
1657     white-space: normal;
1658 }
1659
1660 /* fix status processes */
1661
1662 .node-status-processes > .main .table .tr .td:nth-child(3) {
1663     white-space: normal;
1664 }
1665
1666 .node-status-iptables > .main div > .cbi-map > form {
1667     margin: 2rem 2rem 0 0;
1668 }
1669
1670 /* fix system reboot */
1671
1672 .node-system-reboot > .main > .main-right p,
1673 .node-system-reboot > .main > .main-right h3 {
1674     padding-left: 2rem;
1675 }
1676
1677 /* fix Services  Network Shares*/
1678 .node-services-samba > .main .cbi-tabcontainer:nth-child(3) .cbi-value-title {
1679     margin-bottom: 1rem;
1680     width: auto;
1681 }
1682
1683 .node-services-samba > .main .cbi-tabcontainer:nth-child(3) .cbi-value-field {
1684     display: list-item;
1685 }
1686
1687 .node-services-samba > .main .cbi-tabcontainer:nth-child(3) .cbi-value-description {
1688     padding-top: 1rem;
1689 }
1690
1691 /* fix System Software*/
1692 .node-system-packages > .main table tr td:nth-child(1) {
1693     width: auto !important;
1694 }
1695
1696 .node-system-packages > .main table tr td:nth-last-child(1) {
1697     white-space: normal;
1698     font-size: small;
1699     color: #404040;
1700 }
1701
1702 .node-system-packages > .main .cbi-tabmenu > li > a, .tabs > li > a {
1703     padding: 0.5rem 0.8rem;
1704 }
1705
1706 .node-system-packages > .main .cbi-value > pre {
1707     background-color: #eee;
1708     padding: 0.5rem;
1709     overflow: auto;
1710 }
1711
1712 .cbi-tabmenu + .cbi-section {
1713     margin-top: 0;
1714 }
1715
1716 .node-status-iptables fieldset,
1717 .node-system-packages fieldset,
1718 .node-system-flashops fieldset {
1719     margin-top: 0;
1720 }
1721
1722 .node-status-iptables .cbi-tabmenu,
1723 .node-system-packages .cbi-tabmenu,
1724 .node-system-flashops .cbi-tabmenu {
1725     border: none;
1726     box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
1727 }
1728
1729 .node-system-flashops form.inline + form.inline {
1730     margin-left: 0;
1731 }
1732
1733 #cbi-firewall-redirect table *,
1734 #cbi-network-switch_vlan table *,
1735 #cbi-firewall-zone table * {
1736     font-size: small;
1737 }
1738
1739 #cbi-firewall-redirect table input[type="text"],
1740 #cbi-network-switch_vlan table input[type="text"],
1741 #cbi-firewall-zone table input[type="text"] {
1742     width: 5rem;
1743 }
1744
1745 #cbi-firewall-redirect table select,
1746 #cbi-network-switch_vlan table select,
1747 #cbi-firewall-zone table select {
1748     min-width: 3.5rem;
1749 }
1750
1751 #cbi-network-switch_vlan .th,
1752 #cbi-network-switch_vlan .td {
1753     flex-basis: 12%;
1754 }
1755
1756 /* language fix */
1757 body.lang_pl.node-main-login .cbi-value-title {
1758     width: 12rem;
1759 }
1760
1761 /* applyreboot fix */
1762
1763 #applyreboot-container {
1764         margin: 2rem;
1765 }
1766
1767 #applyreboot-section {
1768         margin: 2rem;
1769         line-height: 300%;
1770 }
1771
1772 @media screen and (max-width: 1600px) {
1773     .btn,
1774     .cbi-button {
1775         padding: 0.3rem 0.6rem;
1776         font-size: 0.8rem;
1777     }
1778
1779     header > .container > .pull-right > * {
1780         top: 0.35rem;
1781     }
1782
1783     .label {
1784         padding: 0.2rem 0.6rem;
1785     }
1786
1787     .cbi-value-title {
1788         width: 15rem;
1789         padding-right: 0.6rem;
1790     }
1791
1792     fieldset {
1793         padding: 1rem;
1794     }
1795
1796     .cbi-input-textarea {
1797         font-size: small;
1798     }
1799
1800     .node-status-iptables > .main fieldset li > a {
1801         padding: 0.3rem 0.6rem;
1802     }
1803 }
1804
1805 @media screen and (max-width: 1280px) {
1806     header > .container {
1807         margin-top: 0.25rem;
1808     }
1809
1810     .cbi-tabmenu > li > a, .tabs > li > a {
1811         padding: 0.2rem 0.5rem;
1812     }
1813
1814     .panel-title {
1815         font-size: 1.1rem;
1816         padding-bottom: 1rem;
1817     }
1818
1819     table {
1820         font-size: 0.7rem !important;
1821         width: 100% !important;
1822     }
1823 }
1824
1825 @media screen and (max-width: 992px) {
1826     header > .fill > .container > img {
1827         display: none;
1828     }
1829
1830     .main-left {
1831         width: 0;
1832         position: fixed;
1833         z-index: 100;
1834     }
1835
1836     .main-right {
1837         width: 100%;
1838     }
1839
1840     .showSide {
1841         padding: 0.1rem;
1842         margin-right: 0.5rem;
1843         display: inline-block;
1844     }
1845
1846     .showSide:before {
1847         content: "\e20e";
1848         font-size: 1.7rem;
1849     }
1850
1851     .node-main-login .showSide {
1852         display: none !important;
1853     }
1854
1855     .cbi-value-title {
1856         width: 9rem;
1857         padding-right: 1rem;
1858     }
1859
1860     .node-network-diagnostics > .main .cbi-map fieldset > div * {
1861         width: 100% !important;
1862     }
1863
1864     .node-network-diagnostics > .main .cbi-map fieldset > div input[type="text"] {
1865         margin: 3rem 0 0 0 !important;
1866     }
1867
1868     .node-network-diagnostics > .main .cbi-map fieldset > div:nth-child(4) input[type="text"] {
1869         margin: 0 !important;
1870     }
1871
1872     .node-network-diagnostics > .main .cbi-map fieldset > div select,
1873     .node-network-diagnostics > .main .cbi-map fieldset > div input[type="button"] {
1874         margin: 1rem 0 0 0;
1875     }
1876
1877     .node-network-diagnostics > .main .cbi-map fieldset > div {
1878         width: 100% !important;
1879     }
1880
1881     #diag-rc-output > pre {
1882         font-size: 1rem;
1883     }
1884
1885     .node-main-login > .main .cbi-value-title {
1886         text-align: left;
1887     }
1888
1889     .tr {
1890         display: flex;
1891         flex-direction: row;
1892         flex-wrap: wrap;
1893     }
1894
1895     .th, .td {
1896         flex: 2 2 25%;
1897         align-self: flex-start;
1898         overflow: hidden;
1899         text-overflow: ellipsis;
1900         word-wrap: break-word;
1901         display: inline-block;
1902     }
1903
1904     .td select,
1905     .td input[type="text"] {
1906         word-wrap: normal;
1907         width: 100%;
1908     }
1909
1910     .td [data-dynlist] > input,
1911     .td input.cbi-input-password {
1912         width: calc(100% - 1.5rem);
1913     }
1914
1915     .td[data-type="button"],
1916     .td[data-type="fvalue"] {
1917         flex: 1 1 12.5%;
1918         text-align: left;
1919     }
1920
1921     .th.cbi-value-field,
1922     .td.cbi-value-field,
1923     .th.cbi-section-table-cell,
1924     .td.cbi-section-table-cell {
1925         flex-basis: auto;
1926     }
1927
1928     .cbi-section-table-row {
1929         display: flex;
1930         flex-wrap: wrap;
1931         flex-direction: row;
1932         justify-content: space-between;
1933     }
1934
1935     .td.cbi-value-field,
1936     .cbi-section-table-cell {
1937         text-align: center;
1938         display: inline-block;
1939         flex: 10 10 auto;
1940     }
1941
1942     .td.cbi-section-actions {
1943         text-align: right;
1944         align-self: flex-end;
1945         vertical-align: bottom;
1946     }
1947
1948     .tr.table-titles,
1949     .tr.cbi-section-table-titles,
1950     .tr.cbi-section-table-descr {
1951         display: none;
1952     }
1953
1954     .tr[data-title]::before,
1955     .tr.cbi-section-table-titles.named::before {
1956         display: block;
1957         flex: 1 1 100%;
1958         background: #eef;
1959         font-size: .9rem;
1960         border-bottom: 1px solid rgba(0, 0, 0, .26);
1961     }
1962
1963     .td[data-title] {
1964         text-align: left;
1965     }
1966
1967     .td[data-title]::before {
1968         display: block;
1969     }
1970
1971     .hide-sm,
1972     .hide-xs {
1973         display: none;
1974     }
1975 }
1976
1977 @media screen and (max-width: 480px) {
1978     body {
1979         font-size: 1rem;
1980     }
1981
1982     fieldset {
1983         padding: 1rem;
1984         margin: 1rem 0 0 0;
1985     }
1986
1987     .tabs {
1988         margin: 0 -1rem;
1989     }
1990
1991     #maincontent > .container {
1992         margin: 0 1rem 1.5rem 1rem;
1993     }
1994
1995     .main > .main-left > .nav > .slide > .menu {
1996         font-size: 1.3rem;
1997     }
1998
1999     .main > .main-left > .nav > .slide > .slide-menu > li > a {
2000         font-size: 1.1rem;
2001     }
2002
2003     .cbi-value-title {
2004         width: 100%;
2005         min-width: 0rem !important;
2006         display: block;
2007         margin-top: 1rem;
2008         margin-bottom: 0.5rem;
2009         text-align: left;
2010     }
2011
2012     .cbi-value-field, .cbi-value-description {
2013         width: 100%;
2014     }
2015
2016     .cbi-value > .cbi-value-field {
2017         display: inline-block;
2018     }
2019
2020     .cbi-tabmenu > li, .tabs > li {
2021         padding: 0.6rem 0rem;
2022     }
2023
2024     .cbi-tabmenu > li > a, .tabs > li > a {
2025         padding: 0.2rem 0.3rem;
2026         font-size: 0.9rem;
2027     }
2028
2029     .cbi-page-actions > div > input {
2030         display: none;
2031     }
2032
2033     .node-main-login > .main .container {
2034         padding: 0.5rem 1rem 2rem 1rem;
2035     }
2036
2037     .node-main-login > .main .cbi-value {
2038         padding: 0;
2039     }
2040
2041     .node-main-login > .main form > div:nth-last-child(1) {
2042         margin-top: 2rem;
2043     }
2044
2045     .node-main-login > .main .cbi-value-title {
2046         width: 100% !important;
2047         font-size: 1.2rem;
2048     }
2049
2050     .node-main-login > .main fieldset {
2051         margin: 0;
2052         padding: 0.5rem;
2053     }
2054
2055     h2 {
2056         font-size: 2rem;
2057     }
2058
2059     .tabs > li > a {
2060         font-size: 0.9rem;
2061     }
2062
2063     select,
2064     input {
2065         font-size: 0.9rem;
2066     }
2067
2068     .mobile-hide {
2069         display: none;
2070     }
2071
2072     .panel-title {
2073         font-size: 1.4rem;
2074         padding-bottom: 1rem;
2075     }
2076
2077     .node-system-packages > .main .cbi-value.cbi-value-last > div {
2078         width: 100% !important;
2079     }
2080
2081     .node-system-packages > .main .cbi-value .cbi-value-field input {
2082         width: 100%;
2083     }
2084
2085     .node-status-iptables > .main div > .cbi-map > form {
2086         position: static !important;
2087         margin: 0 0 2rem 0;
2088         padding: 2rem;
2089         border: 0;
2090         font-weight: normal;
2091         font-style: normal;
2092         line-height: 1;
2093         font-family: inherit;
2094         min-width: inherit;
2095         border-radius: 0;
2096         background-color: #FFF;
2097         box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
2098         -webkit-overflow-scrolling: touch;
2099     }
2100
2101     .node-status-iptables > .main div > .cbi-map > form input[type="submit"] {
2102         width: 100% !important;
2103         margin: 0;
2104     }
2105
2106     .node-status-iptables > .main div > .cbi-map > form input[type="submit"] + input[type="submit"] {
2107         margin-top: 1rem;
2108     }
2109
2110     .th, .td {
2111         flex-basis: 50%;
2112     }
2113
2114     .td.cbi-value-field {
2115         flex-basis: 100%;
2116     }
2117
2118     .td.cbi-value-field[data-type="dvalue"] {
2119         flex-basis: 50%;
2120     }
2121
2122     .td.cbi-value-field[data-type="button"],
2123     .td.cbi-value-field[data-type="fvalue"] {
2124         flex-basis: 25%;
2125         text-align: left;
2126     }
2127
2128     .tr[data-title]::before,
2129     .tr.cbi-section-table-titles.named::before {
2130         font-size: 1rem;
2131     }
2132
2133     .hide-xs {
2134         display: none;
2135     }
2136 }
2137
2138 @media screen and (min-width: 992px) {
2139     .cbi-value input[type="password"],
2140     .cbi-value input[type="text"],
2141     .cbi-value-field .cbi-input-select {
2142         width: 20rem;
2143     }
2144
2145     .cbi-value-field .cbi-dropdown {
2146         min-width: 20rem;
2147     }
2148 }
2149
2150 @media screen and (min-width: 1280px) {
2151     .cbi-value input[type="password"],
2152     .cbi-value input[type="text"],
2153     .cbi-value-field .cbi-input-select {
2154         width: 22rem;
2155     }
2156
2157     .cbi-value-field .cbi-dropdown {
2158         min-width: 22rem;
2159     }
2160 }
2161
2162 @media screen and (min-width: 1600px) {
2163     .cbi-value input[type="password"],
2164     .cbi-value input[type="text"],
2165     .cbi-value-field .cbi-input-select {
2166         width: 25rem;
2167     }
2168
2169     .cbi-value-field .cbi-dropdown {
2170         min-width: 25rem;
2171     }
2172 }