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