f127501ae9313602deabac2f71a99d94eb1ba3cb
[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 max-height: 2400px;
1200 min-width: 270px;
1201 }
1202
1203 .modal > * {
1204 flex-basis: 100%;
1205 line-height: normal;
1206 margin-bottom: .5em;
1207 max-width: 100%;
1208 }
1209
1210 .modal > pre,
1211 .modal > textarea {
1212 white-space: pre-wrap;
1213 overflow: auto;
1214 }
1215
1216 body.modal-overlay-active {
1217 overflow: hidden;
1218 height: 100vh;
1219 }
1220
1221 body.modal-overlay-active #modal_overlay {
1222 left: 0;
1223 right: 0;
1224 opacity: 1;
1225 visibility: visible;
1226 }
1227
1228 .btn.danger,
1229 .alert-message.danger,
1230 .btn.danger:hover,
1231 .alert-message.danger:hover,
1232 .btn.error,
1233 .alert-message.error,
1234 .btn.error:hover,
1235 .alert-message.error:hover,
1236 .btn.success,
1237 .alert-message.success,
1238 .btn.success:hover,
1239 .alert-message.success:hover,
1240 .btn.info,
1241 .alert-message.info,
1242 .btn.info:hover,
1243 .alert-message.info:hover,
1244 .cbi-tooltip.error, .cbi-tooltip.success, .cbi-tooltip.info {
1245 color: #fff;
1246 }
1247
1248 .btn .close, .alert-message .close {
1249 font-family: Arial, sans-serif;
1250 line-height: 18px;
1251 }
1252
1253 .btn.danger,
1254 .alert-message.danger,
1255 .btn.error,
1256 .alert-message.error,
1257 .cbi-tooltip.error {
1258 background: linear-gradient(to bottom, #ee5f5b, #c43c35) repeat-x;
1259 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1260 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1261 }
1262
1263 .btn.success, .alert-message.success, .cbi-tooltip.success {
1264 background: linear-gradient(to bottom, #62c462, #57a957) repeat-x;
1265 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1266 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1267 }
1268
1269 .btn.info, .alert-message.info, .cbi-tooltip.info {
1270 background: linear-gradient(to bottom, #5bc0de, #339bb9) repeat-x;
1271 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1272 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1273 }
1274
1275 .alert-message.notice, .cbi-tooltip.notice {
1276 background: linear-gradient(to bottom, #efefef, #fefefe) repeat-x;
1277 text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.25);
1278 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1279 }
1280
1281 .item::after,
1282 .btn,
1283 .cbi-button {
1284 cursor: pointer;
1285 display: inline-block;
1286 background: linear-gradient(#fff, #fff 25%, #e6e6e6) no-repeat;
1287 padding: 5px 14px 6px;
1288 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1289 color: #333;
1290 font-size: 13px;
1291 line-height: normal;
1292 border: 1px solid #ccc;
1293 border-bottom-color: #bbb;
1294 border-radius: 4px;
1295 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1296 }
1297
1298 .btn:focus,
1299 .cbi-button:focus {
1300 outline: 1px dotted #666;
1301 }
1302
1303 .cbi-input-invalid,
1304 .cbi-input-invalid.cbi-dropdown,
1305 .cbi-input-invalid.cbi-dropdown:not([open]) > ul > li,
1306 .cbi-value-error input {
1307 color: #f00;
1308 border-color: #f00;
1309 }
1310
1311 .cbi-button-positive,
1312 .cbi-button-fieldadd,
1313 .cbi-button-add,
1314 .cbi-button-save {
1315 border-color: #4a4;
1316 color: #4a4;
1317 }
1318
1319 .cbi-button-neutral,
1320 .cbi-button-download,
1321 .cbi-button-find,
1322 .cbi-button-link,
1323 .cbi-button-up,
1324 .cbi-button-down {
1325 color: #444;
1326 }
1327
1328 .btn.primary,
1329 .cbi-button-action,
1330 .cbi-button-apply,
1331 .cbi-button-reload,
1332 .cbi-button-edit {
1333 border-color: #0069d6;
1334 color: #0069d6;
1335 }
1336
1337 .cbi-button-negative,
1338 .cbi-section-remove .cbi-button,
1339 .cbi-button-reset,
1340 .cbi-button-remove {
1341 border-color: #c44;
1342 color: #c44;
1343 }
1344
1345 .cbi-page-actions::after {
1346 display: table;
1347 content: "";
1348 clear: both;
1349 }
1350
1351 .cbi-page-actions > * {
1352 vertical-align: middle;
1353 }
1354
1355 .cbi-page-actions > :not([method="post"]):not(.cbi-button-apply):not(.cbi-button-negative):not(.cbi-button-save):not(.cbi-button-reset) {
1356 float: left;
1357 margin-right: .4em;
1358 }
1359
1360 .btn.primary,
1361 .cbi-button-action.important,
1362 .cbi-page-actions .cbi-button-apply,
1363 .cbi-section-actions .cbi-button-edit {
1364 color: #fff;
1365 background: linear-gradient(to bottom, #0069d6, #0049d6) no-repeat;
1366 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1367 }
1368
1369 .cbi-button-positive.important,
1370 .cbi-page-actions .cbi-button-save {
1371 color: #fff;
1372 background: linear-gradient(to bottom, #4a4, #484) no-repeat;
1373 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1374 }
1375
1376 .cbi-button-negative.important {
1377 color: #fff;
1378 background: linear-gradient(to bottom, #c44, #c00) no-repeat;
1379 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1380 }
1381
1382 .cbi-page-actions .cbi-button-apply + .cbi-button-save,
1383 .cbi-page-actions .cbi-button-negative + .cbi-button-save {
1384 background: linear-gradient(#fff, #fff 25%, #e6e6e6);
1385 text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.75);
1386 color: #4a4;
1387 }
1388
1389 .cbi-dropdown {
1390 display: inline-flex !important;
1391 cursor: pointer;
1392 height: auto;
1393 position: relative;
1394 padding: 0 !important;
1395 }
1396
1397 .cbi-dropdown:not(.btn):not(.cbi-button) {
1398 background: linear-gradient(#fff 0%, #e9e8e6 100%);
1399 border: 1px solid #ccc;
1400 border-radius: 3px;
1401 color: #404040;
1402 }
1403
1404 .cbi-dynlist > .item:focus,
1405 .cbi-dropdown:focus {
1406 outline: 2px solid #4b6e9b;
1407 }
1408
1409 .cbi-dropdown > ul {
1410 margin: 0 !important;
1411 padding: 0;
1412 list-style: none;
1413 overflow-x: hidden;
1414 overflow-y: auto;
1415 display: flex;
1416 width: 100%;
1417 }
1418
1419 .cbi-dropdown.btn > ul:not(.dropdown),
1420 .cbi-dropdown.cbi-button > ul:not(.dropdown) {
1421 margin: 0 0 0 13px !important;
1422 }
1423
1424 .cbi-dropdown.btn.spinning > ul:not(.dropdown),
1425 .cbi-dropdown.cbi-button.spinning > ul:not(.dropdown) {
1426 margin: 0 !important;
1427 }
1428
1429 .cbi-dropdown > ul.preview {
1430 display: none;
1431 }
1432
1433 .cbi-dropdown > .open,
1434 .cbi-dropdown > .more {
1435 flex-grow: 0;
1436 flex-shrink: 0;
1437 display: flex;
1438 flex-direction: column;
1439 justify-content: center;
1440 text-align: center;
1441 line-height: 2em;
1442 padding: 0 .25em;
1443 }
1444
1445 .cbi-dropdown.btn > .open,
1446 .cbi-dropdown.cbi-button > .open {
1447 padding: 0 .5em;
1448 margin-left: .5em;
1449 border-left: 1px solid;
1450 }
1451
1452 .cbi-dropdown > .more,
1453 .cbi-dropdown:not(.btn):not(.cbi-button) > ul > li[placeholder] {
1454 color: #777;
1455 font-weight: bold;
1456 text-shadow: 1px 1px 0px #fff;
1457 display: none;
1458 justify-content: center;
1459 }
1460
1461 .cbi-dropdown > ul > li {
1462 display: none;
1463 white-space: nowrap;
1464 overflow: hidden;
1465 text-overflow: ellipsis;
1466 flex-shrink: 1;
1467 flex-grow: 1;
1468 align-items: center;
1469 align-self: center;
1470 color: inherit;
1471 }
1472
1473 .cbi-dropdown > ul.dropdown > li,
1474 .cbi-dropdown:not(.btn):not(.cbi-button) > ul > li {
1475 min-height: 20px;
1476 padding: .25em;
1477 color: #404040;
1478 }
1479
1480 .cbi-dropdown > ul > li .hide-open { display: block; display: initial; }
1481 .cbi-dropdown > ul > li .hide-close { display: none; }
1482
1483 .cbi-dropdown > ul > li[display]:not([display="0"]) {
1484 border-left: 1px solid #ccc;
1485 }
1486
1487 .cbi-dropdown[empty] > ul {
1488 max-width: 1px;
1489 }
1490
1491 .cbi-dropdown > ul > li > form {
1492 display: none;
1493 margin: 0;
1494 padding: 0;
1495 pointer-events: none;
1496 }
1497
1498 .cbi-dropdown > ul > li img {
1499 vertical-align: middle;
1500 margin-right: .25em;
1501 }
1502
1503 .cbi-dropdown > ul > li > form > input[type="checkbox"] {
1504 margin: 0;
1505 }
1506
1507 .cbi-dropdown > ul > li input[type="text"] {
1508 height: 20px;
1509 }
1510
1511 .cbi-dropdown[open] {
1512 position: relative;
1513 }
1514
1515 .cbi-dropdown[open] > ul.dropdown {
1516 display: block;
1517 background: #f6f6f5;
1518 border: 1px solid #918e8c;
1519 box-shadow: 0 0 4px #918e8c;
1520 position: absolute;
1521 z-index: 1100;
1522 max-width: none;
1523 min-width: 100%;
1524 width: auto;
1525 transition: max-height .125s ease-in;
1526 }
1527
1528 .cbi-dropdown > ul > li[display],
1529 .cbi-dropdown[open] > ul.preview,
1530 .cbi-dropdown[open] > ul.dropdown > li,
1531 .cbi-dropdown[multiple] > ul > li > label,
1532 .cbi-dropdown[multiple][open] > ul.dropdown > li,
1533 .cbi-dropdown[multiple][more] > .more,
1534 .cbi-dropdown[multiple][empty] > .more {
1535 flex-grow: 1;
1536 display: flex !important;
1537 }
1538
1539 .cbi-dropdown[empty] > ul > li,
1540 .cbi-dropdown[optional][open] > ul.dropdown > li[placeholder],
1541 .cbi-dropdown[multiple][open] > ul.dropdown > li > form {
1542 display: block !important;
1543 }
1544
1545 .cbi-dropdown[open] > ul.dropdown > li .hide-open { display: none; }
1546 .cbi-dropdown[open] > ul.dropdown > li .hide-close { display: block; display: initial; }
1547
1548 .cbi-dropdown[open] > ul.dropdown > li {
1549 border-bottom: 1px solid #ccc;
1550 }
1551
1552 .cbi-dropdown[open] > ul.dropdown > li[selected] {
1553 background: #b0d0f0;
1554 }
1555
1556 .cbi-dropdown[open] > ul.dropdown > li.focus {
1557 background: linear-gradient(90deg, #a3c2e8 0%, #84aad9 100%);
1558 }
1559
1560 .cbi-dropdown[open] > ul.dropdown > li:last-child {
1561 margin-bottom: 0;
1562 border-bottom: none;
1563 }
1564
1565 .cbi-dropdown[open] > ul.dropdown > li[unselectable] {
1566 opacity: 0.7;
1567 }
1568
1569 .cbi-dropdown[open] > ul.dropdown > li > input.create-item-input:first-child:last-child {
1570 width: 100%;
1571 }
1572
1573 .cbi-dropdown[disabled] {
1574 pointer-events: none;
1575 opacity: .6;
1576 }
1577
1578 input[type="text"] + .cbi-button,
1579 input[type="password"] + .cbi-button,
1580 select + .cbi-button {
1581 border-radius: 0 3px 3px 0;
1582 border-color: #ccc;
1583 margin-left: -2px;
1584 padding: 0 6px;
1585 vertical-align: top;
1586 height: 30px;
1587 font-size: 14px;
1588 line-height: 28px;
1589 }
1590
1591 select + .cbi-button {
1592 border-left-color: transparent;
1593 }
1594
1595 .cbi-title-ref {
1596 color: #37c;
1597 }
1598
1599 .cbi-title-ref::after {
1600 content: "âž™";
1601 }
1602
1603 .cbi-tooltip-container {
1604 cursor: help;
1605 }
1606
1607 .cbi-tooltip {
1608 position: absolute;
1609 z-index: 1000;
1610 left: -10000px;
1611 box-shadow: 0 0 2px #ccc;
1612 border-radius: 3px;
1613 background: #fff;
1614 white-space: pre;
1615 padding: 2px 5px;
1616 opacity: 0;
1617 transition: opacity .25s ease-in;
1618 }
1619
1620 .cbi-tooltip-container:hover .cbi-tooltip:not(:empty) {
1621 left: auto;
1622 opacity: 1;
1623 transition: opacity .25s ease-in;
1624 }
1625
1626 .cbi-progressbar {
1627 border: 1px solid #ccc;
1628 border-radius: 3px;
1629 position: relative;
1630 min-width: 170px;
1631 height: 20px;
1632 margin: 4px 0;
1633 background: #f9f9f9;
1634 }
1635
1636 .cbi-progressbar > div {
1637 background: #90c0e0;
1638 height: 100%;
1639 transition: width .25s ease-in;
1640 width: 0%;
1641 }
1642
1643 .cbi-progressbar::after {
1644 position: absolute;
1645 bottom: 0;
1646 top: 0;
1647 right: 0;
1648 left: 0;
1649 text-align: center;
1650 text-shadow: 0 0 2px #fff;
1651 content: attr(title);
1652 white-space: pre;
1653 overflow: hidden;
1654 text-overflow: ellipsis;
1655 }
1656
1657 .zonebadge .cbi-tooltip {
1658 padding: 1px;
1659 background: inherit;
1660 margin: -1.6em 0 0 -5px;
1661 border-radius: 3px;
1662 pointer-events: none;
1663 box-shadow: 0 0 3px #444;
1664 }
1665
1666 .zonebadge .cbi-tooltip > * {
1667 margin: 1px;
1668 }
1669
1670 .zone-forwards {
1671 display: flex;
1672 flex-wrap: wrap;
1673 }
1674
1675 .zone-forwards > * {
1676 flex: 1 1 40%;
1677 padding: 1px;
1678 }
1679
1680 .zone-forwards > span {
1681 flex-basis: 10%;
1682 text-align: center;
1683 }
1684
1685 .zone-forwards .zone-src,
1686 .zone-forwards .zone-dest {
1687 display: flex;
1688 flex-direction: column;
1689 }
1690
1691 .btn.active, .btn:active {
1692 box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
1693 }
1694
1695 .btn.disabled {
1696 cursor: default;
1697 opacity: 0.65;
1698 box-shadow: none;
1699 }
1700
1701 .btn[disabled] {
1702 cursor: default;
1703 opacity: 0.65;
1704 box-shadow: none;
1705 }
1706
1707 .btn.large {
1708 font-size: 15px;
1709 line-height: normal;
1710 padding: 9px 14px 9px;
1711 border-radius: 6px;
1712 }
1713
1714 .btn.small {
1715 padding: 7px 9px 7px;
1716 font-size: 11px;
1717 }
1718
1719 button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner {
1720 padding: 0;
1721 border: 0;
1722 }
1723
1724 .close {
1725 float: right;
1726 color: #000;
1727 font-size: 20px;
1728 font-weight: bold;
1729 line-height: 13.5px;
1730 text-shadow: 0 1px 0 #fff;
1731 opacity: 0.25;
1732 }
1733
1734 .close:hover {
1735 color: #000;
1736 text-decoration: none;
1737 opacity: 0.4;
1738 }
1739
1740 .alert-message {
1741 position: relative;
1742 padding: .5em .5em .25em .5em;
1743 margin-bottom: .5em;
1744 color: #404040;
1745 background: linear-gradient(to bottom, #fceec1, #eedc94) repeat-x;
1746 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
1747 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
1748 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
1749 border-width: 1px;
1750 border-style: solid;
1751 border-radius: 4px;
1752 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
1753 }
1754
1755 .alert-message .close {
1756 margin-top: 1px;
1757 *margin-top: 0;
1758 }
1759
1760 .alert-message h4,
1761 .alert-message h5,
1762 .alert-message pre,
1763 .alert-message ul,
1764 .alert-message li,
1765 .alert-message p {
1766 color: inherit;
1767 border: none;
1768 line-height: inherit;
1769 background: transparent;
1770 padding: 0;
1771 margin: .25em 0;
1772 }
1773
1774 .alert-message button {
1775 margin: .25em 0;
1776 }
1777
1778 .label {
1779 padding: 1px 3px 2px;
1780 font-size: 9.75px;
1781 font-weight: bold;
1782 color: #fff !important;
1783 text-transform: uppercase;
1784 white-space: nowrap;
1785 background-color: #bfbfbf;
1786 border-radius: 3px;
1787 text-shadow: none;
1788 }
1789
1790 a.label:link,
1791 a.label:visited {
1792 color: #fff;
1793 }
1794
1795 a.label:hover {
1796 text-decoration: none;
1797 }
1798
1799 .label.important {
1800 background-color: #c43c35;
1801 }
1802
1803 .label.warning {
1804 background-color: #f89406;
1805 }
1806
1807 .label.success {
1808 background-color: #46a546;
1809 }
1810
1811 .label.notice {
1812 background-color: #62cffc;
1813 }
1814
1815 /* LuCI specific items */
1816 .hidden { display: none }
1817
1818 #xhr_poll_status {
1819 cursor: pointer;
1820 }
1821
1822 form.inline { display: inline; margin-bottom: 0; }
1823
1824 header .pull-right { padding-top: 8px; }
1825
1826 #modemenu li:last-child span.divider { display: none }
1827
1828 #syslog { width: 100%; }
1829
1830 .cbi-section-table .tr:hover .td,
1831 .cbi-section-table .tr:hover .th,
1832 .cbi-section-table .tr:hover::before {
1833 background-color: #f5f5f5;
1834 }
1835
1836 .cbi-section-table .tr.cbi-section-table-descr .th {
1837 font-weight: normal;
1838 }
1839
1840 .cbi-section-table-titles.named::before,
1841 .cbi-section-table-descr.named::before,
1842 .cbi-section-table-row[data-title]::before {
1843 content: attr(data-title) " ";
1844 display: table-cell;
1845 padding: 10px 10px 9px;
1846 line-height: 18px;
1847 font-weight: bold;
1848 vertical-align: middle;
1849 }
1850
1851 .cbi-section-table-titles.named::before,
1852 .cbi-section-table-descr.named::before,
1853 .cbi-section-table-row[data-title]::before {
1854 border-top: 1px solid #ddd;
1855 }
1856
1857 .left { text-align: left !important; }
1858 .right { text-align: right !important; }
1859 .center { text-align: center !important; }
1860 .top { vertical-align: top !important; }
1861 .middle { vertical-align: middle !important; }
1862 .bottom { vertical-align: bottom !important; }
1863
1864 .cbi-value-field { line-height: 1.5em; }
1865
1866 .cbi-value-field input[type=checkbox],
1867 .cbi-value-field input[type=radio] {
1868 margin-top: 8px;
1869 margin-right: 6px;
1870 }
1871
1872 table table td,
1873 .cbi-value-field table td {
1874 border: none;
1875 }
1876
1877 .table.cbi-section-table input[type="password"],
1878 .table.cbi-section-table input[type="text"],
1879 .table.cbi-section-table textarea,
1880 .table.cbi-section-table select {
1881 width: 100%;
1882 }
1883
1884 .table.cbi-section-table .td.cbi-section-table-cell {
1885 white-space: nowrap;
1886 text-align: right;
1887 }
1888
1889 .table.cbi-section-table .td.cbi-section-table-cell select {
1890 width: inherit;
1891 }
1892
1893 .td.cbi-section-actions {
1894 text-align: right;
1895 vertical-align: middle;
1896 }
1897
1898 .td.cbi-section-actions > * {
1899 display: flex;
1900 }
1901
1902 .td.cbi-section-actions > * > *,
1903 .td.cbi-section-actions > * > form > * {
1904 flex: 1 1 4em;
1905 margin: 0 1px;
1906 }
1907
1908 .td.cbi-section-actions > * > form {
1909 display: inline-flex;
1910 margin: 0;
1911 }
1912
1913 .table.valign-middle .td {
1914 vertical-align: middle;
1915 }
1916
1917 .cbi-rowstyle-2,
1918 .tr.table-titles,
1919 .tr.cbi-section-table-titles {
1920 background: #f9f9f9;
1921 }
1922
1923 .cbi-value-description {
1924 background-image: url(/luci-static/resources/cbi/help.gif);
1925 background-position: .25em .2em;
1926 background-repeat: no-repeat;
1927 margin: .25em 0 0 0;
1928 padding: 0 0 0 1.7em;
1929 }
1930
1931 .cbi-section-error {
1932 border: 1px solid #f00;
1933 border-radius: 3px;
1934 background-color: #fce6e6;
1935 padding: 5px;
1936 margin-bottom: 18px;
1937 }
1938
1939 .cbi-section-error ul { margin: 0 0 0 20px; }
1940
1941 .cbi-section-error ul li {
1942 color: #f00;
1943 font-weight: bold;
1944 }
1945
1946 .ifacebox {
1947 background-color: #fff;
1948 border: 1px solid #ccc;
1949 margin: 0 10px;
1950 text-align: center;
1951 white-space: nowrap;
1952 background-image: linear-gradient(#fff, #fff 25%, #f9f9f9);
1953 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1954 border-radius: 4px;
1955 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1956 display: inline-flex;
1957 flex-direction: column;
1958 line-height: 1.2em;
1959 min-width: 100px;
1960 }
1961
1962 .ifacebox .ifacebox-head {
1963 border-bottom: 1px solid #ccc;
1964 padding: 2px;
1965 background: #eee;
1966 }
1967
1968 .ifacebox .ifacebox-head.active {
1969 background: #90c0e0;
1970 }
1971
1972 .ifacebox .ifacebox-body {
1973 padding: .25em;
1974 }
1975
1976 .ifacebadge {
1977 display: inline-block;
1978 flex-direction: row;
1979 white-space: nowrap;
1980 background-color: #fff;
1981 border: 1px solid #ccc;
1982 padding: 2px;
1983 background-image: linear-gradient(#fff, #fff 25%, #f9f9f9);
1984 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
1985 border-radius: 4px;
1986 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
1987 cursor: default;
1988 line-height: 1.2em;
1989 }
1990
1991 .ifacebadge img {
1992 width: 16px;
1993 height: 16px;
1994 vertical-align: middle;
1995 }
1996
1997 .ifacebadge-active {
1998 border-color: #000;
1999 font-weight: bold;
2000 }
2001
2002 .network-status-table {
2003 display: flex;
2004 flex-wrap: wrap;
2005 }
2006
2007 .network-status-table .ifacebox {
2008 margin: .5em;
2009 flex-grow: 1;
2010 }
2011
2012 .network-status-table .ifacebox-body {
2013 display: flex;
2014 flex-direction: column;
2015 height: 100%;
2016 text-align: left;
2017 }
2018
2019 .network-status-table .ifacebox-body > * {
2020 margin: .25em;
2021 }
2022
2023 .network-status-table .ifacebox-body > span {
2024 flex: 10 10 auto;
2025 height: 100%;
2026 }
2027
2028 .network-status-table .ifacebox-body > div {
2029 margin: -.125em;
2030 }
2031
2032 #dsl_status_table .ifacebox-body span > strong {
2033 display: inline-block;
2034 min-width: 35%;
2035 }
2036
2037 .ifacebadge.large,
2038 .network-status-table .ifacebox-body .ifacebadge {
2039 display: flex;
2040 flex: 1;
2041 padding: .25em;
2042 min-width: 220px;
2043 margin: .125em;
2044 }
2045
2046 .ifacebadge.large {
2047 display: inline-flex;
2048 }
2049
2050 .network-status-table .ifacebox-body .ifacebadge > span {
2051 overflow: hidden;
2052 text-overflow: ellipsis;
2053 }
2054
2055 .ifacebadge > *,
2056 .ifacebadge.large > * {
2057 margin: 0 .125em;
2058 }
2059
2060 .zonebadge {
2061 padding: 2px;
2062 border-radius: 4px;
2063 display: inline-block;
2064 white-space: nowrap;
2065 color: #666;
2066 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
2067 }
2068
2069 .zonebadge > em,
2070 .zonebadge > strong {
2071 margin: 0 2px;
2072 display: inline-block;
2073 }
2074
2075 .zonebadge input {
2076 width: 6em;
2077 }
2078
2079 .zonebadge > .ifacebadge {
2080 margin-left: 2px;
2081 }
2082
2083 .zonebadge-empty {
2084 border: 1px dashed #aaa;
2085 color: #aaa;
2086 font-style: italic;
2087 font-size: smaller;
2088 }
2089
2090 div.cbi-value var,
2091 .td.cbi-value-field var {
2092 font-style: italic;
2093 color: #0069d6;
2094 }
2095
2096 #modal_overlay > .modal.uci-dialog,
2097 #modal_overlay > .modal.cbi-modal {
2098 max-width: 900px;
2099 }
2100
2101 .uci-change-list {
2102 line-height: 170%;
2103 white-space: pre;
2104 }
2105
2106 .uci-change-list del,
2107 .uci-change-list ins,
2108 .uci-change-list var,
2109 .uci-change-legend-label del,
2110 .uci-change-legend-label ins,
2111 .uci-change-legend-label var {
2112 text-decoration: none;
2113 font-family: monospace;
2114 font-style: normal;
2115 border: 1px solid #ccc;
2116 background: #eee;
2117 padding: 2px;
2118 display: block;
2119 line-height: 15px;
2120 margin-bottom: 1px;
2121 }
2122
2123 .uci-change-list ins,
2124 .uci-change-legend-label ins {
2125 border-color: #0f0;
2126 background: #cfc;
2127 }
2128
2129 .uci-change-list del,
2130 .uci-change-legend-label del {
2131 border-color: #f00;
2132 background: #fcc;
2133 }
2134
2135 .uci-change-list var,
2136 .uci-change-legend-label var {
2137 border-color: #ccc;
2138 background: #eee;
2139 }
2140
2141 .uci-change-list var ins,
2142 .uci-change-list var del {
2143 display: inline-block;
2144 border: none;
2145 width: 100%;
2146 padding: 0;
2147 }
2148
2149 .uci-change-legend {
2150 padding: 5px;
2151 }
2152
2153 .uci-change-legend-label {
2154 width: 150px;
2155 float: left;
2156 }
2157
2158 .uci-change-legend-label > ins,
2159 .uci-change-legend-label > del,
2160 .uci-change-legend-label > var {
2161 float: left;
2162 margin-right: 4px;
2163 width: 16px;
2164 height: 16px;
2165 display: block;
2166 position: relative;
2167 }
2168
2169 .uci-change-legend-label var ins,
2170 .uci-change-legend-label var del {
2171 border: none;
2172 position: absolute;
2173 top: 2px;
2174 left: 2px;
2175 right: 2px;
2176 bottom: 2px;
2177 }
2178
2179 #modal_overlay {
2180 position: fixed;
2181 top: 0;
2182 bottom: 0;
2183 left: -10000px;
2184 right: 10000px;
2185 background: rgba(0, 0, 0, 0.7);
2186 z-index: 900;
2187 overflow-y: scroll;
2188 -webkit-overflow-scrolling: touch;
2189 transition: opacity .125s ease-in;
2190 opacity: 0;
2191 }
2192
2193 #modal_overlay > .modal {
2194 width: 90%;
2195 margin: 5em auto;
2196 display: flex;
2197 flex-wrap: wrap;
2198 min-height: 32px;
2199 max-width: 600px;
2200 align-items: center;
2201 border-radius: 3px;
2202 background: #fff;
2203 box-shadow: 0 0 3px #444;
2204 padding: 1em 1em .5em 1em;
2205 min-width: 270px;
2206 }
2207
2208 #modal_overlay .modal > * {
2209 flex-basis: 100%;
2210 line-height: normal;
2211 margin-bottom: .5em;
2212 }
2213
2214 #modal_overlay .modal > pre,
2215 #modal_overlay .modal > textarea {
2216 white-space: pre-wrap;
2217 overflow: auto;
2218 }
2219
2220 body.modal-overlay-active {
2221 overflow: hidden;
2222 height: 100vh;
2223 }
2224
2225 body.modal-overlay-active #modal_overlay {
2226 left: 0;
2227 right: 0;
2228 opacity: 1;
2229 }
2230
2231 html body.apply-overlay-active {
2232 height: calc(100vh - 63px);
2233 }
2234
2235 #applyreboot-section {
2236 line-height: 300%;
2237 }
2238
2239 [data-page="admin-network-dhcp"] [data-name="ip"] {
2240 width: 15%;
2241 }
2242
2243 @keyframes flash {
2244 0% { opacity: 1; }
2245 50% { opacity: .5; }
2246 100% { opacity: 1; }
2247 }
2248
2249 .flash {
2250 animation: flash .35s;
2251 }
2252
2253 .spinning {
2254 position: relative;
2255 padding-left: 32px !important;
2256 }
2257
2258 .spinning::before {
2259 position: absolute;
2260 top: 0;
2261 left: 0;
2262 bottom: 0;
2263 width: 32px;
2264 content: " ";
2265 background: url(../resources/icons/loading.gif) no-repeat center;
2266 background-size: 16px;
2267 }
2268
2269 [data-tab-title] {
2270 height: 0;
2271 opacity: 0;
2272 overflow: hidden;
2273 }
2274
2275 [data-tab-active="true"] {
2276 opacity: 1;
2277 height: auto;
2278 overflow: visible;
2279 transition: opacity .25s ease-in;
2280 }
2281
2282 .cbi-filebrowser {
2283 min-width: 210px;
2284 max-width: 100%;
2285 border: 1px solid #ccc;
2286 border-radius: 3px;
2287 display: flex;
2288 flex-direction: column;
2289 opacity: 0;
2290 height: 0;
2291 overflow: hidden;
2292 }
2293
2294 .cbi-filebrowser.open {
2295 opacity: 1;
2296 height: auto;
2297 overflow: visible;
2298 transition: opacity .25s ease-in;
2299 }
2300
2301 .cbi-filebrowser > * {
2302 max-width: 100%;
2303 overflow: hidden;
2304 text-overflow: ellipsis;
2305 padding: 0 0 .25em 0;
2306 margin: .25em .25em 0px .25em;
2307 white-space: nowrap;
2308 border-bottom: 1px solid #ccc;
2309 }
2310
2311 .cbi-filebrowser .cbi-button-positive {
2312 margin-right: .25em;
2313 }
2314
2315 .cbi-filebrowser > div {
2316 border-bottom: none;
2317 }
2318
2319 .cbi-filebrowser > ul > li {
2320 display: flex;
2321 flex-direction: row;
2322 }
2323
2324 .cbi-filebrowser > ul > li:hover {
2325 background: #f5f5f5;
2326 }
2327
2328 .cbi-filebrowser > ul > li > div:first-child {
2329 flex: 10;
2330 overflow: hidden;
2331 text-overflow: ellipsis;
2332 }
2333
2334 .cbi-filebrowser > ul > li > div:last-child {
2335 flex: 3;
2336 text-align: right;
2337 }
2338
2339 .cbi-filebrowser > ul > li > div:last-child > button {
2340 padding: .125em .25em;
2341 margin: 1px 0 1px .25em;
2342 }
2343
2344 .cbi-filebrowser .upload {
2345 display: flex;
2346 flex-direction: row;
2347 flex-wrap: wrap;
2348 margin: 0 -.125em .25em -.125em;
2349 padding: 0 0 .125em 0px;
2350 border-bottom: 1px solid #ccc;
2351 }
2352
2353 .cbi-filebrowser .upload > * {
2354 margin: .125em;
2355 flex: 1;
2356 }
2357
2358 .cbi-filebrowser .upload > .btn {
2359 flex-basis: 60px;
2360 }
2361
2362 .cbi-filebrowser .upload > div {
2363 flex: 10;
2364 min-width: 150px;
2365 }
2366
2367 .cbi-filebrowser .upload > div > input {
2368 width: 100%;
2369 }
2370
2371 @keyframes fade-in {
2372 0% { opacity: 0; }
2373 100% { opacity: 1; }
2374 }
2375
2376 @keyframes fade-out {
2377 0% { opacity: 1; }
2378 100% { opacity: 0; }
2379 }
2380
2381 .fade-in {
2382 animation: fade-in .4s ease;
2383 }
2384
2385 .fade-out {
2386 animation: fade-out .4s ease;
2387 }