luci-theme-material: make colors configurable
[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 * Licensed to the public under the Apache License 2.0
19 */
20
21 /*
22 * Include custom css
23 */
24 @import url("custom.css");
25
26 /*
27 * Font generate by Icomoon<icomoon.io>
28 */
29 @font-face {
30 font-family: 'icomoon';
31 src: url('fonts/font.eot');
32 src: url('fonts/font.eot') format('embedded-opentype'),
33 url('fonts/font.ttf') format('truetype'),
34 url('fonts/font.woff') format('woff'),
35 url('fonts/font.svg') format('svg');
36 font-weight: normal;
37 font-style: normal;
38 }
39
40 .table { display: table; position: relative; }
41 .tr { display: table-row; }
42 .thead { display: table-header-group; }
43 .tbody { display: table-row-group; }
44 .tfoot { display: table-footer-group; }
45 .td, .th {
46 vertical-align: middle;
47 text-align: center;
48 display: table-cell;
49 padding: .5em;
50 }
51
52 .th {
53 font-weight: bold;
54 }
55
56 .tr.placeholder {
57 height: 4em;
58 }
59
60 .tr.placeholder > .td {
61 position: absolute;
62 left: 0;
63 right: 0;
64 bottom: 0;
65 text-align: center;
66 line-height: 3em;
67 background: inherit;
68 }
69
70 .table[width="33%"], .th[width="33%"], .td[width="33%"] { width: 33%; }
71 .table[width="100%"], .th[width="100%"], .td[width="100%"] { width: 100%; }
72
73 .col-1 { flex: 1 1 30px !important; -webkit-flex: 1 1 30px !important; }
74 .col-2 { flex: 2 2 60px !important; -webkit-flex: 2 2 60px !important; }
75 .col-3 { flex: 3 3 90px !important; -webkit-flex: 3 3 90px !important; }
76 .col-4 { flex: 4 4 120px !important; -webkit-flex: 4 4 120px !important; }
77 .col-5 { flex: 5 5 150px !important; -webkit-flex: 5 5 150px !important; }
78 .col-6 { flex: 6 6 180px !important; -webkit-flex: 6 6 180px !important; }
79 .col-7 { flex: 7 7 210px !important; -webkit-flex: 7 7 210px !important; }
80 .col-8 { flex: 8 8 240px !important; -webkit-flex: 8 8 240px !important; }
81 .col-9 { flex: 9 9 270px !important; -webkit-flex: 9 9 270px !important; }
82 .col-10 { flex: 10 10 300px !important; -webkit-flex: 10 10 300px !important; }
83
84 .cbi-button-up,
85 .cbi-button-down,
86 .cbi-value-helpicon,
87 .showSide,
88 .main > .loading > span {
89 font-family: 'icomoon' !important;
90 speak: none;
91 font-style: normal !important;
92 font-weight: normal !important;
93 font-variant: normal !important;
94 text-transform: none !important;
95 line-height: 1;
96
97 -webkit-font-smoothing: antialiased;
98 -moz-osx-font-smoothing: grayscale;
99 }
100
101 * {
102 margin: 0;
103 padding: 0;
104 box-sizing: border-box;
105 }
106
107 .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
108 font-family: inherit;
109 font-weight: 400;
110 line-height: 1.1;
111 color: inherit;
112 }
113
114 html {
115 -webkit-text-size-adjust: 100%;
116 -ms-text-size-adjust: 100%;
117 }
118
119 body {
120 font-size: 0.8rem;
121 background-color: #EEE;
122 }
123
124 html, body {
125 margin: 0px;
126 padding: 0px;
127 height: 100%;
128 font-family: Microsoft Yahei, WenQuanYi Micro Hei, sans-serif, "Helvetica Neue", Helvetica, Hiragino Sans GB;
129 }
130
131 select {
132 padding: 0.36rem 0.8rem;
133 color: #555;
134 background-color: #fff;
135 background-image: none;
136 border: 1px solid #ccc;
137 }
138
139 select,
140 input,
141 .cbi-dropdown {
142 background-color: transparent;
143 color: rgba(0, 0, 0, .87);
144 border: none;
145 border-bottom: 2px solid rgba(0, 0, 0, .26);
146 outline: 0;
147 padding: 0;
148 box-shadow: none;
149 border-radius: 0;
150 background-image: none;
151 height: 1.8rem;
152 font-size: 0.8rem;
153 }
154
155 select:not([multiple="multiple"]):focus,
156 input:focus {
157 border-color: #0099CC;
158 }
159
160 select[multiple="multiple"] {
161 height: auto;
162 }
163
164 code {
165 color: #0099CC;
166 }
167
168 abbr {
169 color: #005470;
170 text-decoration: underline;
171 cursor: help;
172 }
173
174 hr {
175 margin: 1rem 0;
176 border-color: #EEE;
177 opacity: 0.1;
178 }
179
180 header, .main {
181 width: 100%;
182 position: absolute;
183 }
184
185 header {
186 height: 4rem;
187 box-shadow: 0 2px 5px rgba(0, 0, 0, .26);
188 transition: box-shadow .2s;
189 float: left;
190 position: fixed;
191 z-index: 2000;
192 }
193
194 footer {
195 text-align: right;
196 padding: 1rem;
197 color: #aaa;
198 font-size: 0.8rem;
199 text-shadow: 0px 0px 2px #BBB;
200 }
201
202 footer > a {
203 color: #aaa;
204 text-decoration: none;
205 }
206
207 .main {
208 top: 4rem;
209 bottom: 0rem;
210 position: relative;
211 height: 100%;
212 height: calc(100% - 4rem);
213 }
214
215 .main > .loading {
216 position: fixed;
217 width: 100%;
218 height: 100%;
219 z-index: 1000;
220 display: block;
221 background-color: rgb(240, 240, 240);
222 top: 0;
223 }
224
225 .main > .loading > span {
226 display: block;
227 text-align: center;
228 margin-top: 2rem;
229 color: #888;
230 font-size: 1.2rem;
231 }
232
233 .main > .loading > span > .loading-img:before {
234 content: "\e603";
235 }
236
237 .main > .loading > span > .loading-img {
238 animation: anim-rotate 2s infinite linear;
239 margin-right: 0.2rem;
240 display: inline-block;
241 }
242
243 @keyframes anim-rotate {
244 0% {
245 -webkit-transform: rotate(0);
246 -ms-transform: rotate(0);
247 transform: rotate(0);
248 }
249 100% {
250 -webkit-transform: rotate(360deg);
251 -ms-transform: rotate(360deg);
252 transform: rotate(360deg)
253 }
254 }
255
256 .main-left {
257 float: left;
258 top: 4rem;
259 width: 15%;
260 width: calc(0% + 15rem);
261 height: 100%;
262 height: calc(100% - 4rem);
263 background-color: var(--menu-bg-color, #FFFFFF);
264 overflow-x: auto;
265 position: fixed;
266 }
267
268 .main-right {
269 width: 85%;
270 width: calc(100% - 15rem);
271 float: right;
272 height: 100%;
273 background-color: #EEE;
274 }
275
276 .main-right > #maincontent {
277 background-color: #EEE;
278 }
279
280 .pull-right {
281 float: right;
282 }
283
284 .pull-left {
285 float: left;
286 }
287
288 header {
289 background: var(--header-bg, #0099CC);
290 color: var(--header-color, #FFFFFF);
291 }
292
293 header > .fill > .container {
294 margin-top: 0.5rem;
295 padding: 0.5rem 1rem 0 1rem;
296 }
297
298 header > .fill > .container > .brand {
299 font-size: 1.4rem;
300 color: var(--header-color, #FFFFFF);
301 text-decoration: none;
302 cursor: default;
303 vertical-align: text-bottom;
304 }
305
306 .danger {
307 background-color: #FA8072 !important;
308 color: black;
309 }
310
311 .warning {
312 background-color: #F0E68C !important;
313 color: black;
314 }
315
316 .success {
317 background-color: #90EE90 !important;
318 color: black;
319 }
320
321 .alert-message {
322 margin: 2rem 0 0 0;
323 padding: 1rem;
324 border: 0;
325 font-weight: normal;
326 font-style: normal;
327 line-height: 1;
328 font-family: inherit;
329 min-width: inherit;
330 overflow: auto;
331 border-radius: 0;
332 background-color: #FFF;
333 box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
334 }
335
336 .error {
337 color: red;
338 }
339
340 .alert-message > h4 {
341 font-weight: bold;
342 font-size: 110%;
343 }
344
345 .alert-message > * {
346 margin: .5rem 0;
347 }
348
349 #maincontent > .container > div:nth-child(1).alert-message.warning > a {
350 font: inherit;
351 overflow: visible;
352 text-transform: none;
353 display: inline-block;
354 margin-bottom: 0;
355 font-weight: 400;
356 text-align: center;
357 white-space: nowrap;
358 vertical-align: middle;
359 touch-action: manipulation;
360 cursor: pointer;
361 -webkit-user-select: none;
362 -moz-user-select: none;
363 -ms-user-select: none;
364 user-select: none;
365 background-image: none;
366 min-width: 6rem;
367 padding: 0.5rem 1rem;
368 font-size: 0.9rem;
369 line-height: 1.42857143;
370 color: #fff;
371 background-color: #5bc0de;
372 border-color: #46b8da;
373 margin-top: 2rem;
374 text-decoration: inherit;
375 }
376
377 .main > .main-left > .nav {
378 margin-top: 0.5rem;
379 }
380
381 .main > .main-left > .nav > li a {
382 color: var(--menu-color, #404040);
383 display: block;
384 }
385
386 .main > .main-left > .nav > li:nth-last-child(1) {
387 margin-top: 2rem;
388 font-size: 1.2rem;
389 }
390
391 .main > .main-left > .nav > li {
392 padding: 0.5rem 1rem;
393 cursor: pointer;
394 }
395
396 .main > .main-left > .nav > .slide {
397 padding: 0;
398 }
399
400 .main > .main-left > .nav > .slide > ul {
401 display: none;
402 }
403
404 .main > .main-left > .nav > .slide > .menu {
405 display: block;
406 padding: 0.5rem 1rem;
407 text-decoration: none;
408 cursor: default;
409 font-size: 1.15rem;
410 }
411
412 .main > .main-left > .nav > li:hover,
413 .main > .main-left > .nav > .slide > .menu:hover {
414 background: var(--submenu-bg-hover, #D4D4D4)
415 }
416
417 .main > .main-left > .nav > .slide:hover {
418 background: none;
419 }
420
421 .main > .main-left > .nav > .slide > .slide-menu > li {
422 padding: 0.4rem 2rem;
423 }
424
425 .main > .main-left > .nav > .slide > .slide-menu > .active {
426 background-color: var(--submenu-bg-hover-active, #0099CC);
427 }
428
429 .main > .main-left > .nav > .slide > .slide-menu > li > a {
430 text-decoration: none;
431 white-space: nowrap;
432 }
433
434 .main > .main-left > .nav > .slide > .slide-menu > .active > a {
435 color: white;
436 }
437
438 .main > .main-left > .nav > .slide > .slide-menu > li:hover {
439 background: var(--submenu-bg-hover, #D4D4D4)
440 }
441
442 .main > .main-left > .nav > .slide > .slide-menu > .active:hover {
443 background-color: #0099CC;
444 cursor: hand;
445 }
446
447 li {
448 list-style-type: none;
449 }
450
451 #maincontent > .container {
452 margin: 0 2rem 1rem 2rem;
453 }
454
455 h1 {
456 font-size: 2rem;
457 padding-bottom: 10px;
458 border-bottom: 1px solid #eee;
459 }
460
461 h2 {
462 margin: 2rem 0 0 0;
463 font-size: 1.8rem;
464 padding-bottom: 10px;
465 border-bottom: 1px solid #eee;
466 }
467
468 h3 {
469 margin: 2rem 0 0 0;
470 font-size: 1.4rem;
471 padding-bottom: 10px;
472 }
473
474 h4 {
475 margin: 2rem 0 0 0;
476 font-size: 1.2rem;
477 padding-bottom: 10px;
478 }
479
480 .cbi-section {
481 margin: 1rem 0 0 0;
482 padding: 2rem;
483 border: 0;
484 font-weight: normal;
485 font-style: normal;
486 line-height: 1;
487 font-family: inherit;
488 min-width: inherit;
489 border-radius: 0;
490 background-color: #FFF;
491 box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
492
493 -webkit-overflow-scrolling: touch;
494 }
495
496 .cbi-map-descr + fieldset {
497 margin-top: 1rem;
498 }
499
500 .cbi-section > legend {
501 display: none !important;
502 }
503
504 fieldset > fieldset {
505 margin: 0;
506 padding: 0;
507 border: none;
508 box-shadow: none;
509 }
510
511 .cbi-section > h3:first-child,
512 .panel-title {
513 width: 100%;
514 display: block;
515 line-height: 1;
516 color: #404040;
517 font-size: 1.4rem;
518 padding-bottom: 1rem;
519 border-bottom: 1px solid #eee;
520 margin: 0;
521 }
522
523 table {
524 border-spacing: 0;
525 border-collapse: collapse;
526 }
527
528 table, .table {
529 width: 100%;
530 border: 1px solid #eee;
531 }
532
533 table > tbody > tr > td, table > tbody > tr > th, table > tfoot > tr > td, table > tfoot > tr > th, table > thead > tr > td, table > thead > tr > th,
534 .table > .tbody > .tr > .td, .table > .tbody > .tr > .th, .table > .tfoot > .tr > .td, .table > .tfoot > .tr > .th, .table > .thead > .tr > .td, .table > .thead > .tr > .th {
535 padding: .5rem;
536 border-top: 1px solid #ddd;
537 white-space: nowrap;
538 }
539
540 .cbi-section-table-cell {
541 white-space: nowrap;
542 align-self: flex-end;
543 flex: 1 1 auto;
544 }
545
546 .cbi-section-table {
547 border: none;
548 }
549
550 .cbi-section-table-row {
551 text-align: center;
552 margin-bottom: 1rem;
553 background: #f4f4f4;
554 box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
555 }
556
557 .cbi-section-table-row:last-child {
558 margin-bottom: 0;
559 }
560
561 .cbi-section-table-row > .cbi-value-field .cbi-input-select,
562 .cbi-section-table-row > .cbi-value-field .cbi-input-text,
563 .cbi-section-table-row > .cbi-value-field .cbi-input-password,
564 .cbi-section-table-row > .cbi-value-field .cbi-dropdown {
565 width: 100%;
566 }
567
568 .cbi-section-table-row > .cbi-value-field [data-dynlist] > input,
569 .cbi-section-table-row > .cbi-value-field input.cbi-input-password {
570 width: calc(100% - 1.5rem);
571 }
572
573 div > table > tbody > tr:nth-of-type(2n),
574 div > .table > .tbody > .tr:nth-of-type(2n) {
575 background-color: #f9f9f9;
576 }
577
578 div > table > tbody > tr:nth-of-type(2n),
579 div > .table > .tbody > .tr:nth-of-type(2n) {
580 background-color: #f9f9f9;
581 }
582
583 /* fix progress bar */
584 #swaptotal > div,
585 #swapfree > div,
586 #memfree > div,
587 #membuff > div,
588 #conns > div,
589 #memtotal > div {
590 width: 100% !important;
591 height: 1.2rem !important;
592 }
593
594 #swaptotal > div > div,
595 #swapfree > div > div,
596 #memfree > div > div,
597 #membuff > div > div,
598 #conns > div > div,
599 #memtotal > div > div {
600 height: 100% !important;
601 background-color: #0099CC !important;
602 }
603
604 /* fix multiple table */
605
606 table table,
607 .table .table {
608 border: none;
609 }
610
611 .cbi-value-field table,
612 .cbi-value-field .table {
613 border: none;
614 }
615
616 td > table > tbody > tr > td,
617 .td > .table > .tbody > .tr > .td {
618 border: none;
619 }
620
621 .cbi-value-field > table > tbody > tr > td,
622 .cbi-value-field > .table > .tbody > .tr > .td {
623 border: none;
624 }
625
626 /* button style */
627
628 .btn, .cbi-button {
629 -webkit-appearance: none;
630 text-transform: uppercase;
631 color: rgba(0, 0, 0, 0.87);
632 background-color: #F0F0F0;
633 transition: all 0.2s ease-in-out;
634 display: inline-block;
635 padding: 0 0.8rem;
636 border: none;
637 border-radius: 0.2rem;
638 cursor: pointer;
639 -ms-touch-action: manipulation;
640 touch-action: manipulation;
641 background-image: none;
642 text-align: center;
643 vertical-align: middle;
644 white-space: nowrap;
645 -webkit-user-select: none;
646 -moz-user-select: none;
647 -ms-user-select: none;
648 user-select: none;
649 font-size: 0.8rem;
650 width: auto !important;
651 display: inline-block;
652 text-decoration: none;
653 }
654
655 .btn:hover,
656 .btn:focus,
657 .btn:active,
658 .cbi-button:hover,
659 .cbi-button:focus,
660 .cbi-button:active,
661 .cbi-page-actions .cbi-button-apply + .cbi-button-save:hover,
662 .cbi-page-actions .cbi-button-apply + .cbi-button-save:focus,
663 .cbi-page-actions .cbi-button-apply + .cbi-button-save:active {
664 outline: 0;
665 text-decoration: none;
666 background-color: rgba(250, 250, 250, 0.7);
667 }
668
669 .btn:hover,
670 .btn:focus,
671 .cbi-button:hover,
672 .cbi-button:focus {
673 box-shadow: 0 0px 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
674 }
675
676 .btn:active,
677 .cbi-button:active {
678 box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
679 }
680
681 .btn:disabled,
682 .cbi-button:disabled {
683 cursor: not-allowed;
684 pointer-events: none;
685 opacity: 0.60;
686 box-shadow: none;
687 }
688
689 .cbi-page-actions .cbi-button-apply,
690 .cbi-section-actions .cbi-button-edit,
691 .cbi-button-edit.important,
692 .cbi-button-apply.important,
693 .cbi-button-reload.important,
694 .cbi-button-action.important {
695 color: #fff;
696 background-color: #337ab7;
697 }
698
699 .cbi-page-actions .cbi-button-save,
700 .cbi-button-add.important,
701 .cbi-button-save.important,
702 .cbi-button-positive.important {
703 color: #fff;
704 background-color: #5bc0de;
705 }
706
707 .cbi-button-remove.important,
708 .cbi-button-reset.important,
709 .cbi-button-negative.important {
710 color: #fff;
711 background-color: #d9534f;
712 }
713
714 .cbi-button-find,
715 .cbi-button-link,
716 .cbi-button-up,
717 .cbi-button-down,
718 .cbi-button-neutral {
719 border: 1px solid #bfbfbf;
720 background-color: transparent;
721 }
722
723 .cbi-button-edit,
724 .cbi-button-apply,
725 .cbi-button-reload,
726 .cbi-button-action {
727 color: #2e6da4;
728 border: 1px solid #2e6da4;
729 background-color: transparent;
730 }
731
732 .cbi-page-actions .cbi-button-apply + .cbi-button-save,
733 .cbi-button-add,
734 .cbi-button-save,
735 .cbi-button-positive {
736 color: #46b8da;
737 border: 1px solid #46b8da;
738 background-color: transparent;
739 }
740
741 .cbi-section-remove > .cbi-button,
742 .cbi-button-remove,
743 .cbi-button-reset,
744 .cbi-button-negative {
745 color: #d43f3a;
746 border: 1px solid #d43f3a;
747 background-color: transparent;
748 }
749
750 .cbi-page-actions .cbi-button-link:first-child {
751 float: left;
752 }
753
754 .a-to-btn {
755 text-decoration: none;
756 }
757
758 /* table */
759
760 .tabs {
761 margin: 0 -2rem;
762 padding-left: 0.5rem;
763 background-color: #FFFFFF;
764 }
765
766 .cbi-tabmenu > li,
767 .tabs > li {
768 display: inline-block;
769 padding: 0.6rem 0rem;
770 }
771
772 .cbi-tabmenu > li > a,
773 .tabs > li > a {
774 text-decoration: none;
775 color: #404040;
776 padding: 0.5rem 0.8rem;
777 }
778
779 .tabs > li[class~="active"],
780 .tabs > li:hover {
781 cursor: pointer;
782 border-bottom: 0.2rem solid #0099CC;
783 color: #0099CC;
784 margin-bottom: -0.18751rem;
785 }
786
787 .tabs > li[class~="active"] > a {
788 color: #0099cc;
789 }
790
791 .tabs > li:hover {
792 border-bottom: 0.18751rem solid #C9C9C9;
793 }
794
795 .cbi-tabmenu {
796 border-top: 1px solid #D4D4D4;
797 border-left: 1px solid #D4D4D4;
798 border-right: 1px solid #D4D4D4;
799 }
800
801 .cbi-tabmenu > li:hover {
802 background-color: #F1F1F1;
803 }
804
805 .cbi-tabmenu > li[class~="cbi-tab"] {
806 background-color: white;
807 }
808
809 .cbi-tabmenu {
810 background-color: #D4D4D4;
811 }
812
813 .cbi-section-remove:nth-of-type(2n),
814 .cbi-section-node:nth-of-type(2n){
815 background-color: #f9f9f9;
816 }
817
818 .cbi-section-node-tabbed {
819 padding: 0;
820 margin-top: 0;
821 border-bottom: 1px solid #D4D4D4;
822 border-left: 1px solid #D4D4D4;
823 border-right: 1px solid #D4D4D4;
824 }
825
826 .cbi-tabcontainer > .cbi-value:nth-of-type(2n) {
827 background-color: #f9f9f9;
828 }
829
830 .cbi-value-field,
831 .cbi-value-description {
832 display: table-cell;
833 line-height: 1.25;
834 }
835
836 .cbi-value-helpicon > img {
837 display: none;
838 }
839
840 .cbi-value-helpicon:before {
841 content: "\f059";
842 }
843
844 .cbi-value-description {
845 font-size: small;
846 opacity: 0.5;
847 padding: 0.5rem 0 0 0;
848 }
849
850 .cbi-value-title {
851 word-wrap: break-word;
852 padding-top: 0.6rem;
853 width: 23rem;
854 float: left;
855 text-align: right;
856 padding-right: 2rem;
857 display: table-cell;
858 }
859
860 .cbi-value {
861 padding: 0.3rem 1rem;
862 display: inline-block;
863 width: 100%;
864 }
865
866 .cbi-section-table-descr > .cbi-section-table-cell,
867 .cbi-section-table-titles > .cbi-section-table-cell {
868 border: none;
869 }
870
871 .td[data-title]::before {
872 content: attr(data-title) ":\20";
873 font-weight: bold;
874 text-align: left;
875 display: none;
876 padding: .25rem 0;
877 white-space: nowrap;
878 }
879
880 .tr.placeholder .td[data-title]::before {
881 display: none;
882 }
883
884 .tr[data-title]::before,
885 .tr.cbi-section-table-titles.named::before {
886 content: attr(data-title) "\20";
887 font-weight: bold;
888 text-align: center;
889 display: table-cell;
890 align-self: center;
891 flex: 1 1 5%;
892 padding: .25rem;
893 white-space: normal;
894 word-wrap: break-word;
895 vertical-align: middle;
896 }
897
898 .cbi-rowstyle-1 {
899 background-color: #f9f9f9;
900 }
901
902 .cbi-rowstyle-2 {
903 background-color: #eee;
904 }
905
906 .cbi-rowstyle-2 .cbi-button-up,
907 .cbi-rowstyle-2 .cbi-button-down {
908 background-color: #FFF !important;
909 }
910
911 .cbi-section-table .cbi-section-table-titles .cbi-section-table-cell {
912 width: auto !important;
913 }
914
915 .td.cbi-section-actions {
916 text-align: right;
917 vertical-align: middle;
918 }
919
920 .td.cbi-section-actions > * {
921 display: flex;
922 }
923
924 .td.cbi-section-actions > * > *,
925 .td.cbi-section-actions > * > form > * {
926 flex: 1 1 4em;
927 margin: 0 1px;
928 }
929
930 .td.cbi-section-actions > * > form {
931 display: inline-flex;
932 margin: 0;
933 }
934
935 /* desc */
936 .cbi-section-descr,
937 .cbi-map-descr {
938 padding: 0.5rem;
939 color: #999;
940 font-size: small;
941 }
942
943
944 .cbi-dropdown {
945 display: inline-flex;
946 cursor: pointer;
947 position: relative;
948 padding: 0;
949 height: auto;
950 }
951
952 .cbi-dropdown:focus {
953 outline: 2px solid #4b6e9b;
954 }
955
956 .cbi-dropdown > ul {
957 margin: 0 !important;
958 padding: 0;
959 list-style: none;
960 overflow-x: hidden;
961 overflow-y: auto;
962 display: flex;
963 width: 100%;
964 }
965
966 .cbi-dropdown > ul.preview {
967 display: none;
968 }
969
970 .cbi-dropdown > .open {
971 border: 2px outset #eee;
972 flex-basis: 15px;
973 background: #eee;
974 }
975
976 .cbi-dropdown > .open,
977 .cbi-dropdown > .more {
978 flex-grow: 0;
979 flex-shrink: 0;
980 display: flex;
981 flex-direction: column;
982 justify-content: center;
983 text-align: center;
984 line-height: 2em;
985 padding: 0 .25em;
986 }
987
988 .cbi-dropdown > .more,
989 .cbi-dropdown > ul > li[placeholder] {
990 color: #777;
991 font-weight: bold;
992 text-shadow: 1px 1px 0px #fff;
993 display: none;
994 }
995
996 .cbi-dropdown > ul > li {
997 display: none;
998 padding: .25em;
999 white-space: nowrap;
1000 overflow: hidden;
1001 text-overflow: ellipsis;
1002 flex-shrink: 1;
1003 flex-grow: 1;
1004 align-items: center;
1005 align-self: center;
1006 min-height: 20px;
1007 }
1008
1009 .cbi-dropdown > ul > li .hide-open { display: initial; }
1010 .cbi-dropdown > ul > li .hide-close { display: none; }
1011
1012 .cbi-dropdown > ul > li[display]:not([display="0"]) {
1013 border-left: 1px solid #ccc;
1014 }
1015
1016 .cbi-dropdown[empty] > ul {
1017 max-width: 1px;
1018 }
1019
1020 .cbi-dropdown > ul > li > form {
1021 display: none;
1022 margin: 0;
1023 padding: 0;
1024 pointer-events: none;
1025 }
1026
1027 .cbi-dropdown > ul > li img {
1028 vertical-align: middle;
1029 margin-right: .25em;
1030 }
1031
1032 .cbi-dropdown > ul > li > form > input[type="checkbox"] {
1033 margin: 0;
1034 height: auto;
1035 }
1036
1037 .cbi-dropdown > ul > li input[type="text"] {
1038 height: 20px;
1039 }
1040
1041 .cbi-dropdown[open] {
1042 position: relative;
1043 }
1044
1045 .cbi-dropdown[open] > ul.dropdown {
1046 display: block;
1047 background: #f6f6f5;
1048 border: 1px solid #918e8c;
1049 box-shadow: 0 0 4px #918e8c;
1050 position: absolute;
1051 z-index: 1000;
1052 max-width: none;
1053 min-width: 100%;
1054 width: auto;
1055 }
1056
1057 .cbi-dropdown > ul > li[display],
1058 .cbi-dropdown[open] > ul.preview,
1059 .cbi-dropdown[open] > ul.dropdown > li,
1060 .cbi-dropdown[multiple] > ul > li > label,
1061 .cbi-dropdown[multiple][open] > ul.dropdown > li,
1062 .cbi-dropdown[multiple][more] > .more,
1063 .cbi-dropdown[multiple][empty] > .more {
1064 flex-grow: 1;
1065 display: flex;
1066 align-items: center;
1067 }
1068
1069 .cbi-dropdown[empty] > ul > li,
1070 .cbi-dropdown[optional][open] > ul.dropdown > li[placeholder],
1071 .cbi-dropdown[multiple][open] > ul.dropdown > li > form {
1072 display: block;
1073 }
1074
1075 .cbi-dropdown[open] > ul.dropdown > li .hide-open { display: none; }
1076 .cbi-dropdown[open] > ul.dropdown > li .hide-close { display: initial; }
1077
1078 .cbi-dropdown[open] > ul.dropdown > li {
1079 border-bottom: 1px solid #ccc;
1080 }
1081
1082 .cbi-dropdown[open] > ul.dropdown > li[selected] {
1083 background: #b0d0f0;
1084 }
1085
1086 .cbi-dropdown[open] > ul.dropdown > li.focus {
1087 background: linear-gradient(90deg, #a3c2e8 0%, #84aad9 100%);
1088 }
1089
1090 .cbi-dropdown[open] > ul.dropdown > li:last-child {
1091 margin-bottom: 0;
1092 border-bottom: none;
1093 }
1094
1095 .cbi-dropdown[disabled] {
1096 pointer-events: none;
1097 opacity: .6;
1098 }
1099
1100 .cbi-dropdown .zonebadge {
1101 width: 100%;
1102 }
1103
1104 .cbi-dropdown[open] .zonebadge {
1105 width: auto;
1106 }
1107
1108
1109 /* luci */
1110
1111 .hidden {
1112 display: none
1113 }
1114
1115 .left, .left::before {
1116 text-align: left !important;
1117 }
1118
1119 .right, .right::before {
1120 text-align: right !important;
1121 }
1122
1123 .center, .center::before {
1124 text-align: center !important;
1125 }
1126
1127 .top {
1128 align-self: flex-start !important;
1129 vertical-align: top !important;
1130 }
1131
1132 .bottom {
1133 align-self: flex-end !important;
1134 vertical-align: bottom !important;
1135 }
1136
1137 .inline {
1138 display: inline;
1139 }
1140
1141 .cbi-page-actions {
1142 border-top: 1px solid #eee;
1143 padding-top: 1rem;
1144 text-align: right;
1145 }
1146
1147 /* input */
1148 .cbi-value input[type="password"],
1149 .cbi-value input[type="text"] {
1150 min-width: 15rem;
1151 }
1152
1153 /* select */
1154 .cbi-value-field .cbi-dropdown {
1155 min-width: 15rem;
1156 }
1157
1158 .cbi-value-field .cbi-input-select {
1159 width: 15rem;
1160 }
1161
1162 .th[data-type="button"], .td[data-type="button"],
1163 .th[data-type="fvalue"], .td[data-type="fvalue"] {
1164 flex: 1 1 2em;
1165 text-align: center;
1166 }
1167
1168 .ifacebadge {
1169 display: inline-flex;
1170 border-bottom: 1px solid #CCCCCC;
1171 padding: 0.5rem 1rem;
1172 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1173 background: #fff;
1174 }
1175
1176 td > .ifacebadge,
1177 .td > .ifacebadge {
1178 background-color: #F0F0F0;
1179 font-size: 0.9rem;
1180 }
1181
1182 .ifacebadge > em,
1183 .ifacebadge > img {
1184 display: inline-block;
1185 margin: 0 .2rem;
1186 align-self: flex-start;
1187 }
1188
1189 .ifacebadge > img + img {
1190 margin: 0 .2rem 0 0;
1191 }
1192
1193 .network-status-table {
1194 display: flex;
1195 flex-wrap: wrap;
1196 }
1197
1198 .network-status-table .ifacebox {
1199 margin: .5em;
1200 flex-grow: 1;
1201 }
1202
1203 .network-status-table .ifacebox-body {
1204 display: flex;
1205 flex-direction: column;
1206 height: 100%;
1207 }
1208
1209 .network-status-table .ifacebox-body > span {
1210 flex: 10 10 auto;
1211 }
1212
1213 .network-status-table .ifacebox-body > div {
1214 display: flex;
1215 flex-wrap: wrap;
1216 }
1217
1218 .network-status-table .ifacebox-body .ifacebadge {
1219 flex: 1 1 auto;
1220 margin: .5em .25em 0 .25em;
1221 padding: .5em;
1222 min-width: 220px;
1223 background-color: #fff;
1224 align-items: center;
1225 }
1226
1227 /*textarea*/
1228
1229 .cbi-input-textarea {
1230 width: 100%;
1231 min-height: 14rem;
1232 padding: 0.8rem;
1233 font-size: 0.8rem;
1234 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
1235 color: black;
1236 }
1237
1238 #syslog {
1239 width: 100%;
1240 min-height: 15rem;
1241 padding: 1rem;
1242 font-size: small;
1243 color: #5F5F5F;
1244
1245 margin-bottom: 20px;
1246 border-radius: 0;
1247 background-color: #FFF;
1248 box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
1249 border: none;
1250 }
1251
1252 /* change */
1253
1254 .uci-change-list {
1255 font-family: monospace;
1256 }
1257
1258 .uci-change-list ins,
1259 .uci-change-legend-label ins {
1260 text-decoration: none;
1261 border: 1px solid #00FF00;
1262 background-color: #CCFFCC;
1263 display: block;
1264 padding: 2px;
1265 }
1266
1267 .uci-change-list del,
1268 .uci-change-legend-label del {
1269 text-decoration: none;
1270 border: 1px solid #FF0000;
1271 background-color: #FFCCCC;
1272 display: block;
1273 font-style: normal;
1274 padding: 2px;
1275 }
1276
1277 .uci-change-list var,
1278 .uci-change-legend-label var {
1279 text-decoration: none;
1280 border: 1px solid #CCCCCC;
1281 background-color: #EEEEEE;
1282 display: block;
1283 font-style: normal;
1284 padding: 2px;
1285 }
1286
1287 .uci-change-list var ins,
1288 .uci-change-list var del {
1289 border: none;
1290 white-space: pre;
1291 font-style: normal;
1292 padding: 0px;
1293 }
1294
1295 .uci-change-legend {
1296 padding: 5px;
1297 }
1298
1299 .uci-change-legend-label {
1300 width: 150px;
1301 float: left;
1302 }
1303
1304 .uci-change-legend-label > ins,
1305 .uci-change-legend-label > del,
1306 .uci-change-legend-label > var {
1307 float: left;
1308 margin-right: 4px;
1309 width: 10px;
1310 height: 10px;
1311 display: block;
1312 }
1313
1314 .uci-change-legend-label var ins,
1315 .uci-change-legend-label var del {
1316 line-height: 6px;
1317 border: none;
1318 }
1319
1320 .uci-change-list var,
1321 .uci-change-list del,
1322 .uci-change-list ins {
1323 padding: 0.5rem;
1324 }
1325
1326 /* other fix */
1327 #iwsvg,
1328 #iwsvg2,
1329 #bwsvg {
1330 border: 1px solid #D4D4D4 !important;
1331 border-top: none !important;
1332 }
1333
1334 .ifacebox {
1335 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 2px rgba(0, 0, 0, 0.2);
1336 border-bottom: 1px solid #ccc;
1337 background-color: #f9f9f9;
1338 display: inline-flex;
1339 flex-direction: column;
1340 line-height: 1.2em;
1341 min-width: 100px;
1342 }
1343
1344 .ifacebox-head {
1345 padding: .25em;
1346 background: #eee;
1347 }
1348
1349 .ifacebox-head.active {
1350 background: #90c0e0;
1351 }
1352
1353 .ifacebox-body {
1354 padding: .25em;
1355 }
1356
1357 .cbi-image-button {
1358 margin-left: 0.5rem;
1359 }
1360
1361 .zonebadge {
1362 padding: 0.2rem 0.5rem;
1363 display: inline-block;
1364 }
1365
1366 .zonebadge .ifacebadge {
1367 padding: .2rem .3rem;
1368 margin: 0.1rem 0.2rem;
1369 border: 1px solid #6C6C6C;
1370 }
1371
1372 .zonebadge > input[type="text"] {
1373 padding: 0.16rem 1rem;
1374 min-width: 10rem;
1375 margin-top: 0.3rem;
1376 }
1377
1378 .zonebadge > em,
1379 .zonebadge > strong {
1380 margin: 0 0.2rem;
1381 display: inline-block;
1382 }
1383
1384 .cbi-value-field .cbi-input-checkbox,
1385 .cbi-value-field .cbi-input-radio {
1386 margin-top: 0.5rem;
1387 height: 1rem;
1388 }
1389
1390 .td .cbi-input-checkbox,
1391 .td .cbi-input-radio {
1392 margin-top: 0;
1393 }
1394
1395 .cbi-value-field > input + .cbi-value-description {
1396 padding: 0;
1397 }
1398
1399 .cbi-value-field > ul > li {
1400 display: flex;
1401 }
1402
1403 .cbi-value-field > ul > li > label {
1404 margin-top: 0.5rem;
1405 }
1406
1407 .cbi-value-field > ul > li .ifacebadge {
1408 background-color: #eee;
1409 margin-left: 0.4rem;
1410 margin-top: -0.5rem;
1411 }
1412
1413 .cbi-section-table-row > .cbi-value-field .cbi-dropdown {
1414 min-width: 7rem;
1415 }
1416
1417 .cbi-section-create {
1418 margin: .5rem -3px;
1419 display: inline-flex;
1420 align-items: center;
1421 }
1422
1423 .cbi-section-create > * {
1424 margin: 0.5rem;
1425 }
1426
1427 .cbi-section-remove {
1428 padding: 0.5rem;
1429 }
1430
1431 div.cbi-value var, td.cbi-value-field var, .td.cbi-value-field var {
1432 font-style: italic;
1433 color: #0069D6;
1434 }
1435
1436 small {
1437 font-size: 90%;
1438 white-space: normal;
1439 line-height: 1.42857143;
1440 }
1441
1442 .cbi-button-up,
1443 .cbi-button-down {
1444 display: inline-block;
1445 min-width: 0;
1446 padding: 0.2rem 0.3rem;
1447 font-size: 1.2rem;
1448 }
1449
1450 .cbi-optionals {
1451 padding: 1rem 1rem 0 1rem;
1452 border-top: 1px solid #CCC;
1453 }
1454
1455 .cbi-dropdown-container {
1456 position: relative;
1457 }
1458
1459 .cbi-tooltip-container {
1460 cursor: help;
1461 }
1462
1463 .cbi-tooltip {
1464 position: absolute;
1465 z-index: 1000;
1466 left: -1000px;
1467 opacity: 0;
1468 transition: opacity .25s ease-out;
1469 pointer-events: none;
1470 box-shadow: 0 0 2px #444;
1471 }
1472
1473 .cbi-tooltip-container:hover .cbi-tooltip {
1474 left: auto;
1475 opacity: 1;
1476 transition: opacity .25s ease-in;
1477 }
1478
1479 .zonebadge .cbi-tooltip {
1480 padding: .25rem;
1481 background: inherit;
1482 margin: -1.5rem 0 0 -.5rem;
1483 }
1484
1485 .zonebadge-empty {
1486 background: repeating-linear-gradient(45deg,rgba(204,204,204,0.5),rgba(204,204,204,0.5) 5px,rgba(255,255,255,0.5) 5px,rgba(255,255,255,0.5) 10px);
1487 color: #404040;
1488 }
1489
1490 .zone-forwards {
1491 display: flex;
1492 min-width: 10rem;
1493 }
1494
1495 .zone-forwards > * {
1496 flex: 1 1 45%;
1497 }
1498
1499 .zone-forwards > span {
1500 flex-basis: 10%;
1501 text-align: center;
1502 padding: 0 .25rem;
1503 }
1504
1505 .zone-forwards .zone-src,
1506 .zone-forwards .zone-dest {
1507 display: flex;
1508 flex-direction: column;
1509 }
1510
1511 #diag-rc-output > pre {
1512 background-color: #f5f5f5;
1513 display: block;
1514 padding: 8.5px;
1515 margin: 0 0 18px;
1516 line-height: 1.5rem;
1517 -moz-border-radius: 3px;
1518 white-space: pre-wrap;
1519 word-wrap: break-word;
1520 font-size: 1.4rem;
1521 color: #404040;
1522 }
1523
1524 input[name="ping"],
1525 input[name="traceroute"],
1526 input[name="nslookup"] {
1527 width: 80%;
1528 }
1529
1530 header > .container > .pull-right > * {
1531 position: relative;
1532 top: 0.45rem;
1533 cursor: pointer;
1534 }
1535
1536 #xhr_poll_status > .label.success {
1537 background-color: #14CE14;
1538 }
1539
1540 .label {
1541 padding: 0.3rem 0.8rem;
1542 font-size: 0.8rem;
1543 font-weight: bold;
1544 color: #ffffff !important;
1545 text-transform: uppercase;
1546 white-space: nowrap;
1547 background-color: #bfbfbf;
1548 -webkit-border-radius: 3px;
1549 -moz-border-radius: 3px;
1550 border-radius: 3px;
1551 text-shadow: none;
1552 text-decoration: none;
1553 }
1554
1555 .notice {
1556 background-color: #5BC0DE;
1557 }
1558
1559 .showSide {
1560 display: none;
1561 }
1562
1563 .darkMask {
1564 width: 100%;
1565 height: 100%;
1566 position: fixed;
1567 background-color: rgba(0, 0, 0, 0.56);
1568 content: "";
1569 z-index: 99;
1570 display: none;
1571 }
1572
1573 /* fix Main Login*/
1574 .node-main-login > .main > .main-left {
1575 display: none;
1576 }
1577
1578 .node-main-login > .main > .main-right {
1579 width: 100%;
1580 }
1581
1582 .node-main-login > .main fieldset {
1583 padding: 0.5rem;
1584 margin-bottom: 1rem;
1585 display: inline;
1586 background: none;
1587 border: none;
1588 box-shadow: none;
1589 overflow: hidden;
1590 }
1591
1592 .node-main-login > .main .cbi-value-title {
1593 width: 7rem;
1594 }
1595
1596 .node-main-login > .main #maincontent {
1597
1598 text-align: center;
1599 }
1600
1601 .node-main-login > .main .container {
1602 display: inline-block;
1603 padding: 2rem 4rem;
1604 margin-top: 2rem !important;
1605 background-color: #FFF;
1606 box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
1607 text-align: left;
1608 }
1609
1610 .node-main-login > .main form > div:nth-last-child(1) {
1611 float: right;
1612 }
1613
1614 .node-main-login > .main .cbi-value {
1615 display: block;
1616 }
1617
1618 .node-main-login > .main .cbi-value > * {
1619 display: inline-block !important;
1620 }
1621
1622 .node-main-login > .main .cbi-input-user,
1623 .node-main-login > .main .cbi-input-password {
1624 min-width: 15rem;
1625 }
1626
1627 .node-main-login footer {
1628 bottom: 0;
1629 position: absolute;
1630 width: 100%;
1631 }
1632
1633 /* fix status overview */
1634
1635 .node-status-overview > .main fieldset:nth-child(4) .td:nth-child(2) {
1636 white-space: normal;
1637 }
1638
1639 /* fix status processes */
1640
1641 .node-status-processes > .main .table .tr .td:nth-child(3) {
1642 white-space: normal;
1643 }
1644
1645 .node-status-iptables > .main div > .cbi-map > form {
1646 margin: 2rem 2rem 0 0;
1647 }
1648
1649 /* fix system reboot */
1650
1651 .node-system-reboot > .main > .main-right p,
1652 .node-system-reboot > .main > .main-right h3 {
1653 padding-left: 2rem;
1654 }
1655
1656 /* fix Services Network Shares*/
1657 .node-services-samba > .main .cbi-tabcontainer:nth-child(3) .cbi-value-title {
1658 margin-bottom: 1rem;
1659 width: auto;
1660 }
1661
1662 .node-services-samba > .main .cbi-tabcontainer:nth-child(3) .cbi-value-field {
1663 display: list-item;
1664 }
1665
1666 .node-services-samba > .main .cbi-tabcontainer:nth-child(3) .cbi-value-description {
1667 padding-top: 1rem;
1668 }
1669
1670 /* fix System Software*/
1671 .node-system-packages > .main table tr td:nth-child(1) {
1672 width: auto !important;
1673 }
1674
1675 .node-system-packages > .main table tr td:nth-last-child(1) {
1676 white-space: normal;
1677 font-size: small;
1678 color: #404040;
1679 }
1680
1681 .node-system-packages > .main .cbi-tabmenu > li > a, .tabs > li > a {
1682 padding: 0.5rem 0.8rem;
1683 }
1684
1685 .node-system-packages > .main .cbi-value > pre {
1686 background-color: #eee;
1687 padding: 0.5rem;
1688 overflow: auto;
1689 }
1690
1691 .cbi-tabmenu + .cbi-section {
1692 margin-top: 0;
1693 }
1694
1695 .node-status-iptables fieldset,
1696 .node-system-packages fieldset,
1697 .node-system-flashops fieldset {
1698 margin-top: 0;
1699 }
1700
1701 .node-status-iptables .cbi-tabmenu,
1702 .node-system-packages .cbi-tabmenu,
1703 .node-system-flashops .cbi-tabmenu {
1704 border: none;
1705 box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
1706 }
1707
1708 .node-system-flashops form.inline + form.inline {
1709 margin-left: 0;
1710 }
1711
1712 #cbi-firewall-redirect table *,
1713 #cbi-network-switch_vlan table *,
1714 #cbi-firewall-zone table * {
1715 font-size: small;
1716 }
1717
1718 #cbi-firewall-redirect table input[type="text"],
1719 #cbi-network-switch_vlan table input[type="text"],
1720 #cbi-firewall-zone table input[type="text"] {
1721 width: 5rem;
1722 }
1723
1724 #cbi-firewall-redirect table select,
1725 #cbi-network-switch_vlan table select,
1726 #cbi-firewall-zone table select {
1727 min-width: 3.5rem;
1728 }
1729
1730 #cbi-network-switch_vlan .th,
1731 #cbi-network-switch_vlan .td {
1732 flex-basis: 12%;
1733 }
1734
1735 /* language fix */
1736 body.lang_pl.node-main-login .cbi-value-title {
1737 width: 12rem;
1738 }
1739
1740 /* applyreboot fix */
1741
1742 #applyreboot-container {
1743 margin: 2rem;
1744 }
1745
1746 #applyreboot-section {
1747 margin: 2rem;
1748 line-height: 300%;
1749 }
1750
1751 @media screen and (max-width: 1600px) {
1752 .main-left {
1753 width: calc(0% + 13rem);
1754 }
1755
1756 .main-right {
1757 width: calc(100% - 13rem);
1758 }
1759
1760 .btn,
1761 .cbi-button {
1762 padding: 0.3rem 0.6rem;
1763 font-size: 0.8rem;
1764 }
1765
1766 header > .container > .pull-right > * {
1767 top: 0.35rem;
1768 }
1769
1770 .label {
1771 padding: 0.2rem 0.6rem;
1772 }
1773
1774 .cbi-value-title {
1775 width: 15rem;
1776 padding-right: 0.6rem;
1777 }
1778
1779 fieldset {
1780 padding: 1rem;
1781 }
1782
1783 .cbi-input-textarea {
1784 font-size: small;
1785 }
1786
1787 .node-status-iptables > .main fieldset li > a {
1788 padding: 0.3rem 0.6rem;
1789 }
1790 }
1791
1792 @media screen and (max-width: 1280px) {
1793 header {
1794 height: 3.5rem;
1795 }
1796
1797 header > .container {
1798 margin-top: 0.25rem;
1799 }
1800
1801 .main {
1802 top: 3.5rem;
1803 height: calc(100% - 3.5rem);
1804 }
1805
1806 .main-left {
1807 width: calc(0% + 13rem);
1808 top: 3.5rem;
1809 height: calc(100% - 3.5rem);
1810 }
1811
1812 .main-right {
1813 width: calc(100% - 13rem);
1814 }
1815
1816 .cbi-tabmenu > li > a, .tabs > li > a {
1817 padding: 0.2rem 0.5rem;
1818 }
1819
1820 .panel-title {
1821 font-size: 1.1rem;
1822 padding-bottom: 1rem;
1823 }
1824
1825 table {
1826 font-size: 0.7rem !important;
1827 width: 100% !important;
1828 }
1829
1830 .main > .main-left > .nav > li,
1831 .main > .main-left > .nav > li a,
1832 .main > .main-left > .nav > .slide > .menu {
1833 font-size: 0.9rem;
1834 }
1835
1836 .main > .main-left > .nav > .slide > .slide-menu > li > a {
1837 font-size: 0.7rem;
1838 }
1839 }
1840
1841 @media screen and (max-width: 992px) {
1842 .main-left {
1843 width: 0;
1844 position: fixed;
1845 z-index: 100;
1846 }
1847
1848 .main-right {
1849 width: 100%;
1850 }
1851
1852 .showSide {
1853 padding: 0.1rem;
1854 margin-right: 0.5rem;
1855 display: inline-block;
1856 }
1857
1858 .showSide:before {
1859 content: "\e20e";
1860 font-size: 1.7rem;
1861 }
1862
1863 .node-main-login .showSide {
1864 display: none !important;
1865 }
1866
1867 .cbi-value-title {
1868 width: 9rem;
1869 padding-right: 1rem;
1870 }
1871
1872 .node-network-diagnostics > .main .cbi-map fieldset > div * {
1873 width: 100% !important;
1874 }
1875
1876 .node-network-diagnostics > .main .cbi-map fieldset > div input[type="text"] {
1877 margin: 3rem 0 0 0 !important;
1878 }
1879
1880 .node-network-diagnostics > .main .cbi-map fieldset > div:nth-child(4) input[type="text"] {
1881 margin: 0 !important;
1882 }
1883
1884 .node-network-diagnostics > .main .cbi-map fieldset > div select,
1885 .node-network-diagnostics > .main .cbi-map fieldset > div input[type="button"] {
1886 margin: 1rem 0 0 0;
1887 }
1888
1889 .node-network-diagnostics > .main .cbi-map fieldset > div {
1890 width: 100% !important;
1891 }
1892
1893 #diag-rc-output > pre {
1894 font-size: 1rem;
1895 }
1896
1897 .node-main-login > .main .cbi-value-title {
1898 text-align: left;
1899 }
1900
1901 .tr {
1902 display: flex;
1903 flex-direction: row;
1904 flex-wrap: wrap;
1905 }
1906
1907 .th, .td {
1908 flex: 2 2 25%;
1909 align-self: flex-start;
1910 overflow: hidden;
1911 text-overflow: ellipsis;
1912 word-wrap: break-word;
1913 display: inline-block;
1914 }
1915
1916 .td select,
1917 .td input[type="text"] {
1918 word-wrap: normal;
1919 width: 100%;
1920 }
1921
1922 .td [data-dynlist] > input,
1923 .td input.cbi-input-password {
1924 width: calc(100% - 1.5rem);
1925 }
1926
1927 .td[data-type="button"],
1928 .td[data-type="fvalue"] {
1929 flex: 1 1 12.5%;
1930 text-align: left;
1931 }
1932
1933 .th.cbi-value-field,
1934 .td.cbi-value-field,
1935 .th.cbi-section-table-cell,
1936 .td.cbi-section-table-cell {
1937 flex-basis: auto;
1938 }
1939
1940 .cbi-section-table-row {
1941 display: flex;
1942 flex-wrap: wrap;
1943 flex-direction: row;
1944 justify-content: space-between;
1945 }
1946
1947 .td.cbi-value-field,
1948 .cbi-section-table-cell {
1949 text-align: center;
1950 display: inline-block;
1951 flex: 10 10 auto;
1952 }
1953
1954 .td.cbi-section-actions {
1955 text-align: right;
1956 align-self: flex-end;
1957 vertical-align: bottom;
1958 }
1959
1960 .tr.table-titles,
1961 .tr.cbi-section-table-titles,
1962 .tr.cbi-section-table-descr {
1963 display: none;
1964 }
1965
1966 .tr[data-title]::before,
1967 .tr.cbi-section-table-titles.named::before {
1968 display: block;
1969 flex: 1 1 100%;
1970 background: #eef;
1971 font-size: .9rem;
1972 border-bottom: 1px solid rgba(0, 0, 0, .26);
1973 }
1974
1975 .td[data-title] {
1976 text-align: left;
1977 }
1978
1979 .td[data-title]::before {
1980 display: block;
1981 }
1982
1983 .hide-sm,
1984 .hide-xs {
1985 display: none;
1986 }
1987 }
1988
1989 @media screen and (max-width: 480px) {
1990 body {
1991 font-size: 1rem;
1992 }
1993
1994 fieldset {
1995 padding: 1rem;
1996 margin: 1rem 0 0 0;
1997 }
1998
1999 .tabs {
2000 margin: 0 -1rem;
2001 }
2002
2003 #maincontent > .container {
2004 margin: 0 1rem 1.5rem 1rem;
2005 }
2006
2007 .main > .main-left > .nav > .slide > .menu {
2008 font-size: 1.3rem;
2009 }
2010
2011 .main > .main-left > .nav > .slide > .slide-menu > li > a {
2012 font-size: 1.1rem;
2013 }
2014
2015 .cbi-value-title {
2016 width: 100%;
2017 min-width: 0rem !important;
2018 display: block;
2019 margin-top: 1rem;
2020 margin-bottom: 0.5rem;
2021 text-align: left;
2022 }
2023
2024 .cbi-value-field, .cbi-value-description {
2025 width: 100%;
2026 }
2027
2028 .cbi-value > .cbi-value-field {
2029 display: inline-block;
2030 }
2031
2032 .cbi-tabmenu > li, .tabs > li {
2033 padding: 0.6rem 0rem;
2034 }
2035
2036 .cbi-tabmenu > li > a, .tabs > li > a {
2037 padding: 0.2rem 0.3rem;
2038 font-size: 0.9rem;
2039 }
2040
2041 .cbi-page-actions > div > input {
2042 display: none;
2043 }
2044
2045 .node-main-login > .main .container {
2046 padding: 0.5rem 1rem 2rem 1rem;
2047 }
2048
2049 .node-main-login > .main .cbi-value {
2050 padding: 0;
2051 }
2052
2053 .node-main-login > .main form > div:nth-last-child(1) {
2054 margin-top: 2rem;
2055 }
2056
2057 .node-main-login > .main .cbi-value-title {
2058 width: 100% !important;
2059 font-size: 1.2rem;
2060 }
2061
2062 .node-main-login > .main fieldset {
2063 margin: 0;
2064 padding: 0.5rem;
2065 }
2066
2067 h2 {
2068 font-size: 2rem;
2069 }
2070
2071 .tabs > li > a {
2072 font-size: 0.9rem;
2073 }
2074
2075 select,
2076 input {
2077 font-size: 0.9rem;
2078 }
2079
2080 .mobile-hide {
2081 display: none;
2082 }
2083
2084 .panel-title {
2085 font-size: 1.4rem;
2086 padding-bottom: 1rem;
2087 }
2088
2089 .node-system-packages > .main .cbi-value.cbi-value-last > div {
2090 width: 100% !important;
2091 }
2092
2093 .node-system-packages > .main .cbi-value .cbi-value-field input {
2094 width: 100%;
2095 }
2096
2097 .node-status-iptables > .main div > .cbi-map > form {
2098 position: static !important;
2099 margin: 0 0 2rem 0;
2100 padding: 2rem;
2101 border: 0;
2102 font-weight: normal;
2103 font-style: normal;
2104 line-height: 1;
2105 font-family: inherit;
2106 min-width: inherit;
2107 border-radius: 0;
2108 background-color: #FFF;
2109 box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .16), 0 0 2px 0 rgba(0, 0, 0, .12);
2110 -webkit-overflow-scrolling: touch;
2111 }
2112
2113 .node-status-iptables > .main div > .cbi-map > form input[type="submit"] {
2114 width: 100% !important;
2115 margin: 0;
2116 }
2117
2118 .node-status-iptables > .main div > .cbi-map > form input[type="submit"] + input[type="submit"] {
2119 margin-top: 1rem;
2120 }
2121
2122 .th, .td {
2123 flex-basis: 50%;
2124 }
2125
2126 .td.cbi-value-field {
2127 flex-basis: 100%;
2128 }
2129
2130 .td.cbi-value-field[data-type="dvalue"] {
2131 flex-basis: 50%;
2132 }
2133
2134 .td.cbi-value-field[data-type="button"],
2135 .td.cbi-value-field[data-type="fvalue"] {
2136 flex-basis: 25%;
2137 text-align: left;
2138 }
2139
2140 .tr[data-title]::before,
2141 .tr.cbi-section-table-titles.named::before {
2142 font-size: 1rem;
2143 }
2144
2145 .hide-xs {
2146 display: none;
2147 }
2148 }
2149
2150 @media screen and (min-width: 992px) {
2151 .cbi-value input[type="password"],
2152 .cbi-value input[type="text"],
2153 .cbi-value-field .cbi-input-select {
2154 width: 20rem;
2155 }
2156
2157 .cbi-value-field .cbi-dropdown {
2158 min-width: 20rem;
2159 }
2160 }
2161
2162 @media screen and (min-width: 1280px) {
2163 .cbi-value input[type="password"],
2164 .cbi-value input[type="text"],
2165 .cbi-value-field .cbi-input-select {
2166 width: 22rem;
2167 }
2168
2169 .cbi-value-field .cbi-dropdown {
2170 min-width: 22rem;
2171 }
2172 }
2173
2174 @media screen and (min-width: 1600px) {
2175 .cbi-value input[type="password"],
2176 .cbi-value input[type="text"],
2177 .cbi-value-field .cbi-input-select {
2178 width: 25rem;
2179 }
2180
2181 .cbi-value-field .cbi-dropdown {
2182 min-width: 25rem;
2183 }
2184 }