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