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