Merge pull request #2466 from HenryGiraldo/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  *      Pure CSS ripple effect:
19  *              https://github.com/mladenplavsic/css-ripple-effect
20  *
21  *      Licensed to the public under the Apache License 2.0
22  */
23
24 /*
25  *      Include custom css
26  */
27 @import url("custom.css");
28
29 /*
30  *      Font generate by Icomoon<icomoon.io>
31  */
32 @font-face {
33         font-family: "icomoon";
34         font-weight: normal;
35         font-style: normal;
36         src: url("fonts/font.eot");
37         src: url("fonts/font.eot") format("embedded-opentype"),
38         url("fonts/font.ttf") format("truetype"),
39         url("fonts/font.woff") format("woff"),
40         url("fonts/font.svg") format("svg");
41 }
42
43 .table {
44         position: relative;
45         display: table;
46 }
47
48 .tr {
49         display: table-row;
50 }
51 .thead {
52         display: table-header-group;
53 }
54
55 .tbody {
56         display: table-row-group;
57 }
58
59 .tfoot {
60         display: table-footer-group;
61 }
62
63 .td,
64 .th {
65         line-height: normal;
66         display: table-cell;
67         padding: .5em;
68         text-align: center;
69         vertical-align: middle;
70 }
71
72 .th {
73         font-weight: bold;
74 }
75
76 .tr.placeholder {
77         height: 4em;
78 }
79
80 .tr.placeholder > .td {
81         line-height: 3;
82         position: absolute;
83         right: 0;
84         bottom: 0;
85         left: 0;
86         text-align: center !important;
87         background: inherit;
88 }
89
90 .td[width="33%"] {
91         padding: 1.1em;
92 }
93
94 .table[width="33%"],
95 .th[width="33%"],
96 .td[width="33%"] {
97         width: 33%;
98 }
99
100 .table[width="100%"],
101 .th[width="100%"],
102 .td[width="100%"] {
103         width: 100%;
104 }
105
106 .col-1 {
107         flex: 1 1 30px !important;
108 }
109
110 .col-2 {
111         flex: 2 2 60px !important;
112 }
113
114 .col-3 {
115         flex: 3 3 90px !important;
116 }
117
118 .col-4 {
119         flex: 4 4 120px !important;
120 }
121
122 .col-5 {
123         flex: 5 5 150px !important;
124 }
125
126 .col-6 {
127         flex: 6 6 180px !important;
128 }
129
130 .col-7 {
131         flex: 7 7 210px !important;
132 }
133
134 .col-8 {
135         flex: 8 8 240px !important;
136 }
137
138 .col-9 {
139         flex: 9 9 270px !important;
140 }
141
142 .col-10 {
143         flex: 10 10 300px !important;
144 }
145
146 .cbi-button-up,
147 .cbi-button-down,
148 .cbi-value-helpicon,
149 .showSide {
150         font-family: "icomoon" !important;
151         font-weight: normal;
152         font-style: normal;
153         font-variant: normal;
154         line-height: 1;
155         text-transform: none;
156         -webkit-font-smoothing: antialiased;
157         speak: none;
158 }
159
160 * {
161         box-sizing: border-box;
162         margin: 0;
163         padding: 0;
164 }
165
166 .h1,
167 .h2,
168 .h3,
169 .h4,
170 .h5,
171 .h6,
172 h1,
173 h2,
174 h3,
175 h4,
176 h5,
177 h6 {
178         font-family: inherit;
179         font-weight: normal;
180         line-height: 1.1 !important;
181         color: inherit;
182 }
183
184 html {
185         overflow-y: hidden;
186         -webkit-text-size-adjust: 100%;
187         -ms-text-size-adjust: 100%;
188 }
189
190 body {
191         font-size: .8rem;
192         background-color: #eee;
193 }
194
195 html,
196 body {
197         font-family: "Microsoft Yahei", "WenQuanYi Micro Hei", "sans-serif", "Helvetica Neue", "Helvetica", "Hiragino Sans GB";
198         font-family: var(--font-body);
199         height: 100%;
200         margin: 0;
201         padding: 0;
202 }
203
204 select {
205         padding: .36rem .8rem;
206         color: #555;
207         border: thin solid #ccc;
208         background-color: #fff;
209         background-image: none;
210 }
211
212 .btn,
213 button,
214 select,
215 input,
216 .cbi-dropdown {
217         height: 1.8rem;
218         padding: 0;
219         color: rgba(0, 0, 0, .87);
220         border: 0;
221         border-bottom: 2px solid rgba(0, 0, 0, .26);
222         border-radius: 0;
223         outline: 0;
224         background-color: transparent;
225         background-image: none;
226         box-shadow: none;
227 }
228
229 select,
230 .cbi-dropdown {
231         width: inherit;
232 }
233
234 select:not([multiple="multiple"]):focus,
235 input:not(.cbi-button):focus,
236 .cbi-dropdown:focus,
237 .cbi-dynlist > .item:focus {
238         border-color: #09c;
239         border-color: var(--main-color);
240 }
241
242 select[multiple="multiple"] {
243         height: auto;
244 }
245
246 pre {
247         overflow: auto;
248 }
249
250 code {
251         font-size: 1rem;
252         font-size-adjust: .35;
253         padding: 1px 3px;
254         color: #101010;
255         border-radius: 2px;
256         background: #ddd;
257 }
258
259 abbr {
260         cursor: help;
261         text-decoration: underline;
262         color: #005470;
263 }
264
265 hr {
266         margin: 1rem 0;
267         opacity: .1;
268         border-color: #eee;
269 }
270
271 header,
272 .main {
273         position: absolute;
274         width: 100%;
275 }
276
277 header {
278         position: fixed;
279         z-index: 2000;
280         float: left;
281         height: 4rem;
282         transition: box-shadow .2s;
283         box-shadow: 0 2px 5px rgba(0, 0, 0, .26);
284 }
285
286 footer {
287         font-size: .8rem;
288         overflow: hidden;
289         padding: 1rem;
290         text-align: right;
291         white-space: nowrap;
292         color: #aaa;
293         text-shadow: 0 0 2px #bbb;
294 }
295
296 footer > a {
297         text-decoration: none;
298         color: #aaa;
299 }
300
301 .main {
302         position: relative;
303         top: 4rem;
304         bottom: 0;
305         overflow-y: auto;
306         height: 100%;
307         height: calc(100% - 4rem);
308 }
309
310 .main > .loading {
311         position: fixed;
312         z-index: 1000;
313         top: 0;
314         display: block;
315         width: 100%;
316         height: 100%;
317         pointer-events: none;
318         background-color: rgb(240, 240, 240);
319 }
320
321 .main > .loading > span {
322         font-family: monospace;
323         font-size: 2.0rem;
324         font-size-adjust: .35;
325         position: relative;
326         top: 12.5%;
327         display: block;
328         text-align: center;
329         color: #888;
330 }
331
332 .main > .loading > span > .loading-img:before {
333         content: "\e603";
334 }
335
336 .main > .loading > span > .loading-img {
337         font-family: "icomoon" !important;
338         font-size: 1.0rem;
339         font-size-adjust: .6;
340         display: inline-block;
341         margin-right: 1rem;
342         animation: anim-rotate 2s infinite linear;
343 }
344
345 @keyframes anim-rotate {
346         0% {
347                 -webkit-transform: rotate(0);
348                 -ms-transform: rotate(0);
349                 transform: rotate(0);
350         }
351         100% {
352                 -webkit-transform: rotate(360deg);
353                 -ms-transform: rotate(360deg);
354                 transform: rotate(360deg);
355         }
356 }
357
358 .main-left {
359         position: fixed;
360         top: 4rem;
361         float: left;
362         overflow-x: auto;
363         width: 15%;
364         width: calc(0% + 15rem);
365         height: 100%;
366         height: calc(100% - 4rem);
367         background-color: #fff;
368         background-color: var(--menu-bg-color);
369 }
370
371 .main-right {
372         float: right;
373         width: 85%;
374         width: calc(100% - 15rem);
375         height: 100%;
376         background-color: #eee;
377 }
378
379 .main-right > #maincontent {
380         background-color: #eee;
381 }
382
383 .pull-right {
384         float: right;
385 }
386
387 .pull-left {
388         float: left;
389 }
390
391 .nowrap:not(.td) {
392         white-space: nowrap;
393 }
394
395 [disabled="disabled"] {
396         pointer-events: none;
397 }
398
399 header {
400         color: #fff;
401         color: var(--header-color);
402         background: #09c;
403         background: var(--header-bg);
404 }
405
406 header > .fill > .container {
407         margin-top: .5rem;
408         padding: .5rem 1rem 0 1rem;
409         user-select: none;
410 }
411
412 header > .fill > .container > #logo {
413         margin: 0 3.5rem 0 1.5rem;
414 }
415
416 header > .fill > .container > #logo > img {
417         width: calc(0% + 10rem);
418         margin-top: -.1rem;
419 }
420
421 body:not(.logged-in) > header > .fill > .container > #logo {
422         display: none;
423 }
424
425 header > .fill > .container > .brand {
426         font-size: 1.4rem;
427         position: absolute;
428         cursor: default;
429         vertical-align: text-bottom;
430         text-decoration: none;
431         color: #fff;
432         color: var(--header-color);
433 }
434
435 header > .fill > .container > .status {
436         position: absolute;
437         top: 25%;
438         right: 1em;
439         float: right;
440 }
441
442 header > .fill > .container > .status > * {
443         position: relative;
444         top: .2rem;
445         float: left;
446         margin-left: .3rem;
447         cursor: pointer;
448 }
449
450 #xhr_poll_status {
451         display: flex;
452 }
453
454 .danger {
455         background-color: #ff7d60 !important;
456 }
457
458 .warning {
459         background-color: #f0e68c !important;
460 }
461
462 .success {
463         background-color: #5cb85c !important;
464 }
465
466 .notice {
467         background-color: #5bc0de !important;
468 }
469
470 .error {
471         color: #f00;
472 }
473
474 .alert,
475 .alert-message {
476         font-weight: bold;
477         margin-bottom: 1em;
478         padding: 1rem;
479         border: 0;
480         border-radius: 0 !important;
481         background-color: #fff;
482         box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
483         text-shadow: 1px 1px rgba(0, 0, 0, .1);
484 }
485
486 .alert-message > h4 {
487         font-size: 110%;
488         font-weight: bold;
489 }
490
491 .alert-message > * {
492         margin: .5rem 0;
493 }
494
495 .alert-message .btn {
496         padding: .3rem .6rem;
497 }
498
499 .container .alert,
500 .container .alert-message {
501         margin-top: 1rem;
502 }
503
504 .main > .main-left > .nav {
505         margin-top: .5rem;
506 }
507
508 .main > .main-left > .nav > li {
509         padding: .5rem 1rem;
510         cursor: pointer;
511 }
512
513 .main > .main-left > .nav > li:nth-last-child(1) {
514         font-size: 1.2rem;
515         margin-top: 1rem;
516         margin-bottom: 1rem;
517 }
518
519 .main > .main-left > .nav > li a {
520         display: block;
521         color: #5f6368;
522         color: var(--menu-color);
523 }
524
525 .main > .main-left > .nav > .slide {
526         padding: 0;
527 }
528
529 .main > .main-left > .nav > .slide > ul {
530         display: none;
531 }
532
533 .main > .main-left > .nav > .slide > .menu::before {
534         position: absolute;
535         top: 30%;
536         right: 17px;
537         width: 1rem;
538         height: 1rem;
539         content: "";
540         background-image: url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTAwMCAxMDAwIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxMDAwIDEwMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwYXRoIGQ9Ik01MDAsNjI1LjJMNzUuMywyNTVMMTAsMzE0LjlMNTAwLDc0NWw0OTAtNDMwLjFMOTI0LjcsMjU1TDUwMCw2MjUuMnoiLz48L2c+PC9zdmc+);
541         background-repeat: no-repeat;
542 }
543
544 .main > .main-left > .nav > .slide > .menu.active::before {
545         transform: rotate(-180deg);
546 }
547
548 body[class*="node-"] > .main > .main-left > .nav > .slide > .menu::before {
549         transition: transform .1s ease-in-out;
550 }
551
552 body[class*="node-"] > .main > .main-left > .nav > .slide > .menu.active::before {
553         transition: transform .2s ease-in-out;
554 }
555
556 .main > .main-left[style*="overflow: hidden"] > .nav > .slide > .menu::before {
557         display: none;
558 }
559
560 .main > .main-left > .nav > .slide > .menu {
561         font-size: 1.15rem;
562         font-weight: 500;
563         display: block;
564         padding: .5rem 1rem;
565         text-decoration: none;
566         color: var(--menu-color);
567 }
568
569 .main > .main-left > .nav > li:hover,
570 .main > .main-left > .nav > .slide > .menu:hover {
571         background: #d4d4d4;
572         background: var(--submenu-bg-hover);
573 }
574
575 .main > .main-left > .nav > .slide:hover {
576         background: none;
577 }
578
579 .main > .main-left > .nav > .slide > .slide-menu > li {
580         padding: .4rem 2rem;
581 }
582
583 .main > .main-left > .nav > .slide > .slide-menu > .active {
584         background-color: #09c;
585         background-color: var(--submenu-bg-hover-active);
586 }
587
588 .main > .main-left > .nav > .slide > .slide-menu > li > a {
589         white-space: nowrap;
590         text-decoration: none;
591 }
592
593 .main > .main-left > .nav > .slide > .slide-menu > .active > a {
594         color: #fff;
595 }
596
597 .main > .main-left > .nav > .slide > .slide-menu > li:hover {
598         background: #d4d4d4;
599         background: var(--submenu-bg-hover);
600 }
601
602 .main > .main-left > .nav > .slide > .slide-menu > li:not(.active):hover > a {
603         color: #202124;
604         color: var(--menu-color-hover);
605 }
606
607 .main > .main-left > .nav > .slide > .slide-menu > .active:hover {
608         cursor: hand;
609         background-color: #09c;
610         background-color: var(--main-color);
611 }
612
613 /* ripple effect */
614 .main > .main-left > .nav > .slide > .menu,
615 .main > .main-left > .nav > .slide > .slide-menu > li {
616         position: relative;
617         overflow: hidden;
618         transform: translate3d(0, 0, 0);
619 }
620
621 .main > .main-left > .nav > .slide > .menu:after,
622 .main > .main-left > .nav > .slide > .slide-menu > li:after {
623         position: absolute;
624         top: 0;
625         left: 0;
626         display: block;
627         width: 100%;
628         height: 100%;
629         content: "";
630         transition: transform .5s, opacity 1s;
631         transform: scale(10, 10);
632         pointer-events: none;
633         opacity: 0;
634         background-image: radial-gradient(circle, #000 10%, transparent 10.01%);
635         background-repeat: no-repeat;
636         background-position: 50%;
637 }
638
639 .main > .main-left > .nav > .slide > .menu:active:after,
640 .main > .main-left > .nav > .slide > .slide-menu > li:active:after {
641         transition: 0s;
642         transform: scale(0, 0);
643         opacity: .2;
644 }
645
646 #maincontent > .container {
647         margin: 0 2rem 1rem 2rem;
648 }
649
650 .Processes #maincontent > .container {
651         margin-right: 0;
652 }
653
654 ul {
655         line-height: normal;
656 }
657
658 li {
659         list-style-type: none;
660 }
661
662 h1 {
663         font-size: 2rem;
664         padding-bottom: 10px;
665         border-bottom: thin solid #eee;
666 }
667
668 h2 {
669         font-size: 1.8rem;
670         margin: 2rem 0 0 0;
671         padding-bottom: 10px;
672         border-bottom: thin solid #eee;
673 }
674
675 h3 {
676         font-size: 1.4rem;
677         margin: 2rem 0 0 0;
678         padding-bottom: 10px;
679 }
680
681 h4 {
682         font-size: 1.2rem;
683         margin: 2rem 0 0 0;
684         padding-bottom: 10px;
685 }
686
687 h5 {
688         font-size: 1rem;
689         margin: 2rem 0 0 0;
690         padding-bottom: 10px;
691 }
692
693 .cbi-section,
694 .cbi-section-error,
695 #cbi-network > .cbi-section-node,
696 #cbi-wireless > .cbi-section-node,
697 #cbi-wireless > #wifi_assoclist_table,
698 [data-page^="admin-system-admin"]:not(.node-main-login) .cbi-map:not(#cbi-dropbear),
699 [data-page="admin-system-opkg"] #maincontent > .container {
700         font-family: inherit;
701         font-weight: normal;
702         font-style: normal;
703         line-height: normal;
704         min-width: inherit;
705         margin: 1rem 0 0 0;
706         padding: 2rem;
707         border: 0;
708         border-radius: 0;
709         background-color: #fff;
710         box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
711 }
712
713 .cbi-map-descr + fieldset {
714         margin-top: 1rem;
715 }
716
717 .cbi-section > legend {
718         display: none !important;
719 }
720
721 fieldset > fieldset,
722 .cbi-section > .cbi-section {
723         margin: 0;
724         padding: 0;
725         border: 0;
726         box-shadow: none;
727 }
728
729 .cbi-section > h3:first-child,
730 .panel-title {
731         font-size: 1.4rem;
732         line-height: 1;
733         display: block;
734         width: 100%;
735         margin: 0;
736         margin-bottom: .5rem;
737         padding-bottom: 1rem;
738         color: #404040;
739         border-bottom: thin solid #eee;
740 }
741
742 table {
743         border-spacing: 0;
744         border-collapse: collapse;
745 }
746
747 table,
748 .table {
749         overflow-y: hidden;
750         width: 100%;
751         box-shadow: 0 0 0 1px #ddd;
752 }
753
754 table > tbody > tr > td,
755 table > tbody > tr > th,
756 table > tfoot > tr > td,
757 table > tfoot > tr > th,
758 table > thead > tr > td,
759 table > thead > tr > th,
760 .table > .tbody > .tr > .td,
761 .table > .tbody > .tr > .th,
762 .table > .tfoot > .tr > .td,
763 .table > .tfoot > .tr > .th,
764 .table > .thead > .tr > .td,
765 .table > .thead > .tr > .th,
766 .table > .tr > .td.cbi-value-field,
767 .table > .tr > .th.cbi-section-table-cell {
768         padding: .5rem;
769 }
770
771 .container > .cbi-section:first-of-type > .table[width="100%"] > .tr > .td {
772         padding: .6rem;
773 }
774
775 .cbi-section-table-cell {
776         line-height: 1.1;
777         align-self: flex-end;
778         flex: 1 1 auto;
779 }
780
781 tr > td,
782 tr > th,
783 .tr > .td,
784 .tr > .th,
785 .cbi-section-table-row::before,
786 #cbi-wireless > #wifi_assoclist_table > .tr:nth-child(2) {
787         border-top: thin solid #ddd;
788 }
789
790 tr:first-child > td
791 .tr:first-child > .td,
792 #cbi-wireless .td,
793 #cbi-network .tr:first-child > .td,
794 .table[width="100%"] > .tr:first-child > .td,
795 [data-page="admin-network-diagnostics"] .tr > .td,
796 .tr.table-titles > .th,
797 .tr.cbi-section-table-titles > .th {
798         border-top: 0 !important;
799 }
800
801 .cbi-section-table-row {
802         margin-bottom: 1rem;
803         text-align: center !important;
804         background: #f4f4f4;
805 }
806
807 .cbi-section-table-row:last-child {
808         margin-bottom: 0;
809 }
810
811 .cbi-section-table-row > .cbi-value-field .cbi-input-select,
812 .cbi-section-table-row > .cbi-value-field .cbi-input-text,
813 .cbi-section-table-row > .cbi-value-field .cbi-input-password,
814 .cbi-section-table-row > .cbi-value-field .cbi-dropdown {
815         width: 100%;
816 }
817
818 .cbi-section-table-row > .cbi-value-field [data-dynlist] > input,
819 .cbi-section-table-row > .cbi-value-field input.cbi-input-password {
820         width: calc(100% - 1.5rem);
821 }
822
823 .cbi-section-table-row .td {
824         text-align: center !important;
825 }
826
827 div > table > tbody > tr:nth-of-type(2n),
828 div > .table > .tr:nth-of-type(2n) {
829         background-color: #f9f9f9;
830 }
831
832 /* fix multiple table */
833 table table,
834 .table .table {
835         border: 0;
836 }
837
838 .cbi-value-field table,
839 .cbi-value-field .table {
840         border: 0;
841 }
842
843 td > table > tbody > tr > td,
844 .td > .table > .tbody > .tr > .td {
845         border: 0;
846 }
847
848 .cbi-value-field > table > tbody > tr > td,
849 .cbi-value-field > .table > .tbody > .tr > .td {
850         border: 0;
851 }
852
853 /* button style */
854 .btn,
855 .cbi-button,
856 .item::after {
857         font-size: .8rem;
858         display: inline-block;
859         width: auto !important;
860         padding: 0 .8rem;
861         cursor: pointer;
862         -webkit-user-select: none;
863         -moz-user-select: none;
864         -ms-user-select: none;
865         user-select: none;
866         transition: all .2s ease-in-out;
867         text-align: center;
868         vertical-align: middle;
869         white-space: nowrap;
870         text-decoration: none;
871         text-transform: uppercase;
872         color: rgba(0, 0, 0, .87);
873         border: 0;
874         border-radius: .2rem;
875         background-color: #f0f0f0;
876         background-image: none;
877         -webkit-appearance: none;
878         -ms-touch-action: manipulation;
879         touch-action: manipulation;
880 }
881
882 .cbi-button:not(select) {
883         -webkit-appearance: none !important;
884 }
885
886 form[method="post"] + form[method="post"],
887 .cbi-button + .cbi-button {
888         margin-left: .6rem;
889 }
890
891 .btn:hover,
892 .btn:focus,
893 .btn:active,
894 .cbi-button:hover,
895 .cbi-button:focus,
896 .cbi-button:active,
897 .item:hover::after,
898 .item:focus::after,
899 .item:active::after,
900 .cbi-page-actions .cbi-button-apply + .cbi-button-save:hover,
901 .cbi-page-actions .cbi-button-apply + .cbi-button-save:focus,
902 .cbi-page-actions .cbi-button-apply + .cbi-button-save:active {
903         text-decoration: none;
904         outline: 0;
905 }
906
907 .btn:hover,
908 .btn:focus,
909 .cbi-button:hover,
910 .cbi-button:focus {
911         box-shadow: 0 0 2px rgba(0, 0, 0, .12), 0 2px 2px rgba(0, 0, 0, .2);
912 }
913
914 .btn:active,
915 .cbi-button:active {
916         box-shadow: 0 10px 20px rgba(0, 0, 0, .19), 0 6px 6px rgba(0, 0, 0, .23);
917 }
918
919 .btn:disabled,
920 .cbi-button:disabled {
921         cursor: not-allowed;
922         pointer-events: none;
923         opacity: .5;
924         box-shadow: none;
925 }
926
927 /* gray */
928 .alert-message [class="btn"],
929 .modal div[class="btn"],
930 .cbi-button-find,
931 .cbi-button-link,
932 .cbi-button-up,
933 .cbi-button-down,
934 .cbi-button-neutral,
935 .cbi-button[name="zero"],
936 .cbi-button[name="restart"],
937 .cbi-button[onclick="hide_empty(this)"] {
938         font-weight: bold;
939         border: thin solid #bfbfbf;
940         background-color: #d4d4d4;
941 }
942
943 /* dark blue */
944 .btn.primary,
945 .cbi-page-actions .cbi-button-save,
946 .cbi-page-actions .cbi-button-apply + .cbi-button-save,
947 .cbi-button-add,
948 .cbi-button-save,
949 .cbi-button-positive,
950 .cbi-button-link,
951 .cbi-button[value="Enable"],
952 .cbi-button[value="Scan"],
953 .cbi-button[value^="Back"],
954 .cbi-button-neutral[onclick="handleConfig(event)"] {
955         font-weight: normal;
956         color: #fff;
957         border: thin solid #2e6da4;
958         background-color: #337ab7;
959 }
960
961 /* light blue */
962 .cbi-page-actions .cbi-button-apply,
963 .cbi-section-actions .cbi-button-edit,
964 .cbi-button-edit,
965 .cbi-button-apply,
966 .cbi-button-reload,
967 .cbi-button-action,
968 .cbi-button[value="Submit"],
969 .cbi-button[value$="Apply"],
970 .cbi-button[onclick="addKey(event)"] {
971         font-weight: normal;
972         color: #fff;
973         border: thin solid #46b8da;
974         background-color: #5bc0de;
975 }
976
977 /* red */
978 .btn.danger,
979 .cbi-section-remove > .cbi-button,
980 .cbi-button-remove,
981 .cbi-button-reset,
982 .cbi-button-negative,
983 .cbi-button[value="Stop"],
984 .cbi-button[value="Kill"],
985 .cbi-button[onclick="reboot(this)"],
986 .cbi-button-neutral[value="Restart"] {
987         font-weight: normal;
988         color: #fff;
989         border: thin solid #d43f3a;
990         background-color: #d9534f;
991 }
992
993 /* yellow */
994 .btn[value="Dismiss"],
995 .cbi-button[value="Terminate"],
996 .cbi-button[value="Reset"],
997 .cbi-button[value="Disabled"],
998 .cbi-button[onclick^="iface_reconnect"],
999 .cbi-button[onclick="handleReset(event)"],
1000 .cbi-button-neutral[value="Disable"] {
1001         font-weight: normal;
1002         color: #fff;
1003         border: thin solid #eea236;
1004         background-color: #f0ad4e;
1005 }
1006
1007 /* green */
1008 .cbi-button-success,
1009 .cbi-button-download,
1010 .cbi-button[name="backup"],
1011 .cbi-button[value="Upload"],
1012 .cbi-button[value="Save mtdblock"] {
1013         font-weight: normal;
1014         color: #fff;
1015         border: thin solid #4cae4c;
1016         background-color: #5cb85c;
1017 }
1018
1019 .cbi-page-actions .cbi-button-link:first-child {
1020         float: left;
1021 }
1022
1023 .a-to-btn {
1024         text-decoration: none;
1025 }
1026
1027 .cbi-value-field .cbi-button-add {
1028         font-weight: bold;
1029         padding: 1px 6px;
1030 }
1031
1032 .cbi-value-field .cbi-button-neutral {
1033         padding: 1px 8px;
1034 }
1035
1036 /* table */
1037 .tabs {
1038         margin: 0 -2rem;
1039         padding-left: .5rem;
1040         background-color: #fff;
1041 }
1042
1043 .cbi-tabmenu > li,
1044 .tabs > li {
1045         display: inline-block;
1046         padding: .6rem 0;
1047 }
1048
1049 .cbi-tabmenu > li > a,
1050 .tabs > li > a {
1051         padding: .5rem .8rem;
1052         text-decoration: none;
1053         color: #404040;
1054 }
1055
1056 .tabs > li[class~="active"],
1057 .tabs > li:hover {
1058         margin-bottom: -.18751rem;
1059         cursor: pointer;
1060         color: #09c;
1061         color: var(--main-color);
1062         border-bottom: #09c;
1063         border-bottom: .2rem solid var(--main-color);
1064 }
1065
1066 .tabs > li[class~="active"] > a {
1067         color: #09c;
1068         color: var(--main-color);
1069 }
1070
1071 .tabs > li:hover {
1072         border-bottom: .18751rem solid #c9c9c9;
1073 }
1074
1075 .cbi-tabmenu {
1076         border: thin solid #d4d4d4;
1077         border-bottom: 0;
1078 }
1079
1080 .cbi-tabmenu > li:hover {
1081         background-color: #f1f1f1;
1082 }
1083
1084 .cbi-tabmenu > li[class~="cbi-tab"] {
1085         background-color: #fff;
1086 }
1087
1088 .cbi-tabmenu {
1089         background-color: #d4d4d4;
1090 }
1091
1092 .cbi-section .cbi-section-remove:nth-of-type(2n),
1093 .container > .cbi-section .cbi-section-node:nth-of-type(2n) {
1094         background-color: #f9f9f9;
1095 }
1096
1097 [data-tab-title] {
1098         height: 0;
1099         opacity: 0;
1100         overflow: hidden;
1101 }
1102
1103 [data-tab-active="true"] {
1104         opacity: 1;
1105         height: auto;
1106         overflow: visible;
1107         transition: opacity .25s ease-in;
1108 }
1109
1110 .cbi-section[id] .cbi-section-remove:nth-of-type(4n+3),
1111 .cbi-section[id] .cbi-section-node:nth-of-type(4n+4) {
1112         background-color: #f9f9f9;
1113 }
1114
1115 .cbi-section-node-tabbed {
1116         margin-top: 0;
1117         padding: 0;
1118         border: thin solid #d4d4d4;
1119         border-top: 0;
1120 }
1121
1122 .cbi-tabcontainer > .cbi-value:nth-of-type(2n) {
1123         background-color: #f9f9f9;
1124 }
1125
1126 .cbi-value-field,
1127 .cbi-value-description {
1128         line-height: 1.25;
1129         display: table-cell;
1130 }
1131
1132 .cbi-input-invalid {
1133         color: #f00;
1134         border-color: #f00;
1135 }
1136
1137 .cbi-section-error {
1138         font-weight: bold;
1139         line-height: 1.42857143;
1140         margin: 18px;
1141         padding: 6px;
1142         border: thin solid #f00;
1143         border-radius: 3px;
1144         background-color: #fce6e6;
1145 }
1146
1147 .cbi-section-error ul {
1148         margin: 0 0 0 20px;
1149 }
1150
1151 .cbi-section-error ul li {
1152         font-weight: bold;
1153         color: #f00;
1154 }
1155
1156 .cbi-value-helpicon > img {
1157         display: none;
1158 }
1159
1160 .cbi-value-helpicon:before {
1161         content: "\f059";
1162 }
1163
1164 .cbi-value-description {
1165         font-size: small;
1166         padding: .5rem 0 0 0;
1167         opacity: .5;
1168 }
1169
1170 .cbi-value-title {
1171         display: table-cell;
1172         float: left;
1173         width: 23rem;
1174         padding-top: .4rem;
1175         padding-right: 2rem;
1176         text-align: right;
1177         word-wrap: break-word;
1178 }
1179
1180 .cbi-value {
1181         display: inline-block;
1182         width: 100%;
1183         padding: .3rem 1rem;
1184 }
1185
1186 .cbi-value ul {
1187         line-height: 1.25;
1188 }
1189
1190 .td[data-title]::before {
1191         font-weight: bold;
1192         display: none;
1193         padding: .25rem 0;
1194         content: attr(data-title) ":\20";
1195         text-align: left;
1196         white-space: nowrap;
1197 }
1198
1199 .tr.placeholder .td[data-title]::before {
1200         display: none;
1201 }
1202
1203 .tr[data-title]::before,
1204 .tr.cbi-section-table-titles.named::before {
1205         font-weight: bold;
1206         display: table-cell;
1207         align-self: center;
1208         flex: 1 1 5%;
1209         padding: .25rem;
1210         content: attr(data-title) "\20";
1211         text-align: center;
1212         vertical-align: middle;
1213         white-space: normal;
1214         word-wrap: break-word;
1215 }
1216
1217 .cbi-rowstyle-1 {
1218         background-color: #f9f9f9;
1219 }
1220
1221 .cbi-rowstyle-2 {
1222         background-color: #eee;
1223 }
1224
1225 .cbi-rowstyle-2 .cbi-button-up,
1226 .cbi-rowstyle-2 .cbi-button-down,
1227 .cbi-rowstyle-2:first-child {
1228         background-color: #fff !important;
1229 }
1230
1231 .cbi-section-table .cbi-section-table-titles .cbi-section-table-cell {
1232         width: auto !important;
1233 }
1234
1235 .td.cbi-section-actions {
1236         text-align: right !important;
1237         vertical-align: middle;
1238 }
1239
1240 .td.cbi-section-actions > * {
1241         display: inline-flex;
1242 }
1243
1244 .td.cbi-section-actions > * > *,
1245 .td.cbi-section-actions > * > form > * {
1246         margin: 0 5px;
1247 }
1248
1249 .td.cbi-section-actions > * > form {
1250         display: inline-flex;
1251         margin: 0;
1252 }
1253
1254 /* desc */
1255 .cbi-section-descr,
1256 .cbi-map-descr {
1257         font-size: small;
1258         line-height: 1.42857143;
1259         padding: .5rem;
1260         color: #999;
1261 }
1262
1263 .cbi-dynlist {
1264         line-height: 1.3;
1265         flex-direction: column;
1266         min-height: 30px;
1267 }
1268
1269 .cbi-dynlist > .item {
1270         position: relative;
1271         max-width: 24.9rem;
1272         margin: 0 2em 4px 0;
1273         padding: 2px 4px;
1274         cursor: default;
1275         pointer-events: none;
1276         color: #666;
1277         border-bottom: 2px solid rgba(0, 0, 0, .26);
1278 }
1279
1280 .cbi-dynlist[name="sshkeys"] > .item {
1281         max-width: none;
1282 }
1283
1284 .cbi-dynlist > .item::after {
1285         font-weight: bold;
1286         position: absolute;
1287         right: -2em;
1288         bottom: 0;
1289         display: inline-flex;
1290         min-height: 17px;
1291         padding: 0 6px;
1292         content: "\00D7";
1293         pointer-events: auto;
1294         color: #fff;
1295         border: thin solid #d43f3a;
1296         background-color: #d9534f;
1297 }
1298
1299 .cbi-dynlist > .item > span {
1300         white-space: normal;
1301         word-break: break-word;
1302 }
1303
1304 .cbi-dynlist,
1305 .cbi-dropdown {
1306         position: relative;
1307         display: inline-flex;
1308         height: auto;
1309         padding: 0;
1310         cursor: default;
1311 }
1312
1313 .cbi-dropdown > ul {
1314         display: flex;
1315         overflow-x: hidden;
1316         overflow-y: auto;
1317         width: 100%;
1318         margin: 0 !important;
1319         padding: 0;
1320         list-style: none;
1321 }
1322
1323 .cbi-dropdown > ul.preview {
1324         display: none;
1325 }
1326
1327 .cbi-dropdown > .open {
1328         flex-basis: 15px;
1329 }
1330
1331 .cbi-dropdown > .open,
1332 .cbi-dropdown > .more {
1333         font-size: 1rem;
1334         font-weight: 900;
1335         line-height: 2;
1336         display: flex;
1337         flex-direction: column;
1338         flex-grow: 0;
1339         flex-shrink: 0;
1340         justify-content: center;
1341         padding: 0 .25em;
1342         text-align: center;
1343 }
1344
1345 .cbi-dropdown > .more,
1346 .cbi-dropdown > ul > li[placeholder] {
1347         font-weight: bold;
1348         display: none;
1349         color: #777;
1350         text-shadow: 1px 1px 0 #fff;
1351 }
1352
1353 .cbi-dropdown > ul > li {
1354         display: none;
1355         overflow: hidden;
1356         align-items: center;
1357         align-self: center;
1358         flex-grow: 1;
1359         flex-shrink: 1;
1360         min-height: 20px;
1361         padding: .25em;
1362         white-space: nowrap;
1363         text-overflow: ellipsis;
1364 }
1365
1366 .cbi-dropdown > ul > li .hide-open {
1367         display: initial;
1368 }
1369
1370 .cbi-dropdown > ul > li .hide-close {
1371         display: none;
1372 }
1373
1374 .cbi-dropdown > ul > li[display]:not([display="0"]) {
1375         border-left: thin solid #ccc;
1376 }
1377
1378 .cbi-dropdown[empty] > ul {
1379         max-width: 1px;
1380 }
1381
1382 .cbi-dropdown > ul > li > form {
1383         display: none;
1384         margin: 0;
1385         padding: 0;
1386         pointer-events: none;
1387 }
1388
1389 .cbi-dropdown > ul > li img {
1390         margin-right: .25em;
1391         vertical-align: middle;
1392 }
1393
1394 .cbi-dropdown > ul > li > form > input[type="checkbox"] {
1395         height: auto;
1396         margin: 0;
1397 }
1398
1399 .cbi-dropdown > ul > li input[type="text"] {
1400         height: 20px;
1401 }
1402
1403 .cbi-dropdown[open] {
1404         position: relative;
1405 }
1406
1407 .cbi-dropdown[open] > ul.dropdown {
1408         position: absolute;
1409         z-index: 1100;
1410         display: block;
1411         width: auto;
1412         min-width: 100%;
1413         max-width: none;
1414         max-height: 200px !important;
1415         border: thin solid #918e8c;
1416         background: #f6f6f6;
1417         box-shadow: 0 0 4px #918e8c;
1418 }
1419
1420 .cbi-dropdown > ul > li[display],
1421 .cbi-dropdown[open] > ul.preview,
1422 .cbi-dropdown[open] > ul.dropdown > li,
1423 .cbi-dropdown[multiple] > ul > li > label,
1424 .cbi-dropdown[multiple][open] > ul.dropdown > li,
1425 .cbi-dropdown[multiple][more] > .more,
1426 .cbi-dropdown[multiple][empty] > .more {
1427         display: flex;
1428         align-items: center;
1429         flex-grow: 1;
1430 }
1431
1432 .cbi-dropdown[empty] > ul > li,
1433 .cbi-dropdown[optional][open] > ul.dropdown > li[placeholder],
1434 .cbi-dropdown[multiple][open] > ul.dropdown > li > form {
1435         display: block;
1436 }
1437
1438 .cbi-dropdown[open] > ul.dropdown > li .hide-open {
1439         display: none;
1440 }
1441
1442 .cbi-dropdown[open] > ul.dropdown > li .hide-close {
1443         display: initial;
1444 }
1445
1446 .cbi-dropdown[open] > ul.dropdown > li {
1447         border-bottom: thin solid #ccc;
1448 }
1449
1450 .cbi-dropdown[open] > ul.dropdown > li[selected] {
1451         background: #b0d0f0;
1452 }
1453
1454 .cbi-dropdown[open] > ul.dropdown > li.focus {
1455         background: linear-gradient(90deg, #a3c2e8 0%, #84aad9 100%);
1456 }
1457
1458 .cbi-dropdown[open] > ul.dropdown > li:last-child {
1459         margin-bottom: 0;
1460         border-bottom: 0;
1461 }
1462
1463 .cbi-dropdown[open] > ul.dropdown > li[unselectable] {
1464         opacity: .7;
1465 }
1466
1467 .cbi-dropdown[open] > ul.dropdown > li > input.create-item-input:first-child:last-child {
1468         width: 100%;
1469 }
1470
1471 .cbi-dropdown[disabled] {
1472         pointer-events: none;
1473         opacity: .6;
1474 }
1475
1476 .cbi-dropdown .zonebadge {
1477         width: 100%;
1478 }
1479
1480 .cbi-dropdown[open] .zonebadge {
1481         width: auto;
1482 }
1483
1484 #modal_overlay {
1485         position: fixed;
1486         z-index: 900;
1487         top: 4rem;
1488         right: 10000px;
1489         bottom: 0;
1490         left: -10000px;
1491         overflow-y: scroll;
1492         transition: opacity .125s ease-in;
1493         opacity: 0;
1494         background: rgba(0, 0, 0, .7);
1495         -webkit-overflow-scrolling: touch;
1496 }
1497
1498 .modal {
1499         display: flex;
1500         align-items: center;
1501         flex-wrap: wrap;
1502         width: 90%;
1503         min-width: 270px;
1504         max-width: 600px;
1505         min-height: 32px;
1506         max-height: 2400px;
1507         margin: 5em auto;
1508         padding: 1em;
1509         border-radius: 3px !important;
1510         background: #fff;
1511         box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
1512 }
1513
1514 .modal > * {
1515         line-height: normal;
1516         flex-basis: 100%;
1517 }
1518
1519 .modal > pre,
1520 .modal > textarea {
1521         font-size: 1rem;
1522         font-size-adjust: .35;
1523         overflow: auto;
1524         margin-bottom: .5em;
1525         padding: 8.5px;
1526         white-space: pre-wrap;
1527         color: #eee;
1528         outline: 0;
1529         background-color: #101010;
1530         box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
1531 }
1532
1533 .modal > h4 {
1534         margin: .5em 0;
1535 }
1536
1537 .modal ul {
1538         margin-left: 2.2em;
1539 }
1540
1541 .modal li {
1542         list-style-type: square;
1543         color: #808080;
1544 }
1545
1546 .modal p {
1547         padding-left: .25rem;
1548         word-break: break-word;
1549 }
1550
1551 .modal .label {
1552         font-size: .6rem;
1553         font-weight: normal;
1554         padding: .1rem .3rem;
1555         padding-bottom: 0;
1556         cursor: default;
1557         border-radius: 0;
1558 }
1559
1560 .modal .label.warning {
1561         background-color: #f0ad4e !important;
1562 }
1563
1564 .modal .btn {
1565         padding: .3rem .6rem;
1566 }
1567
1568 .modal .spinning {
1569         margin-bottom: 2em;
1570 }
1571
1572 body.modal-overlay-active {
1573         overflow: hidden;
1574         height: 100vh;
1575 }
1576
1577 body.modal-overlay-active #modal_overlay {
1578         right: 0;
1579         left: 0;
1580         opacity: 1;
1581 }
1582
1583 .spinning {
1584         position: relative;
1585         padding-left: 32px !important;
1586 }
1587
1588 .spinning::before {
1589         position: absolute;
1590         top: 0;
1591         bottom: 0;
1592         left: .2em;
1593         width: 32px;
1594         content: " ";
1595         background: url(../resources/icons/loading.gif) no-repeat center;
1596         background-size: 16px;
1597 }
1598
1599 /* luci */
1600 .hidden {
1601         display: none;
1602 }
1603
1604 .left,
1605 .left::before {
1606         text-align: left !important;
1607 }
1608
1609 .right,
1610 .right::before {
1611         text-align: right !important;
1612 }
1613
1614 .center,
1615 .center::before {
1616         text-align: center !important;
1617 }
1618
1619 .top {
1620         align-self: flex-start !important;
1621         vertical-align: top !important;
1622 }
1623
1624 .bottom {
1625         align-self: flex-end !important;
1626         vertical-align: bottom !important;
1627 }
1628
1629 .inline {
1630         display: inline;
1631 }
1632
1633 .cbi-page-actions {
1634         padding-top: 1rem;
1635         text-align: right;
1636 }
1637
1638 .cbi-page-actions > form[method="post"] {
1639         display: inline-block;
1640 }
1641
1642 /* input */
1643 .cbi-value input[type="password"],
1644 .cbi-value input[type="text"] {
1645         min-width: 15rem;
1646 }
1647
1648 /* select */
1649 .cbi-value-field .cbi-dropdown,
1650 .cbi-value-field .cbi-input-select {
1651         min-width: 15rem;
1652 }
1653
1654 .cbi-value-field .cbi-input-invalid {
1655         color: #f00;
1656         border-bottom-color: #f00;
1657 }
1658
1659 /* progressbar */
1660 .cbi-progressbar {
1661         position: relative;
1662         min-width: 170px;
1663         height: 20px;
1664         margin: 4px 0;
1665         border: thin solid #999;
1666         background: #eee;
1667 }
1668
1669 .cbi-progressbar > div {
1670         width: 0;
1671         height: 100%;
1672         transition: width .25s ease-in;
1673         background: #5bc0de;
1674         background: var(--bar-bg);
1675 }
1676
1677 .cbi-progressbar::after {
1678         font-family: monospace;
1679         font-size: 1.3em;
1680         font-weight: bold;
1681         font-size-adjust: .38;
1682         line-height: normal;
1683         position: absolute;
1684         top: 2px;
1685         right: 0;
1686         bottom: 2px;
1687         left: 0;
1688         overflow: hidden;
1689         content: attr(title);
1690         text-align: center;
1691         white-space: pre;
1692         text-overflow: ellipsis;
1693         text-shadow: 0 0 2px #eee;
1694 }
1695
1696 .th[data-type="button"],
1697 .td[data-type="button"],
1698 .th[data-type="fvalue"],
1699 .td[data-type="fvalue"] {
1700         flex: 1 1 2em;
1701         text-align: center;
1702 }
1703
1704 .ifacebadge {
1705         display: inline-flex;
1706         padding: .5rem .8rem;
1707         border-bottom: thin solid #ccc;
1708         background: #eee;
1709         box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 1px 2px rgba(0, 0, 0, .05);
1710 }
1711
1712 td > .ifacebadge,
1713 .td > .ifacebadge {
1714         font-size: .8rem;
1715         background-color: #f0f0f0;
1716 }
1717
1718 .ifacebadge > em,
1719 .ifacebadge > img {
1720         display: inline-block;
1721         align-self: flex-start;
1722         margin: 0 .2rem;
1723 }
1724
1725 .ifacebadge > img + img {
1726         margin: 0 .2rem 0 0;
1727 }
1728
1729 .network-status-table {
1730         display: flex;
1731         flex-wrap: wrap;
1732 }
1733
1734 .network-status-table .ifacebox {
1735         flex-grow: 1;
1736         margin: .5em;
1737 }
1738
1739 .network-status-table .ifacebox-body {
1740         display: flex;
1741         flex-direction: column;
1742         height: 100%;
1743 }
1744
1745 .network-status-table .ifacebox-body > span {
1746         flex: 10 10 auto;
1747 }
1748
1749 .network-status-table .ifacebox-body > div {
1750         display: flex;
1751         flex-wrap: wrap;
1752 }
1753
1754 .network-status-table .ifacebox-body .ifacebadge {
1755         align-items: center;
1756         flex: 1 1 auto;
1757         min-width: 220px;
1758         margin: .5em .25em 0 .25em;
1759         padding: .5em;
1760         background-color: #fff;
1761 }
1762
1763 /* textarea */
1764 .cbi-input-textarea {
1765         font-family: monospace;
1766         width: 100%;
1767         min-height: 14rem;
1768         padding: .8rem;
1769         color: #000;
1770 }
1771
1772 #syslog {
1773         font-size: small;
1774         overflow-y: hidden;
1775         width: 100%;
1776         min-height: 15rem;
1777         margin-bottom: 20px;
1778         padding: 1rem;
1779         padding-bottom: 2.5rem;
1780         resize: none;
1781         color: #eee;
1782         border: 0;
1783         border-radius: 0;
1784         background-color: #101010;
1785         box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
1786 }
1787
1788 #syslog:focus {
1789         outline: 0;
1790 }
1791
1792 /* config changes */
1793 .uci-change-list {
1794         font-family: monospace;
1795 }
1796
1797 .uci-change-list ins,
1798 .uci-change-legend-label ins {
1799         display: block;
1800         padding: 2px;
1801         text-decoration: none;
1802         border: thin solid #0f0;
1803         background-color: #cfc;
1804 }
1805
1806 .uci-change-list del,
1807 .uci-change-legend-label del {
1808         font-style: normal;
1809         display: block;
1810         padding: 2px;
1811         text-decoration: none;
1812         border: thin solid #f00;
1813         background-color: #fcc;
1814 }
1815
1816 .uci-change-list var,
1817 .uci-change-legend-label var {
1818         font-style: normal;
1819         display: block;
1820         padding: 2px;
1821         text-decoration: none;
1822         border: thin solid #ccc;
1823         background-color: #eee;
1824 }
1825
1826 .uci-change-list var ins,
1827 .uci-change-list var del {
1828         font-style: normal;
1829         padding: 0;
1830         white-space: pre;
1831         border: 0;
1832 }
1833
1834 .uci-change-legend {
1835         padding: 5px;
1836 }
1837
1838 .uci-change-legend-label {
1839         float: left;
1840         width: 150px;
1841 }
1842
1843 .uci-change-legend-label > ins,
1844 .uci-change-legend-label > del,
1845 .uci-change-legend-label > var {
1846         display: block;
1847         float: left;
1848         width: 10px;
1849         height: 10px;
1850         margin-right: 4px;
1851 }
1852
1853 .uci-change-legend-label var ins,
1854 .uci-change-legend-label var del {
1855         line-height: .4;
1856         border: 0;
1857 }
1858
1859 .uci-change-list var,
1860 .uci-change-list del,
1861 .uci-change-list ins {
1862         padding: .5rem;
1863 }
1864
1865 /* other fix */
1866 #iwsvg,
1867 #iwsvg2,
1868 #bwsvg {
1869         border: thin solid #d4d4d4 !important;
1870 }
1871
1872 #iwsvg,
1873 [data-page="admin-status-realtime-bandwidth"] #bwsvg {
1874         border-top: 0 !important;
1875 }
1876
1877 .ifacebox {
1878         line-height: 1.25;
1879         display: inline-flex;
1880         flex-direction: column;
1881         min-width: 100px;
1882         border-bottom: thin solid #ccc;
1883         background-color: #f9f9f9;
1884         box-shadow: inset 0 1px 0 rgba(255, 255, 255, .4), 0 1px 2px rgba(0, 0, 0, .2);
1885 }
1886
1887 .ifacebox-head {
1888         padding: .25em;
1889         background: #eee;
1890 }
1891
1892 .ifacebox-head.active {
1893         background: #5bc0de;
1894         background: var(--bar-bg);
1895 }
1896
1897 .ifacebox-body {
1898         padding: .25em;
1899 }
1900
1901 .cbi-image-button {
1902         margin-left: .5rem;
1903 }
1904
1905 .zonebadge {
1906         display: inline-block;
1907         padding: .2rem .5rem;
1908 }
1909
1910 .zonebadge .ifacebadge {
1911         margin: .1rem .2rem;
1912         padding: .2rem .3rem;
1913         border: thin solid #6c6c6c;
1914 }
1915
1916 .zonebadge > input[type="text"] {
1917         min-width: 10rem;
1918         margin-top: .3rem;
1919         padding: .16rem 1rem;
1920 }
1921
1922 .zonebadge > em,
1923 .zonebadge > strong {
1924         display: inline-block;
1925         margin: 0 .2rem;
1926 }
1927
1928 .cbi-value-field .cbi-input-checkbox,
1929 .cbi-value-field .cbi-input-radio {
1930         margin-top: .15rem;
1931 }
1932
1933 .cbi-value-field > ul > li {
1934         display: flex;
1935 }
1936
1937 .cbi-value-field > ul > li > label {
1938         margin-top: .5rem;
1939 }
1940
1941 .cbi-value-field > ul > li .ifacebadge {
1942         margin-top: -.5rem;
1943         margin-left: .4rem;
1944         background-color: #eee;
1945 }
1946
1947 .cbi-section-table-row > .cbi-value-field .cbi-dropdown {
1948         min-width: 7rem;
1949 }
1950
1951 .cbi-section-create {
1952         display: inline-flex;
1953         align-items: center;
1954         margin: .5rem -3px;
1955 }
1956
1957 .cbi-section-create > * {
1958         margin: .5rem;
1959 }
1960
1961 .cbi-section-remove {
1962         padding: .5rem;
1963 }
1964
1965 div.cbi-value var,
1966 td.cbi-value-field var,
1967 .td.cbi-value-field var {
1968         font-style: italic;
1969         color: #0069d6;
1970 }
1971
1972 small {
1973         font-size: 90%;
1974         line-height: 1.42857143;
1975         white-space: normal;
1976 }
1977
1978 .cbi-button-up,
1979 .cbi-button-down {
1980         font-size: 1.2rem;
1981         display: inline-block;
1982         min-width: 0;
1983         padding: .2rem .3rem;
1984 }
1985
1986 .cbi-optionals {
1987         padding: 1rem 1rem 0 1rem;
1988         border-top: thin solid #ccc;
1989 }
1990
1991 .cbi-dropdown-container {
1992         position: relative;
1993 }
1994
1995 .cbi-tooltip-container,
1996 span[data-tooltip],
1997 span[data-tooltip] .label {
1998         cursor: help !important;
1999 }
2000
2001 .cbi-tooltip {
2002         position: absolute;
2003         z-index: 1000;
2004         left: -1000px;
2005         padding: 2px 5px;
2006         transition: opacity .25s ease-out;
2007         white-space: pre;
2008         pointer-events: none;
2009         opacity: 0;
2010         border-radius: 3px;
2011         background: #fff;
2012         box-shadow: 0 0 2px #444;
2013 }
2014
2015 .cbi-tooltip-container:hover .cbi-tooltip {
2016         left: auto;
2017         transition: opacity .25s ease-in;
2018         opacity: 1;
2019 }
2020
2021 .zonebadge .cbi-tooltip {
2022         margin: -1.5rem 0 0 -.5rem;
2023         padding: .25rem;
2024         background: inherit;
2025 }
2026
2027 .zonebadge-empty {
2028         color: #404040;
2029         background: repeating-linear-gradient(45deg, rgba(204, 204, 204, .5), rgba(204, 204, 204, .5) 5px, rgba(255, 255, 255, .5) 5px, rgba(255, 255, 255, .5) 10px);
2030 }
2031
2032 .zone-forwards {
2033         display: flex;
2034         min-width: 10rem;
2035 }
2036
2037 .zone-forwards > * {
2038         flex: 1 1 45%;
2039 }
2040
2041 .zone-forwards > span {
2042         flex-basis: 10%;
2043         padding: 0 .25rem;
2044         text-align: center;
2045 }
2046
2047 .zone-forwards .zone-src,
2048 .zone-forwards .zone-dest {
2049         display: flex;
2050         flex-direction: column;
2051 }
2052
2053 .label {
2054         font-size: .8rem;
2055         font-weight: bold;
2056         padding: .3rem .8rem;
2057         white-space: nowrap;
2058         text-decoration: none;
2059         text-transform: uppercase;
2060         color: #fff !important;
2061         -webkit-border-radius: 3px;
2062         -moz-border-radius: 3px;
2063         border-radius: 3px;
2064         background-color: #bfbfbf;
2065         text-shadow: none;
2066 }
2067
2068 label > input[type="checkbox"],
2069 label > input[type="radio"] {
2070         position: relative;
2071         top: .4rem;
2072         right: .2rem;
2073         margin: 0;
2074         vertical-align: bottom;
2075 }
2076
2077 .showSide {
2078         display: none;
2079 }
2080
2081 .darkMask {
2082         position: fixed;
2083         z-index: 99;
2084         display: none;
2085         width: 100%;
2086         height: 100%;
2087         content: "";
2088         background-color: rgba(0, 0, 0, .56);
2089 }
2090
2091 /* diagnostics */
2092 #diag-rc-output > pre,
2093 #command-rc-output > pre {
2094         font-size: 1.2rem;
2095         font-size-adjust: .35;
2096         line-height: normal;
2097         display: block;
2098         width: 100%;
2099         padding: 8.5px;
2100         white-space: pre;
2101         color: #eee;
2102         background-color: #101010;
2103         box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
2104 }
2105
2106 [data-page="admin-network-diagnostics"] .table {
2107         box-shadow: none;
2108 }
2109
2110 input[name="ping"],
2111 input[name="traceroute"],
2112 input[name="nslookup"] {
2113         width: 80%;
2114 }
2115
2116 /* fix Main Login */
2117 .node-main-login > .main > .main-left {
2118         display: none;
2119 }
2120
2121 .node-main-login > .main > .main-right {
2122         width: 100%;
2123 }
2124
2125 .node-main-login > .main fieldset {
2126         display: inline;
2127         overflow: hidden;
2128         margin-bottom: 1rem;
2129         padding: .5rem;
2130         border: 0;
2131         background: none;
2132         box-shadow: none;
2133 }
2134
2135 .node-main-login > .main .cbi-value-title {
2136         width: 9.5rem;
2137 }
2138
2139 .node-main-login > .main #maincontent {
2140         text-align: center;
2141 }
2142
2143 .node-main-login > .main .container {
2144         display: inline-block;
2145         margin-top: 2rem !important;
2146         padding: 1rem 3.5rem 2rem;
2147         text-align: left;
2148         background-color: #fff;
2149         box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
2150 }
2151
2152 .node-main-login > .main form > div:nth-last-child(1) {
2153         float: right;
2154 }
2155
2156 .node-main-login > .main .cbi-value {
2157         display: block;
2158 }
2159
2160 .node-main-login > .main .cbi-value > * {
2161         display: inline-block !important;
2162 }
2163
2164 .node-main-login > .main .cbi-input-text {
2165         min-width: 15rem;
2166 }
2167
2168 .node-main-login .cbi-section {
2169         box-shadow: none;
2170 }
2171
2172 @media screen and (min-height: 585px) {
2173         .node-main-login footer {
2174                 position: absolute;
2175                 bottom: 0;
2176                 width: 100%;
2177         }
2178 }
2179
2180 /* fix status overview */
2181 .node-status-overview > .main fieldset:nth-child(4) .td:nth-child(2) {
2182         white-space: normal;
2183 }
2184
2185 /* fix status processes */
2186 .node-status-processes > .main .table .tr .td:nth-child(3) {
2187         white-space: normal;
2188 }
2189
2190 .node-admin-status form {
2191         margin: 2rem 2rem 0 0;
2192 }
2193
2194 /* fix system reboot */
2195 [data-page="admin-system-reboot"] p {
2196         padding-left: 2rem;
2197 }
2198
2199 [data-page="admin-system-reboot"] p > span {
2200         position: relative;
2201         top: .1rem;
2202         left: 1rem;
2203 }
2204
2205 /* samba */
2206 #cbi-samba .cbi-value-last .cbi-value-field {
2207         display: block;
2208 }
2209
2210 #cbi-samba .cbi-value-last .cbi-value-title {
2211         width: auto;
2212         padding-bottom: .6rem;
2213 }
2214
2215 /* software */
2216 .controls > * > .btn:not([aria-label$="page"]) {
2217         flex-grow: initial !important;
2218         margin-top: .1rem;
2219 }
2220
2221 .controls > #pager > .btn[aria-label$="page"] {
2222         font-size: 1.4rem;
2223         font-weight: bold;
2224 }
2225
2226 .controls > * > label {
2227         margin-bottom: .2rem;
2228 }
2229
2230 [data-page="admin-system-opkg"] div.btn {
2231         line-height: 3;
2232         display: inline;
2233         padding: .3rem .6rem;
2234 }
2235
2236 [data-page^="admin-system-admin"]:not(.node-main-login) .cbi-map:not(#cbi-dropbear),
2237 [data-page="admin-system-opkg"] #maincontent > .container {
2238         margin-top: 2rem;
2239         padding-top: .1rem;
2240 }
2241
2242 [data-page="admin-system-opkg"] #maincontent > .container {
2243         margin: 2rem;
2244         margin-bottom: 1rem;
2245 }
2246
2247 .td.version,
2248 .td.size {
2249         white-space: normal !important;
2250         word-break: break-word;
2251 }
2252
2253 .cbi-tabmenu + .cbi-section {
2254         margin-top: 0;
2255 }
2256
2257 /* wireless overview */
2258 #cbi-wireless > #wifi_assoclist_table > .tr {
2259         box-shadow: inset 1px -1px 0 #ddd, inset -1px -1px 0 #ddd;
2260 }
2261
2262 #cbi-wireless > #wifi_assoclist_table > .tr.placeholder > .td {
2263         right: 33px;
2264         bottom: 33px;
2265         left: 33px;
2266         border-top: thin solid #ddd !important;
2267 }
2268
2269 #cbi-wireless > #wifi_assoclist_table > .tr.table-titles {
2270         box-shadow: inset 1px 0 0 #ddd, inset -1px 0 0 #ddd;
2271 }
2272
2273 #cbi-wireless > #wifi_assoclist_table > .tr.table-titles > .th {
2274         border-bottom: thin solid #ddd;
2275         box-shadow: 0 -1px 0 0 #ddd;
2276 }
2277
2278 #wifi_assoclist_table > .tr > .td[data-title="RX Rate / TX Rate"] {
2279         width: 23rem;
2280 }
2281
2282 /* firewall */
2283 #iptables {
2284         font-family: inherit;
2285         font-weight: normal;
2286         font-style: normal;
2287         line-height: 1;
2288         min-width: inherit;
2289         margin: 0 0 2rem 0;
2290         padding: 2rem;
2291         border: 0;
2292         border-radius: 0;
2293         background-color: #fff;
2294 }
2295
2296 #cbi-firewall-redirect table *,
2297 #cbi-network-switch_vlan table *,
2298 #cbi-firewall-zone table * {
2299         font-size: small;
2300 }
2301
2302 #cbi-firewall-redirect table input[type="text"],
2303 #cbi-network-switch_vlan table input[type="text"],
2304 #cbi-firewall-zone table input[type="text"] {
2305         width: 5rem;
2306 }
2307
2308 #cbi-firewall-redirect table select,
2309 #cbi-network-switch_vlan table select,
2310 #cbi-firewall-zone table select {
2311         min-width: 3.5rem;
2312 }
2313
2314 #cbi-network-switch_vlan .th,
2315 #cbi-network-switch_vlan .td {
2316         flex-basis: 12%;
2317 }
2318
2319 #cbi-firewall-zone .table,
2320 #cbi-network-switch_vlan .table {
2321         display: block;
2322 }
2323
2324 #cbi-firewall-zone .td.cbi-section-actions {
2325         width: 100%;
2326 }
2327
2328 /* applyreboot fix */
2329 #applyreboot-container {
2330         margin: 2rem;
2331 }
2332
2333 #applyreboot-section {
2334         line-height: 300%;
2335         margin: 2rem;
2336 }
2337
2338 /* openvpn bug fix */
2339 .OpenVPN a {
2340         line-height: initial !important;
2341 }
2342
2343 /* custom commands */
2344 .commandbox {
2345         width: 24% !important;
2346         padding: .5rem 1rem;
2347         border-bottom: thin solid #ccc;
2348         background: #eee;
2349         box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 1px 2px rgba(0, 0, 0, .05);
2350 }
2351
2352 .commandbox h3 {
2353         line-height: normal !important;
2354         overflow: hidden;
2355         margin: 6px 0 !important;
2356         white-space: nowrap;
2357         text-overflow: ellipsis;
2358 }
2359
2360 .commandbox div {
2361         left: auto !important;
2362 }
2363
2364 .commandbox code {
2365         position: absolute;
2366         overflow-x: hidden;
2367         overflow-y: auto;
2368         max-width: 60%;
2369         max-height: 55px;
2370         margin-top: -3px;
2371         margin-left: 4px;
2372         padding: 2px 3px;
2373         text-overflow: ellipsis;
2374 }
2375
2376 .commandbox p:first-of-type {
2377         margin-top: -6px;
2378 }
2379
2380 .commandbox p:nth-of-type(2) {
2381         margin-top: 2px;
2382 }
2383
2384 [data-page^="admin-system-commands"] .panel-title,
2385 [data-page^="command-cfg"] .mobile-hide,
2386 [data-page^="command-cfg"] header > .fill > .container > #logo {
2387         display: none;
2388 }
2389
2390 #command-rc-output .alert-message {
2391         line-height: 1.42857143;
2392         position: absolute;
2393         top: 40px;
2394         right: 32px;
2395         max-width: 40%;
2396         margin: 0;
2397         animation: anim-fade-in 1.5s forwards;
2398         opacity: 0;
2399 }
2400
2401 @keyframes anim-fade-in {
2402         100% {
2403                 opacity: 1;
2404         }
2405 }
2406
2407 @media screen and (max-width: 1600px) {
2408         header > .fill > .container > #logo {
2409                 margin: 0 2.5rem 0 .5rem;
2410         }
2411
2412         .main-left {
2413                 width: calc(0% + 13rem);
2414         }
2415
2416         .main-right {
2417                 width: calc(100% - 13rem);
2418         }
2419
2420         .cbi-dynlist > .item {
2421                 max-width: 21.9rem;
2422         }
2423
2424         .btn:not(button),
2425         .cbi-button {
2426                 font-size: .8rem;
2427                 padding: .3rem .6rem;
2428         }
2429
2430         .label {
2431                 padding: .2rem .6rem;
2432         }
2433
2434         .cbi-value-title {
2435                 width: 15rem;
2436                 padding-right: .6rem;
2437         }
2438
2439         fieldset,
2440         .cbi-section {
2441                 padding: 1rem;
2442         }
2443
2444         .cbi-input-textarea {
2445                 font-size: small;
2446         }
2447
2448         .node-admin-status > .main fieldset li > a {
2449                 padding: .3rem .6rem;
2450         }
2451
2452         #cbi-firewall-zone > .table {
2453                 display: block;
2454         }
2455 }
2456
2457 @media screen and (max-width: 1366px) {
2458         header {
2459                 height: 3.5rem;
2460         }
2461
2462         header > .fill > .container {
2463                 margin-top: .25rem;
2464                 cursor: default;
2465         }
2466
2467         .main {
2468                 top: 3.5rem;
2469                 height: calc(100% - 3.5rem);
2470         }
2471
2472         .main-left {
2473                 top: 3.5rem;
2474                 width: calc(0% + 13rem);
2475                 height: calc(100% - 3.5rem);
2476         }
2477
2478         .main-right {
2479                 width: calc(100% - 13rem);
2480         }
2481
2482         .cbi-dynlist > .item {
2483                 max-width: 19.9rem;
2484         }
2485
2486         .cbi-tabmenu > li > a,
2487         .tabs > li > a {
2488                 padding: .2rem .5rem;
2489         }
2490
2491         .panel-title {
2492                 font-size: 1.1rem;
2493                 padding-bottom: 1rem;
2494         }
2495
2496         table {
2497                 font-size: .7rem !important;
2498                 width: 100% !important;
2499         }
2500
2501         .table .cbi-input-text {
2502                 width: 100%;
2503         }
2504
2505         .main > .main-left > .nav > li,
2506         .main > .main-left > .nav > li a,
2507         .main > .main-left > .nav > .slide > .menu {
2508                 font-size: .9rem;
2509         }
2510
2511         .main > .main-left > .nav > .slide > .slide-menu > li > a {
2512                 font-size: .7rem;
2513         }
2514
2515         #modal_overlay {
2516                 top: 3.5rem;
2517         }
2518
2519         [data-page="admin-network-firewall-forwards"] .table:not(.cbi-section-table) {
2520                 display: block;
2521         }
2522
2523         [data-page="admin-network-firewall-forwards"] .table:not(.cbi-section-table),
2524         [data-page="admin-network-firewall-rules"] .table:not(.cbi-section-table),
2525         [data-page="admin-network-hosts"] .table {
2526                 overflow-y: visible;
2527         }
2528
2529         .commandbox {
2530                 width: 32% !important;
2531         }
2532 }
2533
2534 @media screen and (max-width: 1152px) {
2535         header > .fill > .container > #logo {
2536                 display: none;
2537         }
2538
2539         header > .fill > .container > .brand {
2540                 position: relative;
2541         }
2542
2543         [data-page^="command-cfg"] header > .fill > .container > .brand {
2544                 display: block;
2545                 margin-top: -1.75rem;
2546         }
2547
2548         html,
2549         .main {
2550                 overflow-y: visible;
2551         }
2552
2553         .main-left {
2554                 position: fixed;
2555                 z-index: 100;
2556                 width: 0;
2557         }
2558
2559         .main-right {
2560                 width: 100%;
2561         }
2562
2563         .cbi-dynlist > .item {
2564                 max-width: 14.9rem;
2565         }
2566
2567         .showSide {
2568                 display: inline-block;
2569                 overflow: visible;
2570                 margin-right: .5rem;
2571                 padding: .1rem;
2572                 cursor: pointer;
2573                 border-radius: 50%;
2574         }
2575
2576         .showSide:before {
2577                 font-size: 1.7rem;
2578                 content: "\e20e";
2579         }
2580
2581         body:not(.logged-in) .showSide {
2582                 visibility: hidden;
2583                 width: 0;
2584                 margin: 0;
2585                 padding: 0;
2586         }
2587
2588         .node-main-login > .main .cbi-value-title {
2589                 text-align: left;
2590         }
2591
2592         .cbi-value-title {
2593                 width: 9rem;
2594                 padding-right: 1rem;
2595         }
2596
2597         #diag-rc-output > pre,
2598         #command-rc-output > pre {
2599                 font-size: 1rem;
2600         }
2601
2602         .table {
2603                 display: block;
2604         }
2605
2606         #packages.table {
2607                 display: grid;
2608         }
2609
2610         .tr {
2611                 display: flex;
2612                 flex-direction: row;
2613                 flex-wrap: wrap;
2614         }
2615
2616         .Overview .table[width="100%"] > .tr {
2617                 flex-wrap: nowrap;
2618         }
2619
2620         .tr.placeholder {
2621                 border-bottom: thin solid #ddd;
2622         }
2623
2624         .tr.placeholder > .td,
2625         #cbi-firewall .tr > .td,
2626         #iptables .tr:nth-child(2) > .td,
2627         #cbi-network .tr:nth-child(2) > .td,
2628         .cbi-section #wifi_assoclist_table .tr > .td {
2629                 border-top: 0;
2630         }
2631
2632         .th,
2633         .td {
2634                 display: inline-block;
2635                 align-self: flex-start;
2636                 flex: 2 2 25%;
2637                 text-overflow: ellipsis;
2638                 word-wrap: break-word;
2639         }
2640
2641         .td select,
2642         .td input[type="text"] {
2643                 width: 100%;
2644                 word-wrap: normal;
2645         }
2646
2647         .td [data-dynlist] > input,
2648         .td input.cbi-input-password {
2649                 width: calc(100% - 1.5rem);
2650         }
2651
2652         .td[data-type="button"],
2653         .td[data-type="fvalue"] {
2654                 flex: 1 1 12.5%;
2655                 text-align: left;
2656         }
2657
2658         .th.cbi-value-field,
2659         .td.cbi-value-field,
2660         .th.cbi-section-table-cell,
2661         .td.cbi-section-table-cell {
2662                 flex-basis: auto;
2663                 padding-top: 1rem;
2664         }
2665
2666         .cbi-section-table-row {
2667                 display: flex;
2668                 flex-direction: row;
2669                 flex-wrap: wrap;
2670                 justify-content: space-between;
2671                 box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
2672         }
2673
2674         .td.cbi-value-field,
2675         .cbi-section-table-cell {
2676                 display: inline-block;
2677                 flex: 10 10 auto;
2678                 flex-basis: 50%;
2679                 text-align: center;
2680         }
2681
2682         .td.cbi-section-actions {
2683                 vertical-align: bottom;
2684         }
2685
2686         .tr.table-titles,
2687         .tr.cbi-section-table-titles,
2688         .tr.cbi-section-table-descr {
2689                 display: none;
2690         }
2691
2692         .tr[data-title]::before,
2693         .tr.cbi-section-table-titles.named::before {
2694                 font-size: .9rem;
2695                 display: block;
2696                 flex: 1 1 100%;
2697                 border-bottom: thin solid rgba(0, 0, 0, .26);
2698                 background: #90c0e0;
2699         }
2700
2701         .td[data-title],
2702         [data-page^="admin-status-realtime"] .td[id] {
2703                 text-align: left;
2704         }
2705
2706         .td[data-title]::before {
2707                 display: block;
2708         }
2709
2710         .cbi-button + .cbi-button {
2711                 margin-left: 0;
2712         }
2713
2714         .td.cbi-section-actions > * > *,
2715         .td.cbi-section-actions > * > form > * {
2716                 margin: 2.1px 3px;
2717         }
2718
2719         .Firewall form {
2720                 font-family: inherit;
2721                 font-weight: normal;
2722                 font-style: normal;
2723                 line-height: normal;
2724                 position: static !important;
2725                 min-width: inherit;
2726                 margin: 0 0 2rem 0;
2727                 padding: 2rem;
2728                 border: 0;
2729                 border-radius: 0;
2730                 background-color: #fff;
2731                 box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
2732         }
2733
2734         .Firewall form input {
2735                 width: 100% !important;
2736                 margin: 0;
2737                 margin-top: 1rem;
2738         }
2739
2740         .Firewall .center,
2741         .Firewall .center::before {
2742                 text-align: left !important;
2743         }
2744
2745         .commandbox {
2746                 width: 100% !important;
2747         }
2748 }
2749
2750 @media screen and (max-width: 600px) {
2751         body {
2752                 font-size: .8rem;
2753         }
2754
2755         .cbi-progressbar::after {
2756                 font-size: .95em;
2757                 line-height: 1.5;
2758         }
2759
2760         fieldset,
2761         .cbi-section {
2762                 margin: 1rem 0 0 0;
2763                 padding: 1rem;
2764         }
2765
2766         .tabs {
2767                 margin: 0 -1rem;
2768         }
2769
2770         #maincontent > .container {
2771                 margin: 0 1rem 1.5rem 1rem;
2772         }
2773
2774         .main > .main-left > .nav > .slide > .menu {
2775                 font-size: 1.2rem;
2776         }
2777
2778         .main > .main-left > .nav > .slide > .slide-menu > li > a {
2779                 font-size: 1rem;
2780         }
2781
2782         .cbi-value-title {
2783                 display: block;
2784                 width: 100%;
2785                 min-width: 0 !important;
2786                 margin-top: 1rem;
2787                 margin-bottom: .5rem;
2788                 text-align: left;
2789         }
2790
2791         .cbi-value-field,
2792         .cbi-value-description {
2793                 width: 100%;
2794         }
2795
2796         .cbi-value > .cbi-value-field {
2797                 display: inline-block;
2798         }
2799
2800         .cbi-tabmenu > li,
2801         .tabs > li {
2802                 padding: .6rem 0;
2803         }
2804
2805         .cbi-tabmenu > li > a,
2806         .tabs > li > a {
2807                 font-size: .9rem;
2808                 padding: .2rem .3rem;
2809         }
2810
2811         .cbi-page-actions > div > input {
2812                 display: none;
2813         }
2814
2815         .cbi-page-actions > .cbi-button {
2816                 margin-top: .2rem;
2817         }
2818
2819         .node-main-login > .main .container {
2820                 margin: 2rem 1.2rem 1.5rem 1.2rem !important;
2821                 padding: .3rem 1.7rem 2rem 1.6rem;
2822         }
2823
2824         .node-main-login > .main .cbi-value {
2825                 padding: 0;
2826         }
2827
2828         .node-main-login > .main form > div:nth-last-child(1) {
2829                 margin-top: 2rem;
2830         }
2831
2832         .node-main-login > .main .cbi-value-title {
2833                 font-size: 1.2rem;
2834                 width: 100% !important;
2835         }
2836
2837         .node-main-login > .main fieldset {
2838                 margin: 0;
2839                 padding: .5rem;
2840         }
2841
2842         .commandbox p:first-of-type {
2843                 margin-top: -8px;
2844         }
2845
2846         #diag-rc-output > pre,
2847         #command-rc-output > pre {
2848                 font-size: .8rem;
2849         }
2850
2851         h2 {
2852                 font-size: 2rem;
2853         }
2854
2855         .tabs > li > a {
2856                 font-size: .9rem;
2857         }
2858
2859         select,
2860         input {
2861                 font-size: .9rem;
2862         }
2863
2864         code {
2865                 font-size: .8rem;
2866         }
2867
2868         .mobile-hide {
2869                 display: none;
2870         }
2871
2872         .panel-title {
2873                 font-size: 1.4rem;
2874                 padding-bottom: 1rem;
2875         }
2876
2877         .node-system-packages > .main .cbi-value.cbi-value-last > div {
2878                 width: 100% !important;
2879         }
2880
2881         .node-system-packages > .main .cbi-value .cbi-value-field input {
2882                 width: 100%;
2883         }
2884
2885         .th,
2886         .td {
2887                 flex-basis: 50%;
2888         }
2889
2890         .td.cbi-value-field {
2891                 flex-basis: 100%;
2892         }
2893
2894         .td.cbi-value-field[data-type="button"],
2895         .td.cbi-value-field[data-type="fvalue"] {
2896                 flex-basis: 25%;
2897                 text-align: left;
2898         }
2899
2900         .tr[data-title]::before,
2901         .tr.cbi-section-table-titles.named::before {
2902                 font-size: 1rem;
2903         }
2904
2905         td > .ifacebadge,
2906         .td > .ifacebadge {
2907                 font-size: .62rem;
2908         }
2909
2910         #cbi-wireless .td {
2911                 overflow: hidden;
2912         }
2913
2914         .hide-sm,
2915         .hide-xs:not([data-title="MAC-Address"]) {
2916                 display: none;
2917         }
2918 }
2919
2920 @media screen and (min-width: 600px) {
2921         ::-webkit-scrollbar {
2922                 width: 10px;
2923                 height: 10px;
2924                 background: transparent;
2925         }
2926
2927         ::-webkit-scrollbar-thumb {
2928                 background: #9e9e9e;
2929         }
2930
2931         ::-webkit-scrollbar-thumb:hover {
2932                 background: #757575;
2933         }
2934
2935         ::-webkit-scrollbar-thumb:active {
2936                 background: #424242;
2937         }
2938 }
2939
2940 @media screen and (min-width: 1152px) {
2941         .cbi-value input[type="password"],
2942         .cbi-value input[type="text"] {
2943                 min-width: 20rem;
2944         }
2945
2946         .cbi-value-field .cbi-input-select {
2947                 width: 20rem;
2948         }
2949
2950         .cbi-value-field .cbi-dropdown {
2951                 min-width: 20rem;
2952         }
2953
2954         .cbi-section-node .tr {
2955                 overflow: hidden;
2956         }
2957 }
2958
2959 @media screen and (min-width: 1366px) {
2960         .cbi-value input[type="password"],
2961         .cbi-value input[type="text"] {
2962                 min-width: 22rem;
2963         }
2964
2965         .cbi-value-field .cbi-input-select {
2966                 width: 22rem;
2967         }
2968
2969         .cbi-value-field .cbi-dropdown {
2970                 min-width: 22rem;
2971         }
2972 }
2973
2974 @media screen and (min-width: 1600px) {
2975         .cbi-value input[type="password"],
2976         .cbi-value input[type="text"] {
2977                 min-width: 25rem;
2978         }
2979
2980         .cbi-value-field .cbi-input-select {
2981                 width: 25rem;
2982         }
2983
2984         .cbi-value-field .cbi-dropdown {
2985                 min-width: 25rem;
2986         }
2987 }