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