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