Merge pull request #3526 from urbalazs/improve-splash
[project/luci.git] / themes / luci-theme-bootstrap / htdocs / luci-static / bootstrap / cascade.css
1 /*!
2 * LuCI Bootstrap Theme
3 * Copyright 2012 Nut & Bolt
4 * By David Menting <david@nut-bolt.nl>
5 * Based on Bootstrap v1.4.0
6 *
7 * Copyright 2011 Twitter, Inc
8 * Licensed under the Apache License v2.0
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Designed and built with all the love in the world @twitter by @mdo and @fat.
12 */
13 /* Reset.less
14 * Props to Eric Meyer (meyerweb.com) for his CSS reset file. We're using an adapted version here that cuts out some of the reset HTML elements we will never need here (i.e., dfn, samp, etc).
15 * ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
16
17 * {
18 margin: 0;
19 padding: 0;
20 border: 0;
21 box-sizing: border-box;
22 }
23
24 abbr[title], acronym[title] {
25 border-bottom: 1px dotted;
26 font-weight: inherit;
27 cursor: help;
28 }
29
30 table {
31 border-collapse: collapse;
32 border-spacing: 0;
33 }
34
35 ol, ul {
36 list-style: none;
37 }
38
39 html {
40 font-size: 100%;
41 -webkit-text-size-adjust: 100%;
42 -ms-text-size-adjust: 100%;
43 }
44
45 a:focus {
46 outline: thin dotted;
47 }
48
49 a:hover, a:active {
50 outline: 0;
51 }
52
53 footer,
54 header,
55 nav,
56 section {
57 display: block;
58 }
59
60 sub, sup {
61 font-size: 75%;
62 line-height: 0;
63 position: relative;
64 vertical-align: baseline;
65 }
66
67 sup {
68 top: -0.5em;
69 }
70
71 sub {
72 bottom: -0.25em;
73 }
74
75 img {
76 -ms-interpolation-mode: bicubic;
77 }
78
79 button,
80 input,
81 select,
82 option,
83 textarea {
84 font-size: 100%;
85 margin: 0;
86 box-sizing: border-box;
87 vertical-align: baseline;
88 line-height: normal;
89 }
90
91 button::-moz-focus-inner, input::-moz-focus-inner {
92 border: 0;
93 padding: 0;
94 }
95
96 button,
97 input[type="button"],
98 input[type="reset"],
99 input[type="submit"] {
100 cursor: pointer;
101 -webkit-appearance: button;
102 word-break: break-all;
103 }
104
105 button[disabled],
106 input[type="button"][disabled],
107 input[type="reset"][disabled],
108 input[type="submit"][disabled] {
109 opacity: 0.7;
110 }
111
112 input[type="search"] {
113 -webkit-appearance: textfield;
114 box-sizing: content-box;
115 }
116
117 input[type="search"]::-webkit-search-decoration {
118 -webkit-appearance: none;
119 }
120
121 textarea {
122 overflow: auto;
123 vertical-align: top;
124 }
125
126 /*
127 * Scaffolding
128 * Basic and global styles for generating a grid system, structural layout, and page templates
129 * ------------------------------------------------------------------------------------------- */
130 body {
131 background-color: #fff;
132 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
133 font-size: 13px;
134 font-weight: normal;
135 line-height: 18px;
136 color: #404040;
137 padding: 58px 5px 5px 5px;
138 }
139
140 .container {
141 width: 100%;
142 max-width: 940px;
143 margin-left: auto;
144 margin-right: auto;
145 zoom: 1;
146 }
147
148 .container:before, .container:after {
149 display: table;
150 content: "";
151 zoom: 1;
152 }
153
154 .container:after {
155 clear: both;
156 }
157
158 a {
159 color: #0069d6;
160 text-decoration: none;
161 line-height: inherit;
162 font-weight: inherit;
163 }
164
165 a:hover {
166 color: #00438a;
167 text-decoration: underline;
168 }
169
170 .pull-right {
171 float: right;
172 }
173
174 .pull-left {
175 float: left;
176 }
177
178 .nowrap {
179 white-space: nowrap;
180 }
181
182 /* Typography.less
183 * Headings, body text, lists, code, and more for a versatile and durable typography system
184 * ---------------------------------------------------------------------------------------- */
185 p,
186 .cbi-map-descr,
187 .cbi-section-descr,
188 .table .tr.cbi-section-table-descr .th {
189 font-size: 13px;
190 font-weight: normal;
191 line-height: 18px;
192 margin-bottom: 9px;
193 }
194
195 p small {
196 font-size: 11px;
197 color: #bfbfbf;
198 }
199
200 h1,
201 h2,
202 h3, legend,
203 h4,
204 h5,
205 h6 {
206 font-weight: bold;
207 color: #404040;
208 }
209
210 h1 small,
211 h2 small,
212 h3 small,
213 h4 small,
214 h5 small,
215 h6 small {
216 color: #bfbfbf;
217 }
218
219 h1 {
220 margin-bottom: 18px;
221 font-size: 30px;
222 line-height: 36px;
223 }
224
225 h1 small {
226 font-size: 18px;
227 }
228
229 h2 {
230 font-size: 24px;
231 line-height: 36px;
232 }
233
234 h2 small {
235 font-size: 14px;
236 }
237
238 h3, legend,
239 h4,
240 h5,
241 h6 {
242 line-height: 36px;
243 }
244
245 h3, legend {
246 font-size: 18px;
247 }
248
249 h3 small {
250 font-size: 14px;
251 }
252
253 h4 {
254 font-size: 16px;
255 }
256
257 h4 small {
258 font-size: 12px;
259 }
260
261 h5 {
262 font-size: 14px;
263 }
264
265 h6 {
266 font-size: 13px;
267 color: #bfbfbf;
268 text-transform: uppercase;
269 }
270
271 ul, ol {
272 margin: 0 0 18px 25px;
273 }
274
275 ul ul,
276 ul ol,
277 ol ol,
278 ol ul {
279 margin-bottom: 0;
280 }
281
282 ul {
283 list-style: disc;
284 }
285
286 ol {
287 list-style: decimal;
288 }
289
290 li {
291 line-height: 18px;
292 color: #808080;
293 }
294
295 ul.unstyled {
296 list-style: none;
297 margin-left: 0;
298 }
299
300 dl {
301 margin-bottom: 18px;
302 }
303
304 dl dt, dl dd {
305 line-height: 18px;
306 }
307
308 dl dt {
309 font-weight: bold;
310 }
311
312 dl dd {
313 margin-left: 9px;
314 }
315
316 hr {
317 margin: 20px 0 19px;
318 border: 0;
319 border-bottom: 1px solid #eee;
320 }
321
322 strong {
323 font-style: inherit;
324 font-weight: bold;
325 }
326
327 em {
328 font-style: italic;
329 font-weight: inherit;
330 line-height: inherit;
331 }
332
333 small { font-size: 0.9em }
334
335 address {
336 display: block;
337 line-height: 18px;
338 margin-bottom: 18px;
339 }
340
341 code, pre {
342 padding: 0 3px 2px;
343 font-family: Monaco, Andale Mono, Courier New, monospace;
344 font-size: 12px;
345 border-radius: 3px;
346 }
347
348 code {
349 background-color: #fee9cc;
350 color: rgba(0, 0, 0, 0.75);
351 padding: 1px 3px;
352 }
353
354 pre {
355 background-color: #f5f5f5;
356 display: block;
357 padding: 8.5px;
358 margin: 0 0 18px;
359 line-height: 18px;
360 font-size: 12px;
361 border: 1px solid #ccc;
362 border: 1px solid rgba(0, 0, 0, 0.15);
363 border-radius: 3px;
364 white-space: pre;
365 white-space: pre-wrap;
366 word-wrap: break-word;
367 }
368
369 /* Forms.less
370 * Base styles for various input types, form layouts, and states
371 * ------------------------------------------------------------- */
372 form {
373 margin-bottom: 18px;
374 }
375
376 fieldset {
377 margin-bottom: 9px;
378 padding-top: 9px;
379 }
380
381 fieldset legend {
382 display: block;
383 font-size: 19.5px;
384 line-height: 1;
385 color: #404040;
386 padding-top: 20px;
387
388 }
389 form .cbi-tab-descr {
390 line-height: 18px;
391 margin-bottom: 18px;
392 }
393
394 form .clearfix,
395 .cbi-value {
396 margin-bottom: 18px;
397 zoom: 1;
398 }
399
400 form .clearfix:before, form .clearfix:after,
401 .cbi-value:before, .cbi-value:after {
402 display: table;
403 content: "";
404 zoom: 1;
405 }
406
407 form .clearfix:after,
408 .cbi-value:after {
409 clear: both;
410 }
411
412 label,
413 input,
414 button,
415 select,
416 textarea {
417 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
418 font-size: 13px;
419 font-weight: normal;
420 line-height: normal;
421 }
422
423 form .input,
424 .cbi-value-field {
425 margin-left: 200px;
426 }
427
428 .cbi-value label.cbi-value-title {
429 padding-top: 6px;
430 font-size: 13px;
431 line-height: 18px;
432 float: left;
433 width: 180px;
434 text-align: right;
435 color: #404040;
436 }
437
438 input[type=checkbox], input[type=radio] {
439 cursor: pointer;
440 }
441
442 label > input[type="checkbox"],
443 label > input[type="radio"] {
444 vertical-align: bottom;
445 margin: 0;
446 }
447
448 input,
449 textarea,
450 select,
451 .cbi-dropdown:not(.btn):not(.cbi-button),
452 .uneditable-input {
453 display: inline-block;
454 width: 210px;
455 padding: 4px;
456 font-size: 13px;
457 line-height: 18px;
458 border: 1px solid #ccc;
459 border-radius: 3px;
460 }
461
462 input,
463 select,
464 .cbi-dropdown:not(.btn):not(.cbi-button),
465 .uneditable-input {
466 height: 30px;
467 }
468
469 .uneditable-input {
470 color: #808080;
471 }
472
473 .cbi-dropdown:not(.btn):not(.cbi-button),
474 .cbi-dynlist {
475 min-width: 210px;
476 max-width: 400px;
477 width: auto;
478 }
479
480 .cbi-dynlist {
481 height: auto;
482 min-height: 30px;
483 display: inline-flex;
484 flex-direction: column;
485 }
486
487 .cbi-dynlist > .item {
488 margin-bottom: 4px;
489 box-shadow: 0 0 2px #ccc;
490 background: #fff;
491 padding: 2px 2em 2px 4px;
492 border: 1px solid #ccc;
493 border-radius: 3px;
494 position: relative;
495 pointer-events: none;
496 }
497
498 .cbi-dynlist > .item::after {
499 content: "×";
500 position: absolute;
501 display: inline-flex;
502 align-items: center;
503 top: -1px;
504 right: -1px;
505 bottom: -1px;
506 padding: 0 6px;
507 border: 1px solid #ccc;
508 border-radius: 0 3px 3px 0;
509 font-weight: bold;
510 color: #c44;
511 pointer-events: auto;
512 }
513
514 .cbi-dynlist > .add-item {
515 display: flex;
516 }
517
518 .cbi-dynlist > .add-item > input,
519 .cbi-dynlist > .add-item > button {
520 flex: 1 1 auto;
521 overflow: hidden;
522 text-overflow: ellipsis;
523 white-space: nowrap;
524 }
525
526 select {
527 padding: initial;
528 background: #fff;
529 box-shadow: inset 0 -1px 3px rgba(0, 0, 0, 0.1);
530 }
531
532 input[type=checkbox], input[type=radio] {
533 width: auto;
534 height: auto;
535 padding: 0;
536 margin: 3px 0;
537 *margin-top: 0;
538 /* IE6-7 */
539
540 line-height: normal;
541 border: none;
542 }
543
544 input[type=file] {
545 background-color: #fff;
546 padding: initial;
547 border: initial;
548 line-height: initial;
549 box-shadow: none;
550 width: auto !important;
551 }
552
553 input[type=button], input[type=reset], input[type=submit] {
554 width: auto;
555 height: auto;
556 }
557
558 select[multiple] {
559 height: inherit;
560 background-color: #fff;
561 }
562
563 .td > input[type=text],
564 .td > input[type=password],
565 .td > select,
566 .td > .cbi-dropdown:not(.btn):not(.cbi-button),
567 .cbi-dynlist > .add-item > .cbi-dropdown {
568 width: 100%;
569 }
570
571 .uneditable-input {
572 background-color: #fff;
573 display: block;
574 border-color: #eee;
575 box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
576 cursor: not-allowed;
577 }
578
579 ::-moz-placeholder {
580 color: #bfbfbf;
581 }
582
583 ::-webkit-input-placeholder {
584 color: #bfbfbf;
585 }
586
587 .item::after, .btn, .cbi-button, input, button, textarea {
588 transition: border linear 0.2s, box-shadow linear 0.2s;
589 box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
590 }
591
592 .item:hover::after,
593 .btn:hover, .cbi-button:hover, button:hover,
594 input:focus, textarea:focus {
595 outline: 0;
596 border-color: rgba(82, 168, 236, 0.8) !important;
597 box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
598 text-decoration: none;
599 }
600
601 input[type=file]:focus, input[type=checkbox]:focus, select:focus {
602 box-shadow: none;
603 outline: 1px dotted #666;
604 }
605
606 input[disabled],
607 button[disabled],
608 select[disabled],
609 textarea[disabled],
610 input[readonly],
611 button[readonly],
612 select[readonly],
613 textarea[readonly] {
614 background-color: #f5f5f5;
615 border-color: #ddd;
616 pointer-events: none;
617 cursor: default;
618 }
619
620 select[readonly],
621 textarea[readonly] {
622 pointer-events: auto;
623 cursor: auto;
624 }
625
626 .cbi-optionals,
627 .cbi-section-create {
628 padding: 0 0 10px 10px;
629 }
630
631 .cbi-section-create {
632 margin: -3px;
633 display: inline-flex;
634 align-items: center;
635 }
636
637 .cbi-section-create > * {
638 margin: 3px;
639 flex: 1 1 auto;
640 }
641
642 .cbi-section-create > * > input {
643 width: 100%;
644 }
645
646 .actions,
647 .cbi-page-actions {
648 background: #f5f5f5;
649 margin-bottom: 18px;
650 padding: 17px 20px 18px 17px;
651 border-top: 1px solid #ddd;
652 border-radius: 0 0 3px 3px;
653 text-align: right;
654 }
655
656 .actions .secondary-action,
657 .cbi-page-actions .secondary-action{
658 float: right;
659 }
660
661 .actions .secondary-action a,
662 .cbi-page-actions .secondary-action a {
663 line-height: 30px;
664 }
665
666 .actions .secondary-action a:hover,
667 .cbi-page-actions .secondary-action a:hover {
668 text-decoration: underline;
669 }
670
671 .cbi-page-actions > form {
672 display: inline;
673 margin: 0;
674 }
675
676 .help-inline, .help-block {
677 font-size: 13px;
678 line-height: 18px;
679 color: #bfbfbf;
680 }
681
682 .help-inline {
683 padding-left: 5px;
684 *position: relative;
685 /* IE6-7 */
686
687 *top: -5px;
688 /* IE6-7 */
689
690 }
691
692 .help-block {
693 display: block;
694 max-width: 600px;
695 }
696
697 /*
698 * Tables.less
699 * Tables for, you guessed it, tabular data
700 * ---------------------------------------- */
701 .tr { display: table-row; }
702 .table[width="33%"], .th[width="33%"], .td[width="33%"] { width: 33%; }
703 .table[width="100%"], .th[width="100%"], .td[width="100%"] { width: 100%; }
704
705 .table {
706 display: table;
707 width: 100%;
708 margin-bottom: 18px;
709 padding: 0;
710 font-size: 13px;
711 border-collapse: collapse;
712 position: relative;
713 }
714
715 .table .th, .table .td {
716 display: table-cell;
717 vertical-align: middle; /* Fixme */
718 padding: 10px 10px 9px;
719 line-height: 18px;
720 text-align: left;
721 }
722
723 .table .tr:first-child .th {
724 padding-top: 9px;
725 font-weight: bold;
726 vertical-align: top;
727 }
728
729 .table .td, .table .th {
730 border-top: 1px solid #ddd;
731 }
732
733 .tr.placeholder {
734 height: calc(3em + 20px);
735 }
736
737 .tr.placeholder > .td {
738 position: absolute;
739 left: 0;
740 right: 0;
741 bottom: 0;
742 text-align: center;
743 line-height: 3em;
744 }
745
746 .tr.drag-over-above,
747 .tr.drag-over-below {
748 border: 2px solid #0069d6;
749 border-width: 2px 0 0 0;
750 }
751
752 .tr.drag-over-below {
753 border-width: 0 0 2px 0;
754 }
755
756 /* Patterns.less
757 * Repeatable UI elements outside the base styles provided from the scaffolding
758 * ---------------------------------------------------------------------------- */
759 header {
760 height: 40px;
761 position: fixed;
762 top: 0;
763 left: 0;
764 right: 0;
765 z-index: 800;
766 overflow: visible;
767 color: #BFBFBF;
768 }
769
770 header a {
771 color: #bfbfbf;
772 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
773 }
774
775 header h3 a:hover, header .brand:hover, header ul .active > a {
776 background-color: #333;
777 background-color: rgba(255, 255, 255, 0.05);
778 color: #fff;
779 text-decoration: none;
780 }
781
782 header h3 {
783 position: relative;
784 }
785
786 header h3 a, header .brand {
787 float: left;
788 display: block;
789 padding: 8px 20px 12px;
790 margin-left: -20px;
791 color: #fff;
792 font-size: 20px;
793 font-weight: 200;
794 line-height: 1;
795 }
796
797 header p {
798 margin: 0;
799 line-height: 40px;
800 }
801
802 header .fill {
803 background-color: #222;
804 background-repeat: repeat-x;
805 background-image: linear-gradient(to bottom, #333333, #222222);
806 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);
807 padding: 0 5px;
808 }
809
810 header div > ul, .nav {
811 display: block;
812 float: left;
813 margin: 0 10px 0 0;
814 position: relative;
815 left: 0;
816 }
817
818 header div > ul > li, .nav > li {
819 display: block;
820 float: left;
821 }
822
823 header div > ul a, .nav a {
824 display: block;
825 float: none;
826 padding: 10px 10px 11px;
827 line-height: 19px;
828 text-decoration: none;
829 }
830
831 header div > ul a:hover, .nav a:hover {
832 color: #fff;
833 text-decoration: none;
834 }
835
836 header div > ul .active > a, .nav .active > a {
837 background-color: #222;
838 background-color: rgba(0, 0, 0, 0.5);
839 }
840
841 header div > ul.secondary-nav, .nav.secondary-nav {
842 float: right;
843 margin-left: 10px;
844 margin-right: 0;
845 }
846
847 header div > ul.secondary-nav .menu-dropdown,
848 .nav.secondary-nav .menu-dropdown,
849 header div > ul.secondary-nav .dropdown-menu,
850 .nav.secondary-nav .dropdown-menu {
851 right: 0;
852 border: 0;
853 }
854
855 header div > ul a.menu:hover,
856 .nav a.menu:hover,
857 header div > ul li.open .menu,
858 .nav li.open .menu,
859 header div > ul .dropdown-toggle:hover,
860 .nav .dropdown-toggle:hover,
861 header div > ul .dropdown.open .dropdown-toggle,
862 .nav .dropdown.open .dropdown-toggle {
863 background: #444;
864 background: rgba(255, 255, 255, 0.05);
865 }
866
867 header div > ul .menu-dropdown,
868 .nav .menu-dropdown,
869 header div > ul .dropdown-menu,
870 .nav .dropdown-menu {
871 background-color: #333;
872 }
873
874 header div > ul .menu-dropdown a.menu,
875 .nav .menu-dropdown a.menu,
876 header div > ul .dropdown-menu a.menu,
877 .nav .dropdown-menu a.menu,
878 header div > ul .menu-dropdown .dropdown-toggle,
879 .nav .menu-dropdown .dropdown-toggle,
880 header div > ul .dropdown-menu .dropdown-toggle,
881 .nav .dropdown-menu .dropdown-toggle {
882 color: #fff;
883 }
884
885 header div > ul .menu-dropdown a.menu.open,
886 .nav .menu-dropdown a.menu.open,
887 header div > ul .dropdown-menu a.menu.open,
888 .nav .dropdown-menu a.menu.open,
889 header div > ul .menu-dropdown .dropdown-toggle.open,
890 .nav .menu-dropdown .dropdown-toggle.open,
891 header div > ul .dropdown-menu .dropdown-toggle.open,
892 .nav .dropdown-menu .dropdown-toggle.open {
893 background: #444;
894 background: rgba(255, 255, 255, 0.05);
895 }
896
897 header div > ul .menu-dropdown li a,
898 .nav .menu-dropdown li a,
899 header div > ul .dropdown-menu li a,
900 .nav .dropdown-menu li a {
901 color: #999;
902 text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
903 }
904
905 header div > ul .menu-dropdown li a:hover,
906 .nav .menu-dropdown li a:hover,
907 header div > ul .dropdown-menu li a:hover,
908 .nav .dropdown-menu li a:hover {
909 background-color: #191919;
910 background-repeat: repeat-x;
911 background-image: linear-gradient(to bottom, #292929, #191919);
912 color: #fff;
913 }
914
915 header div > ul .menu-dropdown .active a,
916 .nav .menu-dropdown .active a,
917 header div > ul .dropdown-menu .active a,
918 .nav .dropdown-menu .active a {
919 color: #fff;
920 }
921
922 header div > ul .menu-dropdown .divider,
923 .nav .menu-dropdown .divider,
924 header div > ul .dropdown-menu .divider,
925 .nav .dropdown-menu .divider {
926 background-color: #222;
927 border-color: #444;
928 }
929
930 header ul .menu-dropdown li a, header ul .dropdown-menu li a {
931 padding: 4px 15px;
932 }
933
934 li.menu, .dropdown {
935 position: relative;
936 }
937
938 a.menu:after, .dropdown-toggle:after {
939 width: 0;
940 height: 0;
941 display: inline-block;
942 content: "&darr;";
943 text-indent: -99999px;
944 vertical-align: top;
945 margin-top: 8px;
946 margin-left: 4px;
947 border-left: 4px solid transparent;
948 border-right: 4px solid transparent;
949 border-top: 4px solid #fff;
950 opacity: 0.5;
951 }
952
953 .menu-dropdown, .dropdown-menu {
954 background-color: #fff;
955 float: left;
956 position: absolute;
957 top: 40px;
958 left: -9999px;
959 z-index: 900;
960 min-width: 160px;
961 max-width: 220px;
962 _width: 160px;
963 margin-left: 0;
964 margin-right: 0;
965 padding: 6px 0;
966 zoom: 1;
967 border-color: #999;
968 border-color: rgba(0, 0, 0, 0.2);
969 border-style: solid;
970 border-width: 0 1px 1px;
971 border-radius: 0 0 6px 6px;
972 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
973 background-clip: padding-box;
974 }
975
976 .menu-dropdown li, .dropdown-menu li {
977 float: none;
978 display: block;
979 background-color: transparent;
980 }
981
982 .menu-dropdown .divider, .dropdown-menu .divider {
983 height: 1px;
984 margin: 5px 0;
985 overflow: hidden;
986 background-color: #eee;
987 border-bottom: 1px solid #fff;
988 }
989
990 header .dropdown-menu a, .dropdown-menu a {
991 display: block;
992 padding: 4px 15px;
993 clear: both;
994 font-weight: normal;
995 line-height: 18px;
996 color: #808080;
997 text-shadow: 0 1px 0 #fff;
998 }
999
1000 header .dropdown-menu a:hover,
1001 .dropdown-menu a:hover,
1002 header .dropdown-menu a.hover,
1003 .dropdown-menu a.hover {
1004 background-color: #ddd;
1005 background-repeat: repeat-x;
1006 background-image: linear-gradient(to bottom, #eee, #ddd);
1007 color: #404040;
1008 text-decoration: none;
1009 box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.025), inset 0 -1px rgba(0, 0, 0, 0.025);
1010 }
1011
1012 .open .menu,
1013 .dropdown.open .menu,
1014 .open .dropdown-toggle,
1015 .dropdown.open .dropdown-toggle {
1016 color: #fff;
1017 background: #ccc;
1018 background: rgba(0, 0, 0, 0.3);
1019 }
1020
1021 .open .menu-dropdown,
1022 .dropdown.open .menu-dropdown,
1023 .open .dropdown-menu,
1024 .dropdown.open .dropdown-menu {
1025 left: 0;
1026 }
1027
1028 .dropdown:hover ul.dropdown-menu {
1029 left: 0;
1030 }
1031
1032 .dropdown-menu .dropdown-menu {
1033 position: absolute;
1034 left: 159px;
1035 }
1036
1037 .dropdown-menu li {
1038 position: relative;
1039 }
1040
1041 .tabs, .cbi-tabmenu {
1042 margin: 0 -5px 18px;
1043 padding: 0 2px;
1044 list-style: none;
1045 display: flex;
1046 flex-wrap: wrap;
1047 background: linear-gradient(#fff 28px, #ddd 28px);
1048 background-size: 1px 29px;
1049 background-position: left bottom;
1050 }
1051
1052 .tabs > li, .cbi-tabmenu > li {
1053 flex: 0 1 auto;
1054 display: flex;
1055 align-items: center;
1056 height: 25px;
1057 max-width: 48%;
1058 margin: 4px 2px 0 2px;
1059 background: #fff;
1060 border: 1px solid #ddd;
1061 border-bottom: none;
1062 border-radius: 4px 4px 0 0;
1063 color: #0069d6;
1064 }
1065
1066 .tabs > li > a, .cbi-tabmenu > li > a {
1067 padding: 4px 6px;
1068 white-space: nowrap;
1069 overflow: hidden;
1070 text-overflow: ellipsis;
1071 color: inherit;
1072 text-decoration: none;
1073 border-radius: 4px 4px 0 0;
1074 line-height: 25px;
1075 outline: none;
1076 }
1077
1078 .tabs > li:not(.active):hover, .cbi-tabmenu > .cbi-tab-disabled:hover {
1079 background: linear-gradient(#fff 90%, #ddd 100%);
1080 }
1081
1082 .tabs > li:not(.active), .cbi-tabmenu > .cbi-tab-disabled {
1083 color: #999;
1084 background: linear-gradient(#eee 90%, #ddd 100%);
1085 }
1086
1087 .cbi-tab-disabled[data-errors]::after {
1088 content: attr(data-errors);
1089 background: #c43c35;
1090 color: #fff;
1091 min-width: 12px;
1092 line-height: 14px;
1093 border-radius: 7px;
1094 text-align: center;
1095 margin: 0 5px 0 0;
1096 padding: 1px 2px;
1097 }
1098
1099 .cbi-tabmenu.map {
1100 margin: 0;
1101 }
1102
1103 .cbi-tabmenu.map > li {
1104 font-size: 16.5px;
1105 font-weight: bold;
1106 }
1107
1108 .cbi-tabcontainer > fieldset.cbi-section[id] > legend {
1109 display: none;
1110 }
1111
1112 .tabs .menu-dropdown, .tabs .dropdown-menu {
1113 top: 35px;
1114 border-width: 1px;
1115 border-radius: 0 6px 6px 6px;
1116 }
1117
1118 .tabs a.menu:after, .tabs .dropdown-toggle:after {
1119 border-top-color: #999;
1120 margin-top: 15px;
1121 margin-left: 5px;
1122 }
1123
1124 .tabs li.open.menu .menu, .tabs .open.dropdown .dropdown-toggle {
1125 border-color: #999;
1126 }
1127
1128 .tabs li.open a.menu:after, .tabs .dropdown.open .dropdown-toggle:after {
1129 border-top-color: #555;
1130 }
1131
1132 .tab-content > .tab-pane,
1133 .tab-content > div {
1134 display: none;
1135 }
1136
1137 .tab-content > .active {
1138 display: block;
1139 }
1140
1141 .breadcrumb {
1142 padding: 7px 14px;
1143 margin: 0 0 18px;
1144 background-color: #f5f5f5;
1145 background-repeat: repeat-x;
1146 background-image: linear-gradient(to bottom, #fff, #f5f5f5);
1147 border: 1px solid #ddd;
1148 border-radius: 3px;
1149 box-shadow: inset 0 1px 0 #fff;
1150 }
1151
1152 .breadcrumb li {
1153 display: inline;
1154 text-shadow: 0 1px 0 #fff;
1155 }
1156
1157 .breadcrumb .divider {
1158 padding: 0 5px;
1159 color: #bfbfbf;
1160 }
1161
1162 .breadcrumb .active a {
1163 color: #404040;
1164 }
1165
1166 footer {
1167 margin-top: 17px;
1168 padding-top: 17px;
1169 border-top: 1px solid #eee;
1170 }
1171
1172 #modal_overlay {
1173 position: fixed;
1174 top: 0;
1175 bottom: 0;
1176 left: -10000px;
1177 right: 10000px;
1178 background: rgba(0, 0, 0, 0.7);
1179 z-index: 900;
1180 overflow-y: scroll;
1181 -webkit-overflow-scrolling: touch;
1182 transition: opacity .125s ease-in;
1183 opacity: 0;
1184 visibility: hidden;
1185 }
1186
1187 .modal {
1188 width: 90%;
1189 margin: 5em auto;
1190 display: flex;
1191 flex-wrap: wrap;
1192 min-height: 32px;
1193 max-width: 600px;
1194 align-items: center;
1195 border-radius: 3px;
1196 background: #fff;
1197 box-shadow: 0 0 3px #444;
1198 padding: 1em 1em .5em 1em;
1199 min-width: 270px;
1200 }
1201
1202 .modal > * {
1203 flex-basis: 100%;
1204 line-height: normal;
1205 margin-bottom: .5em;
1206 max-width: 100%;
1207 }
1208
1209 .modal > pre,
1210 .modal > textarea {
1211 white-space: pre-wrap;
1212 overflow: auto;
1213 }
1214
1215 body.modal-overlay-active {
1216 overflow: hidden;
1217 height: 100vh;
1218 }
1219
1220 body.modal-overlay-active #modal_overlay {
1221 left: 0;
1222 right: 0;
1223 opacity: 1;
1224 visibility: visible;
1225 }
1226
1227 .btn.danger,
1228 .alert-message.danger,
1229 .btn.danger:hover,
1230 .alert-message.danger:hover,
1231 .btn.error,
1232 .alert-message.error,
1233 .btn.error:hover,
1234 .alert-message.error:hover,
1235 .btn.success,
1236 .alert-message.success,
1237 .btn.success:hover,
1238 .alert-message.success:hover,
1239 .btn.info,
1240 .alert-message.info,
1241 .btn.info:hover,
1242 .alert-message.info:hover,
1243 .cbi-tooltip.error, .cbi-tooltip.success, .cbi-tooltip.info {
1244 color: #fff;
1245 }
1246
1247 .btn .close, .alert-message .close {
1248 font-family: Arial, sans-serif;
1249 line-height: 18px;
1250 }
1251
1252 .btn.danger,
1253 .alert-message.danger,
1254 .btn.error,
1255 .alert-message.error,
1256 .cbi-tooltip.error {
1257 background: linear-gradient(to bottom, #ee5f5b, #c43c35) repeat-x;
1258 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1259 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1260 }
1261
1262 .btn.success, .alert-message.success, .cbi-tooltip.success {
1263 background: linear-gradient(to bottom, #62c462, #57a957) repeat-x;
1264 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1265 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1266 }
1267
1268 .btn.info, .alert-message.info, .cbi-tooltip.info {
1269 background: linear-gradient(to bottom, #5bc0de, #339bb9) repeat-x;
1270 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1271 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1272 }
1273
1274 .alert-message.notice, .cbi-tooltip.notice {
1275 background: linear-gradient(to bottom, #efefef, #fefefe) repeat-x;
1276 text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.25);
1277 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1278 }
1279
1280 .item::after,
1281 .btn,
1282 .cbi-button {
1283 cursor: pointer;
1284 display: inline-block;
1285 background: linear-gradient(#fff, #fff 25%, #e6e6e6) no-repeat;
1286 padding: 5px 14px 6px;
1287 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1288 color: #333;
1289 font-size: 13px;
1290 line-height: normal;
1291 border: 1px solid #ccc;
1292 border-bottom-color: #bbb;
1293 border-radius: 4px;
1294 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1295 }
1296
1297 .btn:focus,
1298 .cbi-button:focus {
1299 outline: 1px dotted #666;
1300 }
1301
1302 .cbi-input-invalid,
1303 .cbi-input-invalid.cbi-dropdown:not(.btn):not(.cbi-button),
1304 .cbi-input-invalid.cbi-dropdown:not([open]) > ul > li,
1305 .cbi-value-error input {
1306 color: #f00;
1307 border-color: #f00;
1308 }
1309
1310 .cbi-button-positive,
1311 .cbi-button-fieldadd,
1312 .cbi-button-add,
1313 .cbi-button-save {
1314 border-color: #4a4;
1315 color: #4a4;
1316 }
1317
1318 .cbi-button-neutral,
1319 .cbi-button-download,
1320 .cbi-button-find,
1321 .cbi-button-link,
1322 .cbi-button-up,
1323 .cbi-button-down {
1324 color: #444;
1325 }
1326
1327 .btn.primary,
1328 .cbi-button-action,
1329 .cbi-button-apply,
1330 .cbi-button-reload,
1331 .cbi-button-edit {
1332 border-color: #0069d6;
1333 color: #0069d6;
1334 }
1335
1336 .cbi-button-negative,
1337 .cbi-section-remove .cbi-button,
1338 .cbi-button-reset,
1339 .cbi-button-remove {
1340 border-color: #c44;
1341 color: #c44;
1342 }
1343
1344 .cbi-page-actions::after {
1345 display: table;
1346 content: "";
1347 clear: both;
1348 }
1349
1350 .cbi-page-actions > * {
1351 vertical-align: middle;
1352 }
1353
1354 .cbi-page-actions > :not([method="post"]):not(.cbi-button-apply):not(.cbi-button-negative):not(.cbi-button-save):not(.cbi-button-reset) {
1355 float: left;
1356 margin-right: .4em;
1357 }
1358
1359 .btn.primary,
1360 .cbi-button-action.important,
1361 .cbi-page-actions .cbi-button-apply,
1362 .cbi-section-actions .cbi-button-edit {
1363 color: #fff;
1364 background: linear-gradient(to bottom, #0069d6, #0049d6) no-repeat;
1365 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1366 }
1367
1368 .cbi-button-positive.important,
1369 .cbi-page-actions .cbi-button-save {
1370 color: #fff;
1371 background: linear-gradient(to bottom, #4a4, #484) no-repeat;
1372 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1373 }
1374
1375 .cbi-button-negative.important {
1376 color: #fff;
1377 background: linear-gradient(to bottom, #c44, #c00) no-repeat;
1378 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1379 }
1380
1381 .cbi-page-actions .cbi-button-apply + .cbi-button-save,
1382 .cbi-page-actions .cbi-button-negative + .cbi-button-save {
1383 background: linear-gradient(#fff, #fff 25%, #e6e6e6);
1384 text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.75);
1385 color: #4a4;
1386 }
1387
1388 .cbi-dropdown {
1389 display: inline-flex !important;
1390 cursor: pointer;
1391 height: auto;
1392 position: relative;
1393 padding: 0 !important;
1394 }
1395
1396 .cbi-dropdown:not(.btn):not(.cbi-button) {
1397 background: linear-gradient(#fff 0%, #e9e8e6 100%);
1398 border: 1px solid #ccc;
1399 border-radius: 3px;
1400 color: #404040;
1401 }
1402
1403 .cbi-dynlist > .item:focus,
1404 .cbi-dropdown:focus {
1405 outline: 2px solid #4b6e9b;
1406 }
1407
1408 .cbi-dropdown > ul {
1409 margin: 0 !important;
1410 padding: 0;
1411 list-style: none;
1412 overflow-x: hidden;
1413 overflow-y: auto;
1414 display: flex;
1415 width: 100%;
1416 }
1417
1418 .cbi-dropdown.btn > ul:not(.dropdown),
1419 .cbi-dropdown.cbi-button > ul:not(.dropdown) {
1420 margin: 0 0 0 13px !important;
1421 }
1422
1423 .cbi-dropdown.btn.spinning > ul:not(.dropdown),
1424 .cbi-dropdown.cbi-button.spinning > ul:not(.dropdown) {
1425 margin: 0 !important;
1426 }
1427
1428 .cbi-dropdown > ul.preview {
1429 display: none;
1430 }
1431
1432 .cbi-dropdown > .open,
1433 .cbi-dropdown > .more {
1434 flex-grow: 0;
1435 flex-shrink: 0;
1436 display: flex;
1437 flex-direction: column;
1438 justify-content: center;
1439 text-align: center;
1440 line-height: 2em;
1441 padding: 0 .25em;
1442 }
1443
1444 .cbi-dropdown.btn > .open,
1445 .cbi-dropdown.cbi-button > .open {
1446 padding: 0 .5em;
1447 margin-left: .5em;
1448 border-left: 1px solid;
1449 }
1450
1451 .cbi-dropdown > .more,
1452 .cbi-dropdown:not(.btn):not(.cbi-button) > ul > li[placeholder] {
1453 color: #777;
1454 font-weight: bold;
1455 text-shadow: 1px 1px 0px #fff;
1456 display: none;
1457 justify-content: center;
1458 }
1459
1460 .cbi-dropdown > ul > li {
1461 display: none;
1462 white-space: nowrap;
1463 overflow: hidden;
1464 text-overflow: ellipsis;
1465 flex-shrink: 1;
1466 flex-grow: 1;
1467 align-items: center;
1468 align-self: center;
1469 color: inherit;
1470 }
1471
1472 .cbi-dropdown > ul.dropdown > li,
1473 .cbi-dropdown:not(.btn):not(.cbi-button) > ul > li {
1474 min-height: 20px;
1475 padding: .25em;
1476 color: #404040;
1477 }
1478
1479 .cbi-dropdown > ul > li .hide-open { display: block; display: initial; }
1480 .cbi-dropdown > ul > li .hide-close { display: none; }
1481
1482 .cbi-dropdown > ul > li[display]:not([display="0"]) {
1483 border-left: 1px solid #ccc;
1484 }
1485
1486 .cbi-dropdown[empty] > ul {
1487 max-width: 1px;
1488 }
1489
1490 .cbi-dropdown > ul > li > form {
1491 display: none;
1492 margin: 0;
1493 padding: 0;
1494 pointer-events: none;
1495 }
1496
1497 .cbi-dropdown > ul > li img {
1498 vertical-align: middle;
1499 margin-right: .25em;
1500 }
1501
1502 .cbi-dropdown > ul > li > form > input[type="checkbox"] {
1503 margin: 0;
1504 }
1505
1506 .cbi-dropdown > ul > li input[type="text"] {
1507 height: 20px;
1508 }
1509
1510 .cbi-dropdown[open] {
1511 position: relative;
1512 }
1513
1514 .cbi-dropdown[open] > ul.dropdown {
1515 display: block;
1516 background: #f6f6f5;
1517 border: 1px solid #918e8c;
1518 box-shadow: 0 0 4px #918e8c;
1519 position: absolute;
1520 z-index: 1100;
1521 max-width: none;
1522 min-width: 100%;
1523 width: auto;
1524 transition: max-height .125s ease-in;
1525 }
1526
1527 .cbi-dropdown > ul > li[display],
1528 .cbi-dropdown[open] > ul.preview,
1529 .cbi-dropdown[open] > ul.dropdown > li,
1530 .cbi-dropdown[multiple] > ul > li > label,
1531 .cbi-dropdown[multiple][open] > ul.dropdown > li,
1532 .cbi-dropdown[multiple][more] > .more,
1533 .cbi-dropdown[multiple][empty] > .more {
1534 flex-grow: 1;
1535 display: flex !important;
1536 }
1537
1538 .cbi-dropdown[empty] > ul > li,
1539 .cbi-dropdown[optional][open] > ul.dropdown > li[placeholder],
1540 .cbi-dropdown[multiple][open] > ul.dropdown > li > form {
1541 display: block !important;
1542 }
1543
1544 .cbi-dropdown[open] > ul.dropdown > li .hide-open { display: none; }
1545 .cbi-dropdown[open] > ul.dropdown > li .hide-close { display: block; display: initial; }
1546
1547 .cbi-dropdown[open] > ul.dropdown > li {
1548 border-bottom: 1px solid #ccc;
1549 }
1550
1551 .cbi-dropdown[open] > ul.dropdown > li[selected] {
1552 background: #b0d0f0;
1553 }
1554
1555 .cbi-dropdown[open] > ul.dropdown > li.focus {
1556 background: linear-gradient(90deg, #a3c2e8 0%, #84aad9 100%);
1557 }
1558
1559 .cbi-dropdown[open] > ul.dropdown > li:last-child {
1560 margin-bottom: 0;
1561 border-bottom: none;
1562 }
1563
1564 .cbi-dropdown[open] > ul.dropdown > li[unselectable] {
1565 opacity: 0.7;
1566 }
1567
1568 .cbi-dropdown[open] > ul.dropdown > li > input.create-item-input:first-child:last-child {
1569 width: 100%;
1570 }
1571
1572 .cbi-dropdown[disabled] {
1573 pointer-events: none;
1574 opacity: .6;
1575 }
1576
1577 input[type="text"] + .cbi-button,
1578 input[type="password"] + .cbi-button,
1579 select + .cbi-button {
1580 border-radius: 0 3px 3px 0;
1581 border-color: #ccc;
1582 margin-left: -2px;
1583 padding: 0 6px;
1584 vertical-align: top;
1585 height: 30px;
1586 font-size: 14px;
1587 line-height: 28px;
1588 }
1589
1590 select + .cbi-button {
1591 border-left-color: transparent;
1592 }
1593
1594 .cbi-title-ref {
1595 color: #37c;
1596 }
1597
1598 .cbi-title-ref::after {
1599 content: "âž™";
1600 }
1601
1602 .cbi-tooltip-container {
1603 cursor: help;
1604 }
1605
1606 .cbi-tooltip {
1607 position: absolute;
1608 z-index: 1000;
1609 left: -10000px;
1610 box-shadow: 0 0 2px #ccc;
1611 border-radius: 3px;
1612 background: #fff;
1613 white-space: pre;
1614 padding: 2px 5px;
1615 opacity: 0;
1616 transition: opacity .25s ease-in;
1617 }
1618
1619 .cbi-tooltip-container:hover .cbi-tooltip:not(:empty) {
1620 left: auto;
1621 opacity: 1;
1622 transition: opacity .25s ease-in;
1623 }
1624
1625 .cbi-progressbar {
1626 border: 1px solid #ccc;
1627 border-radius: 3px;
1628 position: relative;
1629 min-width: 170px;
1630 height: 20px;
1631 margin: 4px 0;
1632 background: #f9f9f9;
1633 }
1634
1635 .cbi-progressbar > div {
1636 background: #90c0e0;
1637 height: 100%;
1638 transition: width .25s ease-in;
1639 width: 0%;
1640 }
1641
1642 .cbi-progressbar::after {
1643 position: absolute;
1644 bottom: 0;
1645 top: 0;
1646 right: 0;
1647 left: 0;
1648 text-align: center;
1649 text-shadow: 0 0 2px #fff;
1650 content: attr(title);
1651 white-space: pre;
1652 overflow: hidden;
1653 text-overflow: ellipsis;
1654 }
1655
1656 .zonebadge .cbi-tooltip {
1657 padding: 1px;
1658 background: inherit;
1659 margin: -1.6em 0 0 -5px;
1660 border-radius: 3px;
1661 pointer-events: none;
1662 box-shadow: 0 0 3px #444;
1663 }
1664
1665 .zonebadge .cbi-tooltip > * {
1666 margin: 1px;
1667 }
1668
1669 .zone-forwards {
1670 display: flex;
1671 flex-wrap: wrap;
1672 }
1673
1674 .zone-forwards > * {
1675 flex: 1 1 40%;
1676 padding: 1px;
1677 }
1678
1679 .zone-forwards > span {
1680 flex-basis: 10%;
1681 text-align: center;
1682 }
1683
1684 .zone-forwards .zone-src,
1685 .zone-forwards .zone-dest {
1686 display: flex;
1687 flex-direction: column;
1688 }
1689
1690 .btn.active, .btn:active {
1691 box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
1692 }
1693
1694 .btn.disabled {
1695 cursor: default;
1696 opacity: 0.65;
1697 box-shadow: none;
1698 }
1699
1700 .btn[disabled] {
1701 cursor: default;
1702 opacity: 0.65;
1703 box-shadow: none;
1704 }
1705
1706 .btn.large {
1707 font-size: 15px;
1708 line-height: normal;
1709 padding: 9px 14px 9px;
1710 border-radius: 6px;
1711 }
1712
1713 .btn.small {
1714 padding: 7px 9px 7px;
1715 font-size: 11px;
1716 }
1717
1718 button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner {
1719 padding: 0;
1720 border: 0;
1721 }
1722
1723 .close {
1724 float: right;
1725 color: #000;
1726 font-size: 20px;
1727 font-weight: bold;
1728 line-height: 13.5px;
1729 text-shadow: 0 1px 0 #fff;
1730 opacity: 0.25;
1731 }
1732
1733 .close:hover {
1734 color: #000;
1735 text-decoration: none;
1736 opacity: 0.4;
1737 }
1738
1739 .alert-message {
1740 position: relative;
1741 padding: .5em .5em .25em .5em;
1742 margin-bottom: .5em;
1743 color: #404040;
1744 background: linear-gradient(to bottom, #fceec1, #eedc94) repeat-x;
1745 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1746 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1747 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
1748 border-width: 1px;
1749 border-style: solid;
1750 border-radius: 4px;
1751 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
1752 }
1753
1754 .alert-message .close {
1755 margin-top: 1px;
1756 *margin-top: 0;
1757 }
1758
1759 .alert-message h4,
1760 .alert-message h5,
1761 .alert-message pre,
1762 .alert-message ul,
1763 .alert-message li,
1764 .alert-message p {
1765 color: inherit;
1766 border: none;
1767 line-height: inherit;
1768 background: transparent;
1769 padding: 0;
1770 margin: .25em 0;
1771 }
1772
1773 .alert-message button {
1774 margin: .25em 0;
1775 }
1776
1777 .label {
1778 padding: 1px 3px 2px;
1779 font-size: 9.75px;
1780 font-weight: bold;
1781 color: #fff !important;
1782 text-transform: uppercase;
1783 white-space: nowrap;
1784 background-color: #bfbfbf;
1785 border-radius: 3px;
1786 text-shadow: none;
1787 }
1788
1789 a.label:link,
1790 a.label:visited {
1791 color: #fff;
1792 }
1793
1794 a.label:hover {
1795 text-decoration: none;
1796 }
1797
1798 .label.important {
1799 background-color: #c43c35;
1800 }
1801
1802 .label.warning {
1803 background-color: #f89406;
1804 }
1805
1806 .label.success {
1807 background-color: #46a546;
1808 }
1809
1810 .label.notice {
1811 background-color: #62cffc;
1812 }
1813
1814 /* LuCI specific items */
1815 .hidden { display: none }
1816
1817 #xhr_poll_status {
1818 cursor: pointer;
1819 }
1820
1821 form.inline { display: inline; margin-bottom: 0; }
1822
1823 header .pull-right { padding-top: 8px; }
1824
1825 #modemenu li:last-child span.divider { display: none }
1826
1827 #syslog { width: 100%; }
1828
1829 .cbi-section-table .tr:hover .td,
1830 .cbi-section-table .tr:hover .th,
1831 .cbi-section-table .tr:hover::before {
1832 background-color: #f5f5f5;
1833 }
1834
1835 .cbi-section-table .tr.cbi-section-table-descr .th {
1836 font-weight: normal;
1837 }
1838
1839 .cbi-section-table-titles.named::before,
1840 .cbi-section-table-descr.named::before,
1841 .cbi-section-table-row[data-title]::before {
1842 content: attr(data-title) " ";
1843 display: table-cell;
1844 padding: 10px 10px 9px;
1845 line-height: 18px;
1846 font-weight: bold;
1847 vertical-align: middle;
1848 }
1849
1850 .cbi-section-table-titles.named::before,
1851 .cbi-section-table-descr.named::before,
1852 .cbi-section-table-row[data-title]::before {
1853 border-top: 1px solid #ddd;
1854 }
1855
1856 .left { text-align: left !important; }
1857 .right { text-align: right !important; }
1858 .center { text-align: center !important; }
1859 .top { vertical-align: top !important; }
1860 .middle { vertical-align: middle !important; }
1861 .bottom { vertical-align: bottom !important; }
1862
1863 .cbi-value-field { line-height: 1.5em; }
1864
1865 .cbi-value-field input[type=checkbox],
1866 .cbi-value-field input[type=radio] {
1867 margin-top: 8px;
1868 margin-right: 6px;
1869 }
1870
1871 table table td,
1872 .cbi-value-field table td {
1873 border: none;
1874 }
1875
1876 .table.cbi-section-table input[type="password"],
1877 .table.cbi-section-table input[type="text"],
1878 .table.cbi-section-table textarea,
1879 .table.cbi-section-table select {
1880 width: 100%;
1881 }
1882
1883 .table.cbi-section-table .td.cbi-section-table-cell {
1884 white-space: nowrap;
1885 text-align: right;
1886 }
1887
1888 .table.cbi-section-table .td.cbi-section-table-cell select {
1889 width: inherit;
1890 }
1891
1892 .td.cbi-section-actions {
1893 text-align: right;
1894 vertical-align: middle;
1895 }
1896
1897 .td.cbi-section-actions > * {
1898 display: flex;
1899 }
1900
1901 .td.cbi-section-actions > * > *,
1902 .td.cbi-section-actions > * > form > * {
1903 flex: 1 1 4em;
1904 margin: 0 1px;
1905 }
1906
1907 .td.cbi-section-actions > * > form {
1908 display: inline-flex;
1909 margin: 0;
1910 }
1911
1912 .table.valign-middle .td {
1913 vertical-align: middle;
1914 }
1915
1916 .cbi-rowstyle-2,
1917 .tr.table-titles,
1918 .tr.cbi-section-table-titles {
1919 background: #f9f9f9;
1920 }
1921
1922 .cbi-value-description {
1923 background-image: url(/luci-static/resources/cbi/help.gif);
1924 background-position: .25em .2em;
1925 background-repeat: no-repeat;
1926 margin: .25em 0 0 0;
1927 padding: 0 0 0 1.7em;
1928 }
1929
1930 .cbi-section-error {
1931 border: 1px solid #f00;
1932 border-radius: 3px;
1933 background-color: #fce6e6;
1934 padding: 5px;
1935 margin-bottom: 18px;
1936 }
1937
1938 .cbi-section-error ul { margin: 0 0 0 20px; }
1939
1940 .cbi-section-error ul li {
1941 color: #f00;
1942 font-weight: bold;
1943 }
1944
1945 .ifacebox {
1946 background-color: #fff;
1947 border: 1px solid #ccc;
1948 margin: 0 10px;
1949 text-align: center;
1950 white-space: nowrap;
1951 background-image: linear-gradient(#fff, #fff 25%, #f9f9f9);
1952 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1953 border-radius: 4px;
1954 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1955 display: inline-flex;
1956 flex-direction: column;
1957 line-height: 1.2em;
1958 min-width: 100px;
1959 }
1960
1961 .ifacebox .ifacebox-head {
1962 border-bottom: 1px solid #ccc;
1963 padding: 2px;
1964 background: #eee;
1965 }
1966
1967 .ifacebox .ifacebox-head.active {
1968 background: #90c0e0;
1969 }
1970
1971 .ifacebox .ifacebox-body {
1972 padding: .25em;
1973 }
1974
1975 .ifacebadge {
1976 display: inline-block;
1977 flex-direction: row;
1978 white-space: nowrap;
1979 background-color: #fff;
1980 border: 1px solid #ccc;
1981 padding: 2px;
1982 background-image: linear-gradient(#fff, #fff 25%, #f9f9f9);
1983 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1984 border-radius: 4px;
1985 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1986 cursor: default;
1987 line-height: 1.2em;
1988 }
1989
1990 .ifacebadge img {
1991 width: 16px;
1992 height: 16px;
1993 vertical-align: middle;
1994 }
1995
1996 .ifacebadge-active {
1997 border-color: #000;
1998 font-weight: bold;
1999 }
2000
2001 .network-status-table {
2002 display: flex;
2003 flex-wrap: wrap;
2004 }
2005
2006 .network-status-table .ifacebox {
2007 margin: .5em;
2008 flex-grow: 1;
2009 }
2010
2011 .network-status-table .ifacebox-body {
2012 display: flex;
2013 flex-direction: column;
2014 height: 100%;
2015 text-align: left;
2016 }
2017
2018 .network-status-table .ifacebox-body > * {
2019 margin: .25em;
2020 }
2021
2022 .network-status-table .ifacebox-body > span {
2023 flex: 10 10 auto;
2024 height: 100%;
2025 }
2026
2027 .network-status-table .ifacebox-body > div {
2028 margin: -.125em;
2029 }
2030
2031 #dsl_status_table .ifacebox-body span > strong {
2032 display: inline-block;
2033 min-width: 35%;
2034 }
2035
2036 .ifacebadge.large,
2037 .network-status-table .ifacebox-body .ifacebadge {
2038 display: flex;
2039 flex: 1;
2040 padding: .25em;
2041 min-width: 220px;
2042 margin: .125em;
2043 }
2044
2045 .ifacebadge.large {
2046 display: inline-flex;
2047 }
2048
2049 .network-status-table .ifacebox-body .ifacebadge > span {
2050 overflow: hidden;
2051 text-overflow: ellipsis;
2052 }
2053
2054 .ifacebadge > *,
2055 .ifacebadge.large > * {
2056 margin: 0 .125em;
2057 }
2058
2059 .zonebadge {
2060 padding: 2px;
2061 border-radius: 4px;
2062 display: inline-block;
2063 white-space: nowrap;
2064 color: #666;
2065 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
2066 }
2067
2068 .zonebadge > em,
2069 .zonebadge > strong {
2070 margin: 0 2px;
2071 display: inline-block;
2072 }
2073
2074 .zonebadge input {
2075 width: 6em;
2076 }
2077
2078 .zonebadge > .ifacebadge {
2079 margin-left: 2px;
2080 }
2081
2082 .zonebadge-empty {
2083 border: 1px dashed #aaa;
2084 color: #aaa;
2085 font-style: italic;
2086 font-size: smaller;
2087 }
2088
2089 div.cbi-value var,
2090 .td.cbi-value-field var {
2091 font-style: italic;
2092 color: #0069d6;
2093 }
2094
2095 div.cbi-value var[data-tooltip],
2096 .td.cbi-value-field var[data-tooltip],
2097 div.cbi-value var.cbi-tooltip-container,
2098 .td.cbi-value-field var.cbi-tooltip-container {
2099 cursor: help;
2100 border-bottom: 1px dotted #0069d6;
2101 }
2102
2103 div.cbi-value var.cbi-tooltip-container,
2104 .td.cbi-value-field var.cbi-tooltip-container .cbi-tooltip {
2105 font-style: normal;
2106 white-space: normal;
2107 color: #444;
2108 }
2109
2110 #modal_overlay > .modal.uci-dialog,
2111 #modal_overlay > .modal.cbi-modal {
2112 max-width: 900px;
2113 }
2114
2115 .uci-change-list {
2116 line-height: 170%;
2117 white-space: pre;
2118 }
2119
2120 .uci-change-list del,
2121 .uci-change-list ins,
2122 .uci-change-list var,
2123 .uci-change-legend-label del,
2124 .uci-change-legend-label ins,
2125 .uci-change-legend-label var {
2126 text-decoration: none;
2127 font-family: monospace;
2128 font-style: normal;
2129 border: 1px solid #ccc;
2130 background: #eee;
2131 padding: 2px;
2132 display: block;
2133 line-height: 15px;
2134 margin-bottom: 1px;
2135 }
2136
2137 .uci-change-list ins,
2138 .uci-change-legend-label ins {
2139 border-color: #0f0;
2140 background: #cfc;
2141 }
2142
2143 .uci-change-list del,
2144 .uci-change-legend-label del {
2145 border-color: #f00;
2146 background: #fcc;
2147 }
2148
2149 .uci-change-list var,
2150 .uci-change-legend-label var {
2151 border-color: #ccc;
2152 background: #eee;
2153 }
2154
2155 .uci-change-list var ins,
2156 .uci-change-list var del {
2157 display: inline-block;
2158 border: none;
2159 width: 100%;
2160 padding: 0;
2161 }
2162
2163 .uci-change-legend {
2164 padding: 5px;
2165 }
2166
2167 .uci-change-legend-label {
2168 width: 150px;
2169 float: left;
2170 }
2171
2172 .uci-change-legend-label > ins,
2173 .uci-change-legend-label > del,
2174 .uci-change-legend-label > var {
2175 float: left;
2176 margin-right: 4px;
2177 width: 16px;
2178 height: 16px;
2179 display: block;
2180 position: relative;
2181 }
2182
2183 .uci-change-legend-label var ins,
2184 .uci-change-legend-label var del {
2185 border: none;
2186 position: absolute;
2187 top: 2px;
2188 left: 2px;
2189 right: 2px;
2190 bottom: 2px;
2191 }
2192
2193 #modal_overlay {
2194 position: fixed;
2195 top: 0;
2196 bottom: 0;
2197 left: -10000px;
2198 right: 10000px;
2199 background: rgba(0, 0, 0, 0.7);
2200 z-index: 900;
2201 overflow-y: scroll;
2202 -webkit-overflow-scrolling: touch;
2203 transition: opacity .125s ease-in;
2204 opacity: 0;
2205 }
2206
2207 #modal_overlay > .modal {
2208 width: 90%;
2209 margin: 5em auto;
2210 display: flex;
2211 flex-wrap: wrap;
2212 min-height: 32px;
2213 max-width: 600px;
2214 align-items: center;
2215 border-radius: 3px;
2216 background: #fff;
2217 box-shadow: 0 0 3px #444;
2218 padding: 1em 1em .5em 1em;
2219 min-width: 270px;
2220 }
2221
2222 #modal_overlay .modal > * {
2223 flex-basis: 100%;
2224 line-height: normal;
2225 margin-bottom: .5em;
2226 }
2227
2228 #modal_overlay .modal > pre,
2229 #modal_overlay .modal > textarea {
2230 white-space: pre-wrap;
2231 overflow: auto;
2232 }
2233
2234 body.modal-overlay-active {
2235 overflow: hidden;
2236 height: 100vh;
2237 }
2238
2239 body.modal-overlay-active #modal_overlay {
2240 left: 0;
2241 right: 0;
2242 opacity: 1;
2243 }
2244
2245 html body.apply-overlay-active {
2246 height: calc(100vh - 63px);
2247 }
2248
2249 #applyreboot-section {
2250 line-height: 300%;
2251 }
2252
2253 [data-page="admin-network-dhcp"] [data-name="ip"] {
2254 width: 15%;
2255 }
2256
2257 @keyframes flash {
2258 0% { opacity: 1; }
2259 50% { opacity: .5; }
2260 100% { opacity: 1; }
2261 }
2262
2263 .flash {
2264 animation: flash .35s;
2265 }
2266
2267 .spinning {
2268 position: relative;
2269 padding-left: 32px !important;
2270 }
2271
2272 .spinning::before {
2273 position: absolute;
2274 top: 0;
2275 left: 0;
2276 bottom: 0;
2277 width: 32px;
2278 content: " ";
2279 background: url(../resources/icons/loading.gif) no-repeat center;
2280 background-size: 16px;
2281 }
2282
2283 [data-tab-title] {
2284 height: 0;
2285 opacity: 0;
2286 overflow: hidden;
2287 }
2288
2289 [data-tab-active="true"] {
2290 opacity: 1;
2291 height: auto;
2292 overflow: visible;
2293 transition: opacity .25s ease-in;
2294 }
2295
2296 .cbi-filebrowser {
2297 min-width: 210px;
2298 max-width: 100%;
2299 border: 1px solid #ccc;
2300 border-radius: 3px;
2301 display: flex;
2302 flex-direction: column;
2303 opacity: 0;
2304 height: 0;
2305 overflow: hidden;
2306 }
2307
2308 .cbi-filebrowser.open {
2309 opacity: 1;
2310 height: auto;
2311 overflow: visible;
2312 transition: opacity .25s ease-in;
2313 }
2314
2315 .cbi-filebrowser > * {
2316 max-width: 100%;
2317 overflow: hidden;
2318 text-overflow: ellipsis;
2319 padding: 0 0 .25em 0;
2320 margin: .25em .25em 0px .25em;
2321 white-space: nowrap;
2322 border-bottom: 1px solid #ccc;
2323 }
2324
2325 .cbi-filebrowser .cbi-button-positive {
2326 margin-right: .25em;
2327 }
2328
2329 .cbi-filebrowser > div {
2330 border-bottom: none;
2331 }
2332
2333 .cbi-filebrowser > ul > li {
2334 display: flex;
2335 flex-direction: row;
2336 }
2337
2338 .cbi-filebrowser > ul > li:hover {
2339 background: #f5f5f5;
2340 }
2341
2342 .cbi-filebrowser > ul > li > div:first-child {
2343 flex: 10;
2344 overflow: hidden;
2345 text-overflow: ellipsis;
2346 }
2347
2348 .cbi-filebrowser > ul > li > div:last-child {
2349 flex: 3;
2350 text-align: right;
2351 }
2352
2353 .cbi-filebrowser > ul > li > div:last-child > button {
2354 padding: .125em .25em;
2355 margin: 1px 0 1px .25em;
2356 }
2357
2358 .cbi-filebrowser .upload {
2359 display: flex;
2360 flex-direction: row;
2361 flex-wrap: wrap;
2362 margin: 0 -.125em .25em -.125em;
2363 padding: 0 0 .125em 0px;
2364 border-bottom: 1px solid #ccc;
2365 }
2366
2367 .cbi-filebrowser .upload > * {
2368 margin: .125em;
2369 flex: 1;
2370 }
2371
2372 .cbi-filebrowser .upload > .btn {
2373 flex-basis: 60px;
2374 }
2375
2376 .cbi-filebrowser .upload > div {
2377 flex: 10;
2378 min-width: 150px;
2379 }
2380
2381 .cbi-filebrowser .upload > div > input {
2382 width: 100%;
2383 }
2384
2385 @keyframes fade-in {
2386 0% { opacity: 0; }
2387 100% { opacity: 1; }
2388 }
2389
2390 @keyframes fade-out {
2391 0% { opacity: 1; }
2392 100% { opacity: 0; }
2393 }
2394
2395 .fade-in {
2396 animation: fade-in .4s ease;
2397 }
2398
2399 .fade-out {
2400 animation: fade-out .4s ease;
2401 }