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