##// END OF EJS Templates
Merge pull request #6125 from jdfreder/flex...
Brian E. Granger -
r17692:c01a6f30 merge
parent child Browse files
Show More
@@ -0,0 +1,73 b''
1 """Box class.
2
3 Represents a container that can be used to group other widgets.
4 """
5
6 # Copyright (c) IPython Development Team.
7 # Distributed under the terms of the Modified BSD License.
8
9 from .widget import DOMWidget
10 from IPython.utils.traitlets import Unicode, Tuple, TraitError, Int, CaselessStrEnum
11 from IPython.utils.warn import DeprecatedClass
12
13 class Box(DOMWidget):
14 """Displays multiple widgets in a group."""
15 _view_name = Unicode('BoxView', sync=True)
16
17 # Child widgets in the container.
18 # Using a tuple here to force reassignment to update the list.
19 # When a proper notifying-list trait exists, that is what should be used here.
20 children = Tuple(sync=True, allow_none=False)
21
22 def __init__(self, children = (), **kwargs):
23 kwargs['children'] = children
24 super(Box, self).__init__(**kwargs)
25 self.on_displayed(Box._fire_children_displayed)
26
27 def _fire_children_displayed(self):
28 for child in self.children:
29 child._handle_displayed()
30
31
32 class Popup(Box):
33 """Displays multiple widgets in an in page popup div."""
34 _view_name = Unicode('PopupView', sync=True)
35
36 description = Unicode(sync=True)
37 button_text = Unicode(sync=True)
38
39
40 class FlexBox(Box):
41 """Displays multiple widgets using the flexible box model."""
42 _view_name = Unicode('FlexBoxView', sync=True)
43 orientation = CaselessStrEnum(values=['vertical', 'horizontal'], default_value='vertical', sync=True)
44 flex = Int(0, sync=True, help="""Specify the flexible-ness of the model.""")
45 def _flex_changed(self, name, old, new):
46 new = min(max(0, new), 2)
47 if self.flex != new:
48 self.flex = new
49
50 _locations = ['start', 'center', 'end', 'baseline', 'stretch']
51 pack = CaselessStrEnum(
52 values=_locations,
53 default_value='start', allow_none=False, sync=True)
54 align = CaselessStrEnum(
55 values=_locations,
56 default_value='start', allow_none=False, sync=True)
57
58
59 def VBox(*pargs, **kwargs):
60 """Displays multiple widgets vertically using the flexible box model."""
61 kwargs['orientation'] = 'vertical'
62 return FlexBox(*pargs, **kwargs)
63
64 def HBox(*pargs, **kwargs):
65 """Displays multiple widgets horizontally using the flexible box model."""
66 kwargs['orientation'] = 'horizontal'
67 return FlexBox(*pargs, **kwargs)
68
69
70 # Remove in IPython 4.0
71 ContainerWidget = DeprecatedClass(Box, 'ContainerWidget')
72 PopupWidget = DeprecatedClass(Popup, 'PopupWidget')
73
@@ -0,0 +1,6 b''
1 * The widget classes have been renamed from `*Widget` to `*`. The old names are
2 still functional, but are deprecated. i.e. `IntSliderWidget` has been renamed
3 to `IntSlider`.
4 * The ContainerWidget was renamed to Box and no longer defaults as a flexible
5 box in the web browser. A new FlexBox widget was added, which allows you to
6 use the flexible box model.
@@ -1,221 +1,269 b''
1
1
2 /* Flexible box model classes */
2 /* Flexible box model classes */
3 /* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
3 /* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
4
4
5 /* This file is a compatability layer. It allows the usage of flexible box
5 /* This file is a compatability layer. It allows the usage of flexible box
6 model layouts accross multiple browsers, including older browsers. The newest,
6 model layouts accross multiple browsers, including older browsers. The newest,
7 universal implementation of the flexible box model is used when available (see
7 universal implementation of the flexible box model is used when available (see
8 `Modern browsers` comments below). Browsers that are known to implement this
8 `Modern browsers` comments below). Browsers that are known to implement this
9 new spec completely include:
9 new spec completely include:
10
10
11 Firefox 28.0+
11 Firefox 28.0+
12 Chrome 29.0+
12 Chrome 29.0+
13 Internet Explorer 11+
13 Internet Explorer 11+
14 Opera 17.0+
14 Opera 17.0+
15
15
16 Browsers not listed, including Safari, are supported via the styling under the
16 Browsers not listed, including Safari, are supported via the styling under the
17 `Old browsers` comments below.
17 `Old browsers` comments below.
18 */
18 */
19
19
20
20
21 .hbox {
21 .hbox {
22 /* Old browsers */
22 /* Old browsers */
23 display: -webkit-box;
23 display: -webkit-box;
24 -webkit-box-orient: horizontal;
24 -webkit-box-orient: horizontal;
25 -webkit-box-align: stretch;
25 -webkit-box-align: stretch;
26
26
27 display: -moz-box;
27 display: -moz-box;
28 -moz-box-orient: horizontal;
28 -moz-box-orient: horizontal;
29 -moz-box-align: stretch;
29 -moz-box-align: stretch;
30
30
31 display: box;
31 display: box;
32 box-orient: horizontal;
32 box-orient: horizontal;
33 box-align: stretch;
33 box-align: stretch;
34
34
35 /* Modern browsers */
35 /* Modern browsers */
36 display: flex;
36 display: flex;
37 flex-direction: row;
37 flex-direction: row;
38 align-items: stretch;
38 align-items: stretch;
39 }
39 }
40
40
41 .hbox > * {
41 .hbox > * {
42 /* Old browsers */
42 /* Old browsers */
43 -webkit-box-flex: 0;
43 -webkit-box-flex: 0;
44 -moz-box-flex: 0;
44 -moz-box-flex: 0;
45 box-flex: 0;
45 box-flex: 0;
46
46
47 /* Modern browsers */
47 /* Modern browsers */
48 flex: none;
48 flex: none;
49 }
49 }
50
50
51 .vbox {
51 .vbox {
52 /* Old browsers */
52 /* Old browsers */
53 display: -webkit-box;
53 display: -webkit-box;
54 -webkit-box-orient: vertical;
54 -webkit-box-orient: vertical;
55 -webkit-box-align: stretch;
55 -webkit-box-align: stretch;
56
56
57 display: -moz-box;
57 display: -moz-box;
58 -moz-box-orient: vertical;
58 -moz-box-orient: vertical;
59 -moz-box-align: stretch;
59 -moz-box-align: stretch;
60
60
61 display: box;
61 display: box;
62 box-orient: vertical;
62 box-orient: vertical;
63 box-align: stretch;
63 box-align: stretch;
64
64
65 /* Modern browsers */
65 /* Modern browsers */
66 display: flex;
66 display: flex;
67 flex-direction: column;
67 flex-direction: column;
68 align-items: stretch;
68 align-items: stretch;
69 }
69 }
70
70
71 .vbox > * {
71 .vbox > * {
72 /* Old browsers */
72 /* Old browsers */
73 -webkit-box-flex: 0;
73 -webkit-box-flex: 0;
74 -moz-box-flex: 0;
74 -moz-box-flex: 0;
75 box-flex: 0;
75 box-flex: 0;
76
76
77 /* Modern browsers */
77 /* Modern browsers */
78 flex: none;
78 flex: none;
79 }
79 }
80
80
81 .hbox.reverse,
81 .hbox.reverse,
82 .vbox.reverse,
82 .vbox.reverse,
83 .reverse {
83 .reverse {
84 /* Old browsers */
84 /* Old browsers */
85 -webkit-box-direction: reverse;
85 -webkit-box-direction: reverse;
86 -moz-box-direction: reverse;
86 -moz-box-direction: reverse;
87 box-direction: reverse;
87 box-direction: reverse;
88
88
89 /* Modern browsers */
89 /* Modern browsers */
90 flex-direction: row-reverse;
90 flex-direction: row-reverse;
91 }
91 }
92
92
93 .hbox.box-flex0,
93 .hbox.box-flex0,
94 .vbox.box-flex0,
94 .vbox.box-flex0,
95 .box-flex0 {
95 .box-flex0 {
96 /* Old browsers */
96 /* Old browsers */
97 -webkit-box-flex: 0;
97 -webkit-box-flex: 0;
98 -moz-box-flex: 0;
98 -moz-box-flex: 0;
99 box-flex: 0;
99 box-flex: 0;
100
100
101 /* Modern browsers */
101 /* Modern browsers */
102 flex: none;
102 flex: none;
103 width: auto;
103 width: auto;
104 }
104 }
105
105
106 .hbox.box-flex1,
106 .hbox.box-flex1,
107 .vbox.box-flex1,
107 .vbox.box-flex1,
108 .box-flex1 {
108 .box-flex1 {
109 /* Old browsers */
109 /* Old browsers */
110 -webkit-box-flex: 1;
110 -webkit-box-flex: 1;
111 -moz-box-flex: 1;
111 -moz-box-flex: 1;
112 box-flex: 1;
112 box-flex: 1;
113
113
114 /* Modern browsers */
114 /* Modern browsers */
115 flex: 1;
115 flex: 1;
116 }
116 }
117
117
118 .hbox.box-flex,
118 .hbox.box-flex,
119 .vbox.box-flex,
119 .vbox.box-flex,
120 .box-flex {
120 .box-flex {
121 /* Old browsers */
121 /* Old browsers */
122 .box-flex1();
122 .box-flex1();
123 }
123 }
124
124
125 .hbox.box-flex2,
125 .hbox.box-flex2,
126 .vbox.box-flex2,
126 .vbox.box-flex2,
127 .box-flex2 {
127 .box-flex2 {
128 /* Old browsers */
128 /* Old browsers */
129 -webkit-box-flex: 2;
129 -webkit-box-flex: 2;
130 -moz-box-flex: 2;
130 -moz-box-flex: 2;
131 box-flex: 2;
131 box-flex: 2;
132
132
133 /* Modern browsers */
133 /* Modern browsers */
134 flex: 2;
134 flex: 2;
135 }
135 }
136
136
137 .box-group1 {
137 .box-group1 {
138 /* Deprecated */
138 /* Deprecated */
139 -webkit-box-flex-group: 1;
139 -webkit-box-flex-group: 1;
140 -moz-box-flex-group: 1;
140 -moz-box-flex-group: 1;
141 box-flex-group: 1;
141 box-flex-group: 1;
142 }
142 }
143
143
144 .box-group2 {
144 .box-group2 {
145 /* Deprecated */
145 /* Deprecated */
146 -webkit-box-flex-group: 2;
146 -webkit-box-flex-group: 2;
147 -moz-box-flex-group: 2;
147 -moz-box-flex-group: 2;
148 box-flex-group: 2;
148 box-flex-group: 2;
149 }
149 }
150
150
151 .hbox.start,
151 .hbox.start,
152 .vbox.start,
152 .vbox.start,
153 .start {
153 .start {
154 /* Old browsers */
154 /* Old browsers */
155 -webkit-box-pack: start;
155 -webkit-box-pack: start;
156 -moz-box-pack: start;
156 -moz-box-pack: start;
157 box-pack: start;
157 box-pack: start;
158
158
159 /* Modern browsers */
159 /* Modern browsers */
160 justify-content: flex-start;
160 justify-content: flex-start;
161 }
161 }
162
162
163 .hbox.end,
163 .hbox.end,
164 .vbox.end,
164 .vbox.end,
165 .end {
165 .end {
166 /* Old browsers */
166 /* Old browsers */
167 -webkit-box-pack: end;
167 -webkit-box-pack: end;
168 -moz-box-pack: end;
168 -moz-box-pack: end;
169 box-pack: end;
169 box-pack: end;
170
170
171 /* Modern browsers */
171 /* Modern browsers */
172 justify-content: flex-end;
172 justify-content: flex-end;
173 }
173 }
174
174
175 .hbox.center,
175 .hbox.center,
176 .vbox.center,
176 .vbox.center,
177 .center {
177 .center {
178 /* Old browsers */
178 /* Old browsers */
179 -webkit-box-pack: center;
179 -webkit-box-pack: center;
180 -moz-box-pack: center;
180 -moz-box-pack: center;
181 box-pack: center;
181 box-pack: center;
182
182
183 /* Modern browsers */
183 /* Modern browsers */
184 justify-content: center;
184 justify-content: center;
185 }
185 }
186
186
187 .hbox.baseline,
188 .vbox.baseline,
189 .baseline {
190 /* Old browsers */
191 -webkit-box-pack: baseline;
192 -moz-box-pack: baseline;
193 box-pack: baseline;
194
195 /* Modern browsers */
196 justify-content: baseline;
197 }
198
199 .hbox.stretch,
200 .vbox.stretch,
201 .stretch {
202 /* Old browsers */
203 -webkit-box-pack: stretch;
204 -moz-box-pack: stretch;
205 box-pack: stretch;
206
207 /* Modern browsers */
208 justify-content: stretch;
209 }
210
187 .hbox.align-start,
211 .hbox.align-start,
188 .vbox.align-start,
212 .vbox.align-start,
189 .align-start {
213 .align-start {
190 /* Old browsers */
214 /* Old browsers */
191 -webkit-box-align: start;
215 -webkit-box-align: start;
192 -moz-box-align: start;
216 -moz-box-align: start;
193 box-align: start;
217 box-align: start;
194
218
195 /* Modern browsers */
219 /* Modern browsers */
196 align-items: flex-start;
220 align-items: flex-start;
197 }
221 }
198
222
199 .hbox.align-end,
223 .hbox.align-end,
200 .vbox.align-end,
224 .vbox.align-end,
201 .align-end {
225 .align-end {
202 /* Old browsers */
226 /* Old browsers */
203 -webkit-box-align: end;
227 -webkit-box-align: end;
204 -moz-box-align: end;
228 -moz-box-align: end;
205 box-align: end;
229 box-align: end;
206
230
207 /* Modern browsers */
231 /* Modern browsers */
208 align-items: flex-end;
232 align-items: flex-end;
209 }
233 }
210
234
211 .hbox.align-center,
235 .hbox.align-center,
212 .vbox.align-center,
236 .vbox.align-center,
213 .align-center {
237 .align-center {
214 /* Old browsers */
238 /* Old browsers */
215 -webkit-box-align: center;
239 -webkit-box-align: center;
216 -moz-box-align: center;
240 -moz-box-align: center;
217 box-align: center;
241 box-align: center;
218
242
219 /* Modern browsers */
243 /* Modern browsers */
220 align-items: center;
244 align-items: center;
221 }
245 }
246
247 .hbox.align-baseline,
248 .vbox.align-baseline,
249 .align-baseline {
250 /* Old browsers */
251 -webkit-box-align: baseline;
252 -moz-box-align: baseline;
253 box-align: baseline;
254
255 /* Modern browsers */
256 align-items: baseline;
257 }
258
259 .hbox.align-stretch,
260 .vbox.align-stretch,
261 .align-stretch {
262 /* Old browsers */
263 -webkit-box-align: stretch;
264 -moz-box-align: stretch;
265 box-align: stretch;
266
267 /* Modern browsers */
268 align-items: stretch;
269 }
@@ -1,1780 +1,1780 b''
1 /*!
1 /*!
2 *
2 *
3 * IPython base
3 * IPython base
4 *
4 *
5 */
5 */
6 .modal.fade .modal-dialog {
6 .modal.fade .modal-dialog {
7 -webkit-transform: translate(0, 0);
7 -webkit-transform: translate(0, 0);
8 -ms-transform: translate(0, 0);
8 -ms-transform: translate(0, 0);
9 transform: translate(0, 0);
9 transform: translate(0, 0);
10 }
10 }
11 code {
11 code {
12 color: #000000;
12 color: #000000;
13 }
13 }
14 pre {
14 pre {
15 font-size: inherit;
15 font-size: inherit;
16 line-height: inherit;
16 line-height: inherit;
17 }
17 }
18 label {
18 label {
19 font-weight: normal;
19 font-weight: normal;
20 }
20 }
21 .border-box-sizing {
21 .border-box-sizing {
22 box-sizing: border-box;
22 box-sizing: border-box;
23 -moz-box-sizing: border-box;
23 -moz-box-sizing: border-box;
24 -webkit-box-sizing: border-box;
24 -webkit-box-sizing: border-box;
25 }
25 }
26 .corner-all {
26 .corner-all {
27 border-radius: 4px;
27 border-radius: 4px;
28 }
28 }
29 .no-padding {
29 .no-padding {
30 padding: 0px;
30 padding: 0px;
31 }
31 }
32 /* Flexible box model classes */
32 /* Flexible box model classes */
33 /* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
33 /* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
34 /* This file is a compatability layer. It allows the usage of flexible box
34 /* This file is a compatability layer. It allows the usage of flexible box
35 model layouts accross multiple browsers, including older browsers. The newest,
35 model layouts accross multiple browsers, including older browsers. The newest,
36 universal implementation of the flexible box model is used when available (see
36 universal implementation of the flexible box model is used when available (see
37 `Modern browsers` comments below). Browsers that are known to implement this
37 `Modern browsers` comments below). Browsers that are known to implement this
38 new spec completely include:
38 new spec completely include:
39
39
40 Firefox 28.0+
40 Firefox 28.0+
41 Chrome 29.0+
41 Chrome 29.0+
42 Internet Explorer 11+
42 Internet Explorer 11+
43 Opera 17.0+
43 Opera 17.0+
44
44
45 Browsers not listed, including Safari, are supported via the styling under the
45 Browsers not listed, including Safari, are supported via the styling under the
46 `Old browsers` comments below.
46 `Old browsers` comments below.
47 */
47 */
48 .hbox {
48 .hbox {
49 /* Old browsers */
49 /* Old browsers */
50 display: -webkit-box;
50 display: -webkit-box;
51 -webkit-box-orient: horizontal;
51 -webkit-box-orient: horizontal;
52 -webkit-box-align: stretch;
52 -webkit-box-align: stretch;
53 display: -moz-box;
53 display: -moz-box;
54 -moz-box-orient: horizontal;
54 -moz-box-orient: horizontal;
55 -moz-box-align: stretch;
55 -moz-box-align: stretch;
56 display: box;
56 display: box;
57 box-orient: horizontal;
57 box-orient: horizontal;
58 box-align: stretch;
58 box-align: stretch;
59 /* Modern browsers */
59 /* Modern browsers */
60 display: flex;
60 display: flex;
61 flex-direction: row;
61 flex-direction: row;
62 align-items: stretch;
62 align-items: stretch;
63 }
63 }
64 .hbox > * {
64 .hbox > * {
65 /* Old browsers */
65 /* Old browsers */
66 -webkit-box-flex: 0;
66 -webkit-box-flex: 0;
67 -moz-box-flex: 0;
67 -moz-box-flex: 0;
68 box-flex: 0;
68 box-flex: 0;
69 /* Modern browsers */
69 /* Modern browsers */
70 flex: none;
70 flex: none;
71 }
71 }
72 .vbox {
72 .vbox {
73 /* Old browsers */
73 /* Old browsers */
74 display: -webkit-box;
74 display: -webkit-box;
75 -webkit-box-orient: vertical;
75 -webkit-box-orient: vertical;
76 -webkit-box-align: stretch;
76 -webkit-box-align: stretch;
77 display: -moz-box;
77 display: -moz-box;
78 -moz-box-orient: vertical;
78 -moz-box-orient: vertical;
79 -moz-box-align: stretch;
79 -moz-box-align: stretch;
80 display: box;
80 display: box;
81 box-orient: vertical;
81 box-orient: vertical;
82 box-align: stretch;
82 box-align: stretch;
83 /* Modern browsers */
83 /* Modern browsers */
84 display: flex;
84 display: flex;
85 flex-direction: column;
85 flex-direction: column;
86 align-items: stretch;
86 align-items: stretch;
87 }
87 }
88 .vbox > * {
88 .vbox > * {
89 /* Old browsers */
89 /* Old browsers */
90 -webkit-box-flex: 0;
90 -webkit-box-flex: 0;
91 -moz-box-flex: 0;
91 -moz-box-flex: 0;
92 box-flex: 0;
92 box-flex: 0;
93 /* Modern browsers */
93 /* Modern browsers */
94 flex: none;
94 flex: none;
95 }
95 }
96 .hbox.reverse,
96 .hbox.reverse,
97 .vbox.reverse,
97 .vbox.reverse,
98 .reverse {
98 .reverse {
99 /* Old browsers */
99 /* Old browsers */
100 -webkit-box-direction: reverse;
100 -webkit-box-direction: reverse;
101 -moz-box-direction: reverse;
101 -moz-box-direction: reverse;
102 box-direction: reverse;
102 box-direction: reverse;
103 /* Modern browsers */
103 /* Modern browsers */
104 flex-direction: row-reverse;
104 flex-direction: row-reverse;
105 }
105 }
106 .hbox.box-flex0,
106 .hbox.box-flex0,
107 .vbox.box-flex0,
107 .vbox.box-flex0,
108 .box-flex0 {
108 .box-flex0 {
109 /* Old browsers */
109 /* Old browsers */
110 -webkit-box-flex: 0;
110 -webkit-box-flex: 0;
111 -moz-box-flex: 0;
111 -moz-box-flex: 0;
112 box-flex: 0;
112 box-flex: 0;
113 /* Modern browsers */
113 /* Modern browsers */
114 flex: none;
114 flex: none;
115 width: auto;
115 width: auto;
116 }
116 }
117 .hbox.box-flex1,
117 .hbox.box-flex1,
118 .vbox.box-flex1,
118 .vbox.box-flex1,
119 .box-flex1 {
119 .box-flex1 {
120 /* Old browsers */
120 /* Old browsers */
121 -webkit-box-flex: 1;
121 -webkit-box-flex: 1;
122 -moz-box-flex: 1;
122 -moz-box-flex: 1;
123 box-flex: 1;
123 box-flex: 1;
124 /* Modern browsers */
124 /* Modern browsers */
125 flex: 1;
125 flex: 1;
126 }
126 }
127 .hbox.box-flex,
127 .hbox.box-flex,
128 .vbox.box-flex,
128 .vbox.box-flex,
129 .box-flex {
129 .box-flex {
130 /* Old browsers */
130 /* Old browsers */
131 /* Old browsers */
131 /* Old browsers */
132 -webkit-box-flex: 1;
132 -webkit-box-flex: 1;
133 -moz-box-flex: 1;
133 -moz-box-flex: 1;
134 box-flex: 1;
134 box-flex: 1;
135 /* Modern browsers */
135 /* Modern browsers */
136 flex: 1;
136 flex: 1;
137 }
137 }
138 .hbox.box-flex2,
138 .hbox.box-flex2,
139 .vbox.box-flex2,
139 .vbox.box-flex2,
140 .box-flex2 {
140 .box-flex2 {
141 /* Old browsers */
141 /* Old browsers */
142 -webkit-box-flex: 2;
142 -webkit-box-flex: 2;
143 -moz-box-flex: 2;
143 -moz-box-flex: 2;
144 box-flex: 2;
144 box-flex: 2;
145 /* Modern browsers */
145 /* Modern browsers */
146 flex: 2;
146 flex: 2;
147 }
147 }
148 .box-group1 {
148 .box-group1 {
149 /* Deprecated */
149 /* Deprecated */
150 -webkit-box-flex-group: 1;
150 -webkit-box-flex-group: 1;
151 -moz-box-flex-group: 1;
151 -moz-box-flex-group: 1;
152 box-flex-group: 1;
152 box-flex-group: 1;
153 }
153 }
154 .box-group2 {
154 .box-group2 {
155 /* Deprecated */
155 /* Deprecated */
156 -webkit-box-flex-group: 2;
156 -webkit-box-flex-group: 2;
157 -moz-box-flex-group: 2;
157 -moz-box-flex-group: 2;
158 box-flex-group: 2;
158 box-flex-group: 2;
159 }
159 }
160 .hbox.start,
160 .hbox.start,
161 .vbox.start,
161 .vbox.start,
162 .start {
162 .start {
163 /* Old browsers */
163 /* Old browsers */
164 -webkit-box-pack: start;
164 -webkit-box-pack: start;
165 -moz-box-pack: start;
165 -moz-box-pack: start;
166 box-pack: start;
166 box-pack: start;
167 /* Modern browsers */
167 /* Modern browsers */
168 justify-content: flex-start;
168 justify-content: flex-start;
169 }
169 }
170 .hbox.end,
170 .hbox.end,
171 .vbox.end,
171 .vbox.end,
172 .end {
172 .end {
173 /* Old browsers */
173 /* Old browsers */
174 -webkit-box-pack: end;
174 -webkit-box-pack: end;
175 -moz-box-pack: end;
175 -moz-box-pack: end;
176 box-pack: end;
176 box-pack: end;
177 /* Modern browsers */
177 /* Modern browsers */
178 justify-content: flex-end;
178 justify-content: flex-end;
179 }
179 }
180 .hbox.center,
180 .hbox.center,
181 .vbox.center,
181 .vbox.center,
182 .center {
182 .center {
183 /* Old browsers */
183 /* Old browsers */
184 -webkit-box-pack: center;
184 -webkit-box-pack: center;
185 -moz-box-pack: center;
185 -moz-box-pack: center;
186 box-pack: center;
186 box-pack: center;
187 /* Modern browsers */
187 /* Modern browsers */
188 justify-content: center;
188 justify-content: center;
189 }
189 }
190 .hbox.align-start,
190 .hbox.align-start,
191 .vbox.align-start,
191 .vbox.align-start,
192 .align-start {
192 .align-start {
193 /* Old browsers */
193 /* Old browsers */
194 -webkit-box-align: start;
194 -webkit-box-align: start;
195 -moz-box-align: start;
195 -moz-box-align: start;
196 box-align: start;
196 box-align: start;
197 /* Modern browsers */
197 /* Modern browsers */
198 align-items: flex-start;
198 align-items: flex-start;
199 }
199 }
200 .hbox.align-end,
200 .hbox.align-end,
201 .vbox.align-end,
201 .vbox.align-end,
202 .align-end {
202 .align-end {
203 /* Old browsers */
203 /* Old browsers */
204 -webkit-box-align: end;
204 -webkit-box-align: end;
205 -moz-box-align: end;
205 -moz-box-align: end;
206 box-align: end;
206 box-align: end;
207 /* Modern browsers */
207 /* Modern browsers */
208 align-items: flex-end;
208 align-items: flex-end;
209 }
209 }
210 .hbox.align-center,
210 .hbox.align-center,
211 .vbox.align-center,
211 .vbox.align-center,
212 .align-center {
212 .align-center {
213 /* Old browsers */
213 /* Old browsers */
214 -webkit-box-align: center;
214 -webkit-box-align: center;
215 -moz-box-align: center;
215 -moz-box-align: center;
216 box-align: center;
216 box-align: center;
217 /* Modern browsers */
217 /* Modern browsers */
218 align-items: center;
218 align-items: center;
219 }
219 }
220 div.error {
220 div.error {
221 margin: 2em;
221 margin: 2em;
222 text-align: center;
222 text-align: center;
223 }
223 }
224 div.error > h1 {
224 div.error > h1 {
225 font-size: 500%;
225 font-size: 500%;
226 line-height: normal;
226 line-height: normal;
227 }
227 }
228 div.error > p {
228 div.error > p {
229 font-size: 200%;
229 font-size: 200%;
230 line-height: normal;
230 line-height: normal;
231 }
231 }
232 div.traceback-wrapper {
232 div.traceback-wrapper {
233 text-align: left;
233 text-align: left;
234 max-width: 800px;
234 max-width: 800px;
235 margin: auto;
235 margin: auto;
236 }
236 }
237 /*!
237 /*!
238 *
238 *
239 * IPython notebook
239 * IPython notebook
240 *
240 *
241 */
241 */
242 /* CSS font colors for translated ANSI colors. */
242 /* CSS font colors for translated ANSI colors. */
243 .ansibold {
243 .ansibold {
244 font-weight: bold;
244 font-weight: bold;
245 }
245 }
246 /* use dark versions for foreground, to improve visibility */
246 /* use dark versions for foreground, to improve visibility */
247 .ansiblack {
247 .ansiblack {
248 color: black;
248 color: black;
249 }
249 }
250 .ansired {
250 .ansired {
251 color: darkred;
251 color: darkred;
252 }
252 }
253 .ansigreen {
253 .ansigreen {
254 color: darkgreen;
254 color: darkgreen;
255 }
255 }
256 .ansiyellow {
256 .ansiyellow {
257 color: brown;
257 color: brown;
258 }
258 }
259 .ansiblue {
259 .ansiblue {
260 color: darkblue;
260 color: darkblue;
261 }
261 }
262 .ansipurple {
262 .ansipurple {
263 color: darkviolet;
263 color: darkviolet;
264 }
264 }
265 .ansicyan {
265 .ansicyan {
266 color: steelblue;
266 color: steelblue;
267 }
267 }
268 .ansigray {
268 .ansigray {
269 color: gray;
269 color: gray;
270 }
270 }
271 /* and light for background, for the same reason */
271 /* and light for background, for the same reason */
272 .ansibgblack {
272 .ansibgblack {
273 background-color: black;
273 background-color: black;
274 }
274 }
275 .ansibgred {
275 .ansibgred {
276 background-color: red;
276 background-color: red;
277 }
277 }
278 .ansibggreen {
278 .ansibggreen {
279 background-color: green;
279 background-color: green;
280 }
280 }
281 .ansibgyellow {
281 .ansibgyellow {
282 background-color: yellow;
282 background-color: yellow;
283 }
283 }
284 .ansibgblue {
284 .ansibgblue {
285 background-color: blue;
285 background-color: blue;
286 }
286 }
287 .ansibgpurple {
287 .ansibgpurple {
288 background-color: magenta;
288 background-color: magenta;
289 }
289 }
290 .ansibgcyan {
290 .ansibgcyan {
291 background-color: cyan;
291 background-color: cyan;
292 }
292 }
293 .ansibggray {
293 .ansibggray {
294 background-color: gray;
294 background-color: gray;
295 }
295 }
296 div.cell {
296 div.cell {
297 border: 1px solid transparent;
297 border: 1px solid transparent;
298 /* Old browsers */
298 /* Old browsers */
299 display: -webkit-box;
299 display: -webkit-box;
300 -webkit-box-orient: vertical;
300 -webkit-box-orient: vertical;
301 -webkit-box-align: stretch;
301 -webkit-box-align: stretch;
302 display: -moz-box;
302 display: -moz-box;
303 -moz-box-orient: vertical;
303 -moz-box-orient: vertical;
304 -moz-box-align: stretch;
304 -moz-box-align: stretch;
305 display: box;
305 display: box;
306 box-orient: vertical;
306 box-orient: vertical;
307 box-align: stretch;
307 box-align: stretch;
308 /* Modern browsers */
308 /* Modern browsers */
309 display: flex;
309 display: flex;
310 flex-direction: column;
310 flex-direction: column;
311 align-items: stretch;
311 align-items: stretch;
312 /* Old browsers */
312 /* Old browsers */
313 -webkit-box-flex: 0;
313 -webkit-box-flex: 0;
314 -moz-box-flex: 0;
314 -moz-box-flex: 0;
315 box-flex: 0;
315 box-flex: 0;
316 /* Modern browsers */
316 /* Modern browsers */
317 flex: none;
317 flex: none;
318 border-radius: 4px;
318 border-radius: 4px;
319 box-sizing: border-box;
319 box-sizing: border-box;
320 -moz-box-sizing: border-box;
320 -moz-box-sizing: border-box;
321 -webkit-box-sizing: border-box;
321 -webkit-box-sizing: border-box;
322 border-width: thin;
322 border-width: thin;
323 border-style: solid;
323 border-style: solid;
324 width: 100%;
324 width: 100%;
325 padding: 5px 5px 5px 0px;
325 padding: 5px 5px 5px 0px;
326 /* This acts as a spacer between cells, that is outside the border */
326 /* This acts as a spacer between cells, that is outside the border */
327 margin: 0px;
327 margin: 0px;
328 outline: none;
328 outline: none;
329 }
329 }
330 div.cell.selected {
330 div.cell.selected {
331 border-color: #ababab;
331 border-color: #ababab;
332 }
332 }
333 div.cell.edit_mode {
333 div.cell.edit_mode {
334 border-color: green;
334 border-color: green;
335 }
335 }
336 div.prompt {
336 div.prompt {
337 /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
337 /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
338 min-width: 15ex;
338 min-width: 15ex;
339 /* This padding is tuned to match the padding on the CodeMirror editor. */
339 /* This padding is tuned to match the padding on the CodeMirror editor. */
340 padding: 0.4em;
340 padding: 0.4em;
341 margin: 0px;
341 margin: 0px;
342 font-family: monospace;
342 font-family: monospace;
343 text-align: right;
343 text-align: right;
344 /* This has to match that of the the CodeMirror class line-height below */
344 /* This has to match that of the the CodeMirror class line-height below */
345 line-height: 1.21429em;
345 line-height: 1.21429em;
346 }
346 }
347 @media (max-width: 480px) {
347 @media (max-width: 480px) {
348 div.prompt {
348 div.prompt {
349 text-align: left;
349 text-align: left;
350 }
350 }
351 }
351 }
352 div.inner_cell {
352 div.inner_cell {
353 /* Old browsers */
353 /* Old browsers */
354 display: -webkit-box;
354 display: -webkit-box;
355 -webkit-box-orient: vertical;
355 -webkit-box-orient: vertical;
356 -webkit-box-align: stretch;
356 -webkit-box-align: stretch;
357 display: -moz-box;
357 display: -moz-box;
358 -moz-box-orient: vertical;
358 -moz-box-orient: vertical;
359 -moz-box-align: stretch;
359 -moz-box-align: stretch;
360 display: box;
360 display: box;
361 box-orient: vertical;
361 box-orient: vertical;
362 box-align: stretch;
362 box-align: stretch;
363 /* Modern browsers */
363 /* Modern browsers */
364 display: flex;
364 display: flex;
365 flex-direction: column;
365 flex-direction: column;
366 align-items: stretch;
366 align-items: stretch;
367 /* Old browsers */
367 /* Old browsers */
368 -webkit-box-flex: 0;
368 -webkit-box-flex: 0;
369 -moz-box-flex: 0;
369 -moz-box-flex: 0;
370 box-flex: 0;
370 box-flex: 0;
371 /* Modern browsers */
371 /* Modern browsers */
372 flex: none;
372 flex: none;
373 /* Old browsers */
373 /* Old browsers */
374 -webkit-box-flex: 1;
374 -webkit-box-flex: 1;
375 -moz-box-flex: 1;
375 -moz-box-flex: 1;
376 box-flex: 1;
376 box-flex: 1;
377 /* Modern browsers */
377 /* Modern browsers */
378 flex: 1;
378 flex: 1;
379 }
379 }
380 /* input_area and input_prompt must match in top border and margin for alignment */
380 /* input_area and input_prompt must match in top border and margin for alignment */
381 div.input_area {
381 div.input_area {
382 border: 1px solid #cfcfcf;
382 border: 1px solid #cfcfcf;
383 border-radius: 4px;
383 border-radius: 4px;
384 background: #f7f7f7;
384 background: #f7f7f7;
385 line-height: 1.21429em;
385 line-height: 1.21429em;
386 }
386 }
387 /* This is needed so that empty prompt areas can collapse to zero height when there
387 /* This is needed so that empty prompt areas can collapse to zero height when there
388 is no content in the output_subarea and the prompt. The main purpose of this is
388 is no content in the output_subarea and the prompt. The main purpose of this is
389 to make sure that empty JavaScript output_subareas have no height. */
389 to make sure that empty JavaScript output_subareas have no height. */
390 div.prompt:empty {
390 div.prompt:empty {
391 padding-top: 0;
391 padding-top: 0;
392 padding-bottom: 0;
392 padding-bottom: 0;
393 }
393 }
394 /* any special styling for code cells that are currently running goes here */
394 /* any special styling for code cells that are currently running goes here */
395 div.input {
395 div.input {
396 page-break-inside: avoid;
396 page-break-inside: avoid;
397 /* Old browsers */
397 /* Old browsers */
398 display: -webkit-box;
398 display: -webkit-box;
399 -webkit-box-orient: horizontal;
399 -webkit-box-orient: horizontal;
400 -webkit-box-align: stretch;
400 -webkit-box-align: stretch;
401 display: -moz-box;
401 display: -moz-box;
402 -moz-box-orient: horizontal;
402 -moz-box-orient: horizontal;
403 -moz-box-align: stretch;
403 -moz-box-align: stretch;
404 display: box;
404 display: box;
405 box-orient: horizontal;
405 box-orient: horizontal;
406 box-align: stretch;
406 box-align: stretch;
407 /* Modern browsers */
407 /* Modern browsers */
408 display: flex;
408 display: flex;
409 flex-direction: row;
409 flex-direction: row;
410 align-items: stretch;
410 align-items: stretch;
411 /* Old browsers */
411 /* Old browsers */
412 -webkit-box-flex: 0;
412 -webkit-box-flex: 0;
413 -moz-box-flex: 0;
413 -moz-box-flex: 0;
414 box-flex: 0;
414 box-flex: 0;
415 /* Modern browsers */
415 /* Modern browsers */
416 flex: none;
416 flex: none;
417 }
417 }
418 @media (max-width: 480px) {
418 @media (max-width: 480px) {
419 div.input {
419 div.input {
420 /* Old browsers */
420 /* Old browsers */
421 display: -webkit-box;
421 display: -webkit-box;
422 -webkit-box-orient: vertical;
422 -webkit-box-orient: vertical;
423 -webkit-box-align: stretch;
423 -webkit-box-align: stretch;
424 display: -moz-box;
424 display: -moz-box;
425 -moz-box-orient: vertical;
425 -moz-box-orient: vertical;
426 -moz-box-align: stretch;
426 -moz-box-align: stretch;
427 display: box;
427 display: box;
428 box-orient: vertical;
428 box-orient: vertical;
429 box-align: stretch;
429 box-align: stretch;
430 /* Modern browsers */
430 /* Modern browsers */
431 display: flex;
431 display: flex;
432 flex-direction: column;
432 flex-direction: column;
433 align-items: stretch;
433 align-items: stretch;
434 /* Old browsers */
434 /* Old browsers */
435 -webkit-box-flex: 0;
435 -webkit-box-flex: 0;
436 -moz-box-flex: 0;
436 -moz-box-flex: 0;
437 box-flex: 0;
437 box-flex: 0;
438 /* Modern browsers */
438 /* Modern browsers */
439 flex: none;
439 flex: none;
440 }
440 }
441 }
441 }
442 /* input_area and input_prompt must match in top border and margin for alignment */
442 /* input_area and input_prompt must match in top border and margin for alignment */
443 div.input_prompt {
443 div.input_prompt {
444 color: #000080;
444 color: #000080;
445 border-top: 1px solid transparent;
445 border-top: 1px solid transparent;
446 }
446 }
447 div.input_area > div.highlight {
447 div.input_area > div.highlight {
448 margin: 0.4em;
448 margin: 0.4em;
449 border: none;
449 border: none;
450 padding: 0px;
450 padding: 0px;
451 background-color: transparent;
451 background-color: transparent;
452 }
452 }
453 div.input_area > div.highlight > pre {
453 div.input_area > div.highlight > pre {
454 margin: 0px;
454 margin: 0px;
455 border: none;
455 border: none;
456 padding: 0px;
456 padding: 0px;
457 background-color: transparent;
457 background-color: transparent;
458 }
458 }
459 /* The following gets added to the <head> if it is detected that the user has a
459 /* The following gets added to the <head> if it is detected that the user has a
460 * monospace font with inconsistent normal/bold/italic height. See
460 * monospace font with inconsistent normal/bold/italic height. See
461 * notebookmain.js. Such fonts will have keywords vertically offset with
461 * notebookmain.js. Such fonts will have keywords vertically offset with
462 * respect to the rest of the text. The user should select a better font.
462 * respect to the rest of the text. The user should select a better font.
463 * See: https://github.com/ipython/ipython/issues/1503
463 * See: https://github.com/ipython/ipython/issues/1503
464 *
464 *
465 * .CodeMirror span {
465 * .CodeMirror span {
466 * vertical-align: bottom;
466 * vertical-align: bottom;
467 * }
467 * }
468 */
468 */
469 .CodeMirror {
469 .CodeMirror {
470 line-height: 1.21429em;
470 line-height: 1.21429em;
471 /* Changed from 1em to our global default */
471 /* Changed from 1em to our global default */
472 height: auto;
472 height: auto;
473 /* Changed to auto to autogrow */
473 /* Changed to auto to autogrow */
474 background: none;
474 background: none;
475 /* Changed from white to allow our bg to show through */
475 /* Changed from white to allow our bg to show through */
476 }
476 }
477 .CodeMirror-scroll {
477 .CodeMirror-scroll {
478 /* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
478 /* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
479 /* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
479 /* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
480 overflow-y: hidden;
480 overflow-y: hidden;
481 overflow-x: auto;
481 overflow-x: auto;
482 }
482 }
483 .CodeMirror-lines {
483 .CodeMirror-lines {
484 /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
484 /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
485 /* we have set a different line-height and want this to scale with that. */
485 /* we have set a different line-height and want this to scale with that. */
486 padding: 0.4em;
486 padding: 0.4em;
487 }
487 }
488 .CodeMirror-linenumber {
488 .CodeMirror-linenumber {
489 padding: 0 8px 0 4px;
489 padding: 0 8px 0 4px;
490 }
490 }
491 .CodeMirror-gutters {
491 .CodeMirror-gutters {
492 border-bottom-left-radius: 4px;
492 border-bottom-left-radius: 4px;
493 border-top-left-radius: 4px;
493 border-top-left-radius: 4px;
494 }
494 }
495 .CodeMirror pre {
495 .CodeMirror pre {
496 /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
496 /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
497 /* .CodeMirror-lines */
497 /* .CodeMirror-lines */
498 padding: 0;
498 padding: 0;
499 border: 0;
499 border: 0;
500 border-radius: 0;
500 border-radius: 0;
501 }
501 }
502 .CodeMirror-vscrollbar,
502 .CodeMirror-vscrollbar,
503 .CodeMirror-hscrollbar {
503 .CodeMirror-hscrollbar {
504 display: none !important;
504 display: none !important;
505 }
505 }
506 /*
506 /*
507
507
508 Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
508 Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
509 Adapted from GitHub theme
509 Adapted from GitHub theme
510
510
511 */
511 */
512 pre code {
512 pre code {
513 display: block;
513 display: block;
514 padding: 0.5em;
514 padding: 0.5em;
515 }
515 }
516 .highlight-base,
516 .highlight-base,
517 pre code,
517 pre code,
518 pre .subst,
518 pre .subst,
519 pre .tag .title,
519 pre .tag .title,
520 pre .lisp .title,
520 pre .lisp .title,
521 pre .clojure .built_in,
521 pre .clojure .built_in,
522 pre .nginx .title {
522 pre .nginx .title {
523 color: black;
523 color: black;
524 }
524 }
525 .highlight-string,
525 .highlight-string,
526 pre .string,
526 pre .string,
527 pre .constant,
527 pre .constant,
528 pre .parent,
528 pre .parent,
529 pre .tag .value,
529 pre .tag .value,
530 pre .rules .value,
530 pre .rules .value,
531 pre .rules .value .number,
531 pre .rules .value .number,
532 pre .preprocessor,
532 pre .preprocessor,
533 pre .ruby .symbol,
533 pre .ruby .symbol,
534 pre .ruby .symbol .string,
534 pre .ruby .symbol .string,
535 pre .aggregate,
535 pre .aggregate,
536 pre .template_tag,
536 pre .template_tag,
537 pre .django .variable,
537 pre .django .variable,
538 pre .smalltalk .class,
538 pre .smalltalk .class,
539 pre .addition,
539 pre .addition,
540 pre .flow,
540 pre .flow,
541 pre .stream,
541 pre .stream,
542 pre .bash .variable,
542 pre .bash .variable,
543 pre .apache .tag,
543 pre .apache .tag,
544 pre .apache .cbracket,
544 pre .apache .cbracket,
545 pre .tex .command,
545 pre .tex .command,
546 pre .tex .special,
546 pre .tex .special,
547 pre .erlang_repl .function_or_atom,
547 pre .erlang_repl .function_or_atom,
548 pre .markdown .header {
548 pre .markdown .header {
549 color: #BA2121;
549 color: #BA2121;
550 }
550 }
551 .highlight-comment,
551 .highlight-comment,
552 pre .comment,
552 pre .comment,
553 pre .annotation,
553 pre .annotation,
554 pre .template_comment,
554 pre .template_comment,
555 pre .diff .header,
555 pre .diff .header,
556 pre .chunk,
556 pre .chunk,
557 pre .markdown .blockquote {
557 pre .markdown .blockquote {
558 color: #408080;
558 color: #408080;
559 font-style: italic;
559 font-style: italic;
560 }
560 }
561 .highlight-number,
561 .highlight-number,
562 pre .number,
562 pre .number,
563 pre .date,
563 pre .date,
564 pre .regexp,
564 pre .regexp,
565 pre .literal,
565 pre .literal,
566 pre .smalltalk .symbol,
566 pre .smalltalk .symbol,
567 pre .smalltalk .char,
567 pre .smalltalk .char,
568 pre .go .constant,
568 pre .go .constant,
569 pre .change,
569 pre .change,
570 pre .markdown .bullet,
570 pre .markdown .bullet,
571 pre .markdown .link_url {
571 pre .markdown .link_url {
572 color: #080;
572 color: #080;
573 }
573 }
574 pre .label,
574 pre .label,
575 pre .javadoc,
575 pre .javadoc,
576 pre .ruby .string,
576 pre .ruby .string,
577 pre .decorator,
577 pre .decorator,
578 pre .filter .argument,
578 pre .filter .argument,
579 pre .localvars,
579 pre .localvars,
580 pre .array,
580 pre .array,
581 pre .attr_selector,
581 pre .attr_selector,
582 pre .important,
582 pre .important,
583 pre .pseudo,
583 pre .pseudo,
584 pre .pi,
584 pre .pi,
585 pre .doctype,
585 pre .doctype,
586 pre .deletion,
586 pre .deletion,
587 pre .envvar,
587 pre .envvar,
588 pre .shebang,
588 pre .shebang,
589 pre .apache .sqbracket,
589 pre .apache .sqbracket,
590 pre .nginx .built_in,
590 pre .nginx .built_in,
591 pre .tex .formula,
591 pre .tex .formula,
592 pre .erlang_repl .reserved,
592 pre .erlang_repl .reserved,
593 pre .prompt,
593 pre .prompt,
594 pre .markdown .link_label,
594 pre .markdown .link_label,
595 pre .vhdl .attribute,
595 pre .vhdl .attribute,
596 pre .clojure .attribute,
596 pre .clojure .attribute,
597 pre .coffeescript .property {
597 pre .coffeescript .property {
598 color: #8888ff;
598 color: #8888ff;
599 }
599 }
600 .highlight-keyword,
600 .highlight-keyword,
601 pre .keyword,
601 pre .keyword,
602 pre .id,
602 pre .id,
603 pre .phpdoc,
603 pre .phpdoc,
604 pre .aggregate,
604 pre .aggregate,
605 pre .css .tag,
605 pre .css .tag,
606 pre .javadoctag,
606 pre .javadoctag,
607 pre .phpdoc,
607 pre .phpdoc,
608 pre .yardoctag,
608 pre .yardoctag,
609 pre .smalltalk .class,
609 pre .smalltalk .class,
610 pre .winutils,
610 pre .winutils,
611 pre .bash .variable,
611 pre .bash .variable,
612 pre .apache .tag,
612 pre .apache .tag,
613 pre .go .typename,
613 pre .go .typename,
614 pre .tex .command,
614 pre .tex .command,
615 pre .markdown .strong,
615 pre .markdown .strong,
616 pre .request,
616 pre .request,
617 pre .status {
617 pre .status {
618 color: #008000;
618 color: #008000;
619 font-weight: bold;
619 font-weight: bold;
620 }
620 }
621 .highlight-builtin,
621 .highlight-builtin,
622 pre .built_in {
622 pre .built_in {
623 color: #008000;
623 color: #008000;
624 }
624 }
625 pre .markdown .emphasis {
625 pre .markdown .emphasis {
626 font-style: italic;
626 font-style: italic;
627 }
627 }
628 pre .nginx .built_in {
628 pre .nginx .built_in {
629 font-weight: normal;
629 font-weight: normal;
630 }
630 }
631 pre .coffeescript .javascript,
631 pre .coffeescript .javascript,
632 pre .javascript .xml,
632 pre .javascript .xml,
633 pre .tex .formula,
633 pre .tex .formula,
634 pre .xml .javascript,
634 pre .xml .javascript,
635 pre .xml .vbscript,
635 pre .xml .vbscript,
636 pre .xml .css,
636 pre .xml .css,
637 pre .xml .cdata {
637 pre .xml .cdata {
638 opacity: 0.5;
638 opacity: 0.5;
639 }
639 }
640 /* apply the same style to codemirror */
640 /* apply the same style to codemirror */
641 .cm-s-ipython span.cm-variable {
641 .cm-s-ipython span.cm-variable {
642 color: black;
642 color: black;
643 }
643 }
644 .cm-s-ipython span.cm-keyword {
644 .cm-s-ipython span.cm-keyword {
645 color: #008000;
645 color: #008000;
646 font-weight: bold;
646 font-weight: bold;
647 }
647 }
648 .cm-s-ipython span.cm-number {
648 .cm-s-ipython span.cm-number {
649 color: #080;
649 color: #080;
650 }
650 }
651 .cm-s-ipython span.cm-comment {
651 .cm-s-ipython span.cm-comment {
652 color: #408080;
652 color: #408080;
653 font-style: italic;
653 font-style: italic;
654 }
654 }
655 .cm-s-ipython span.cm-string {
655 .cm-s-ipython span.cm-string {
656 color: #BA2121;
656 color: #BA2121;
657 }
657 }
658 .cm-s-ipython span.cm-builtin {
658 .cm-s-ipython span.cm-builtin {
659 color: #008000;
659 color: #008000;
660 }
660 }
661 .cm-s-ipython span.cm-error {
661 .cm-s-ipython span.cm-error {
662 color: #f00;
662 color: #f00;
663 }
663 }
664 .cm-s-ipython span.cm-operator {
664 .cm-s-ipython span.cm-operator {
665 color: #AA22FF;
665 color: #AA22FF;
666 font-weight: bold;
666 font-weight: bold;
667 }
667 }
668 .cm-s-ipython span.cm-meta {
668 .cm-s-ipython span.cm-meta {
669 color: #AA22FF;
669 color: #AA22FF;
670 }
670 }
671 .cm-s-ipython span.cm-tab {
671 .cm-s-ipython span.cm-tab {
672 background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
672 background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
673 background-position: right;
673 background-position: right;
674 background-repeat: no-repeat;
674 background-repeat: no-repeat;
675 }
675 }
676 div.output_wrapper {
676 div.output_wrapper {
677 /* this position must be relative to enable descendents to be absolute within it */
677 /* this position must be relative to enable descendents to be absolute within it */
678 position: relative;
678 position: relative;
679 /* Old browsers */
679 /* Old browsers */
680 display: -webkit-box;
680 display: -webkit-box;
681 -webkit-box-orient: vertical;
681 -webkit-box-orient: vertical;
682 -webkit-box-align: stretch;
682 -webkit-box-align: stretch;
683 display: -moz-box;
683 display: -moz-box;
684 -moz-box-orient: vertical;
684 -moz-box-orient: vertical;
685 -moz-box-align: stretch;
685 -moz-box-align: stretch;
686 display: box;
686 display: box;
687 box-orient: vertical;
687 box-orient: vertical;
688 box-align: stretch;
688 box-align: stretch;
689 /* Modern browsers */
689 /* Modern browsers */
690 display: flex;
690 display: flex;
691 flex-direction: column;
691 flex-direction: column;
692 align-items: stretch;
692 align-items: stretch;
693 /* Old browsers */
693 /* Old browsers */
694 -webkit-box-flex: 0;
694 -webkit-box-flex: 0;
695 -moz-box-flex: 0;
695 -moz-box-flex: 0;
696 box-flex: 0;
696 box-flex: 0;
697 /* Modern browsers */
697 /* Modern browsers */
698 flex: none;
698 flex: none;
699 }
699 }
700 /* class for the output area when it should be height-limited */
700 /* class for the output area when it should be height-limited */
701 div.output_scroll {
701 div.output_scroll {
702 /* ideally, this would be max-height, but FF barfs all over that */
702 /* ideally, this would be max-height, but FF barfs all over that */
703 height: 24em;
703 height: 24em;
704 /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
704 /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
705 width: 100%;
705 width: 100%;
706 overflow: auto;
706 overflow: auto;
707 border-radius: 4px;
707 border-radius: 4px;
708 -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
708 -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
709 box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
709 box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
710 display: block;
710 display: block;
711 }
711 }
712 /* output div while it is collapsed */
712 /* output div while it is collapsed */
713 div.output_collapsed {
713 div.output_collapsed {
714 margin: 0px;
714 margin: 0px;
715 padding: 0px;
715 padding: 0px;
716 /* Old browsers */
716 /* Old browsers */
717 display: -webkit-box;
717 display: -webkit-box;
718 -webkit-box-orient: vertical;
718 -webkit-box-orient: vertical;
719 -webkit-box-align: stretch;
719 -webkit-box-align: stretch;
720 display: -moz-box;
720 display: -moz-box;
721 -moz-box-orient: vertical;
721 -moz-box-orient: vertical;
722 -moz-box-align: stretch;
722 -moz-box-align: stretch;
723 display: box;
723 display: box;
724 box-orient: vertical;
724 box-orient: vertical;
725 box-align: stretch;
725 box-align: stretch;
726 /* Modern browsers */
726 /* Modern browsers */
727 display: flex;
727 display: flex;
728 flex-direction: column;
728 flex-direction: column;
729 align-items: stretch;
729 align-items: stretch;
730 /* Old browsers */
730 /* Old browsers */
731 -webkit-box-flex: 0;
731 -webkit-box-flex: 0;
732 -moz-box-flex: 0;
732 -moz-box-flex: 0;
733 box-flex: 0;
733 box-flex: 0;
734 /* Modern browsers */
734 /* Modern browsers */
735 flex: none;
735 flex: none;
736 }
736 }
737 div.out_prompt_overlay {
737 div.out_prompt_overlay {
738 height: 100%;
738 height: 100%;
739 padding: 0px 0.4em;
739 padding: 0px 0.4em;
740 position: absolute;
740 position: absolute;
741 border-radius: 4px;
741 border-radius: 4px;
742 }
742 }
743 div.out_prompt_overlay:hover {
743 div.out_prompt_overlay:hover {
744 /* use inner shadow to get border that is computed the same on WebKit/FF */
744 /* use inner shadow to get border that is computed the same on WebKit/FF */
745 -webkit-box-shadow: inset 0 0 1px #000000;
745 -webkit-box-shadow: inset 0 0 1px #000000;
746 box-shadow: inset 0 0 1px #000000;
746 box-shadow: inset 0 0 1px #000000;
747 background: rgba(240, 240, 240, 0.5);
747 background: rgba(240, 240, 240, 0.5);
748 }
748 }
749 div.output_prompt {
749 div.output_prompt {
750 color: #8b0000;
750 color: #8b0000;
751 }
751 }
752 /* This class is the outer container of all output sections. */
752 /* This class is the outer container of all output sections. */
753 div.output_area {
753 div.output_area {
754 padding: 0px;
754 padding: 0px;
755 page-break-inside: avoid;
755 page-break-inside: avoid;
756 /* Old browsers */
756 /* Old browsers */
757 display: -webkit-box;
757 display: -webkit-box;
758 -webkit-box-orient: horizontal;
758 -webkit-box-orient: horizontal;
759 -webkit-box-align: stretch;
759 -webkit-box-align: stretch;
760 display: -moz-box;
760 display: -moz-box;
761 -moz-box-orient: horizontal;
761 -moz-box-orient: horizontal;
762 -moz-box-align: stretch;
762 -moz-box-align: stretch;
763 display: box;
763 display: box;
764 box-orient: horizontal;
764 box-orient: horizontal;
765 box-align: stretch;
765 box-align: stretch;
766 /* Modern browsers */
766 /* Modern browsers */
767 display: flex;
767 display: flex;
768 flex-direction: row;
768 flex-direction: row;
769 align-items: stretch;
769 align-items: stretch;
770 /* Old browsers */
770 /* Old browsers */
771 -webkit-box-flex: 0;
771 -webkit-box-flex: 0;
772 -moz-box-flex: 0;
772 -moz-box-flex: 0;
773 box-flex: 0;
773 box-flex: 0;
774 /* Modern browsers */
774 /* Modern browsers */
775 flex: none;
775 flex: none;
776 }
776 }
777 div.output_area .MathJax_Display {
777 div.output_area .MathJax_Display {
778 text-align: left !important;
778 text-align: left !important;
779 }
779 }
780 div.output_area .rendered_html table {
780 div.output_area .rendered_html table {
781 margin-left: 0;
781 margin-left: 0;
782 margin-right: 0;
782 margin-right: 0;
783 }
783 }
784 div.output_area .rendered_html img {
784 div.output_area .rendered_html img {
785 margin-left: 0;
785 margin-left: 0;
786 margin-right: 0;
786 margin-right: 0;
787 }
787 }
788 /* This is needed to protect the pre formating from global settings such
788 /* This is needed to protect the pre formating from global settings such
789 as that of bootstrap */
789 as that of bootstrap */
790 .output {
790 .output {
791 /* Old browsers */
791 /* Old browsers */
792 display: -webkit-box;
792 display: -webkit-box;
793 -webkit-box-orient: vertical;
793 -webkit-box-orient: vertical;
794 -webkit-box-align: stretch;
794 -webkit-box-align: stretch;
795 display: -moz-box;
795 display: -moz-box;
796 -moz-box-orient: vertical;
796 -moz-box-orient: vertical;
797 -moz-box-align: stretch;
797 -moz-box-align: stretch;
798 display: box;
798 display: box;
799 box-orient: vertical;
799 box-orient: vertical;
800 box-align: stretch;
800 box-align: stretch;
801 /* Modern browsers */
801 /* Modern browsers */
802 display: flex;
802 display: flex;
803 flex-direction: column;
803 flex-direction: column;
804 align-items: stretch;
804 align-items: stretch;
805 /* Old browsers */
805 /* Old browsers */
806 -webkit-box-flex: 0;
806 -webkit-box-flex: 0;
807 -moz-box-flex: 0;
807 -moz-box-flex: 0;
808 box-flex: 0;
808 box-flex: 0;
809 /* Modern browsers */
809 /* Modern browsers */
810 flex: none;
810 flex: none;
811 }
811 }
812 @media (max-width: 480px) {
812 @media (max-width: 480px) {
813 div.output_area {
813 div.output_area {
814 /* Old browsers */
814 /* Old browsers */
815 display: -webkit-box;
815 display: -webkit-box;
816 -webkit-box-orient: vertical;
816 -webkit-box-orient: vertical;
817 -webkit-box-align: stretch;
817 -webkit-box-align: stretch;
818 display: -moz-box;
818 display: -moz-box;
819 -moz-box-orient: vertical;
819 -moz-box-orient: vertical;
820 -moz-box-align: stretch;
820 -moz-box-align: stretch;
821 display: box;
821 display: box;
822 box-orient: vertical;
822 box-orient: vertical;
823 box-align: stretch;
823 box-align: stretch;
824 /* Modern browsers */
824 /* Modern browsers */
825 display: flex;
825 display: flex;
826 flex-direction: column;
826 flex-direction: column;
827 align-items: stretch;
827 align-items: stretch;
828 /* Old browsers */
828 /* Old browsers */
829 -webkit-box-flex: 0;
829 -webkit-box-flex: 0;
830 -moz-box-flex: 0;
830 -moz-box-flex: 0;
831 box-flex: 0;
831 box-flex: 0;
832 /* Modern browsers */
832 /* Modern browsers */
833 flex: none;
833 flex: none;
834 }
834 }
835 }
835 }
836 div.output_area pre {
836 div.output_area pre {
837 margin: 0;
837 margin: 0;
838 padding: 0;
838 padding: 0;
839 border: 0;
839 border: 0;
840 vertical-align: baseline;
840 vertical-align: baseline;
841 color: #000000;
841 color: #000000;
842 background-color: transparent;
842 background-color: transparent;
843 border-radius: 0;
843 border-radius: 0;
844 }
844 }
845 /* This class is for the output subarea inside the output_area and after
845 /* This class is for the output subarea inside the output_area and after
846 the prompt div. */
846 the prompt div. */
847 div.output_subarea {
847 div.output_subarea {
848 padding: 0.4em 0.4em 0em 0.4em;
848 padding: 0.4em 0.4em 0em 0.4em;
849 /* Old browsers */
849 /* Old browsers */
850 -webkit-box-flex: 1;
850 -webkit-box-flex: 1;
851 -moz-box-flex: 1;
851 -moz-box-flex: 1;
852 box-flex: 1;
852 box-flex: 1;
853 /* Modern browsers */
853 /* Modern browsers */
854 flex: 1;
854 flex: 1;
855 }
855 }
856 /* The rest of the output_* classes are for special styling of the different
856 /* The rest of the output_* classes are for special styling of the different
857 output types */
857 output types */
858 /* all text output has this class: */
858 /* all text output has this class: */
859 div.output_text {
859 div.output_text {
860 text-align: left;
860 text-align: left;
861 color: #000000;
861 color: #000000;
862 /* This has to match that of the the CodeMirror class line-height below */
862 /* This has to match that of the the CodeMirror class line-height below */
863 line-height: 1.21429em;
863 line-height: 1.21429em;
864 }
864 }
865 /* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
865 /* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
866 div.output_stderr {
866 div.output_stderr {
867 background: #fdd;
867 background: #fdd;
868 /* very light red background for stderr */
868 /* very light red background for stderr */
869 }
869 }
870 div.output_latex {
870 div.output_latex {
871 text-align: left;
871 text-align: left;
872 }
872 }
873 /* Empty output_javascript divs should have no height */
873 /* Empty output_javascript divs should have no height */
874 div.output_javascript:empty {
874 div.output_javascript:empty {
875 padding: 0;
875 padding: 0;
876 }
876 }
877 .js-error {
877 .js-error {
878 color: darkred;
878 color: darkred;
879 }
879 }
880 /* raw_input styles */
880 /* raw_input styles */
881 div.raw_input_container {
881 div.raw_input_container {
882 font-family: monospace;
882 font-family: monospace;
883 padding-top: 5px;
883 padding-top: 5px;
884 }
884 }
885 span.raw_input_prompt {
885 span.raw_input_prompt {
886 /* nothing needed here */
886 /* nothing needed here */
887 }
887 }
888 input.raw_input {
888 input.raw_input {
889 font-family: inherit;
889 font-family: inherit;
890 font-size: inherit;
890 font-size: inherit;
891 color: inherit;
891 color: inherit;
892 width: auto;
892 width: auto;
893 /* make sure input baseline aligns with prompt */
893 /* make sure input baseline aligns with prompt */
894 vertical-align: baseline;
894 vertical-align: baseline;
895 /* padding + margin = 0.5em between prompt and cursor */
895 /* padding + margin = 0.5em between prompt and cursor */
896 padding: 0em 0.25em;
896 padding: 0em 0.25em;
897 margin: 0em 0.25em;
897 margin: 0em 0.25em;
898 }
898 }
899 input.raw_input:focus {
899 input.raw_input:focus {
900 box-shadow: none;
900 box-shadow: none;
901 }
901 }
902 p.p-space {
902 p.p-space {
903 margin-bottom: 10px;
903 margin-bottom: 10px;
904 }
904 }
905 .rendered_html {
905 .rendered_html {
906 color: #000000;
906 color: #000000;
907 /* any extras will just be numbers: */
907 /* any extras will just be numbers: */
908 }
908 }
909 .rendered_html em {
909 .rendered_html em {
910 font-style: italic;
910 font-style: italic;
911 }
911 }
912 .rendered_html strong {
912 .rendered_html strong {
913 font-weight: bold;
913 font-weight: bold;
914 }
914 }
915 .rendered_html u {
915 .rendered_html u {
916 text-decoration: underline;
916 text-decoration: underline;
917 }
917 }
918 .rendered_html :link {
918 .rendered_html :link {
919 text-decoration: underline;
919 text-decoration: underline;
920 }
920 }
921 .rendered_html :visited {
921 .rendered_html :visited {
922 text-decoration: underline;
922 text-decoration: underline;
923 }
923 }
924 .rendered_html h1 {
924 .rendered_html h1 {
925 font-size: 185.7%;
925 font-size: 185.7%;
926 margin: 1.08em 0 0 0;
926 margin: 1.08em 0 0 0;
927 font-weight: bold;
927 font-weight: bold;
928 line-height: 1.0;
928 line-height: 1.0;
929 }
929 }
930 .rendered_html h2 {
930 .rendered_html h2 {
931 font-size: 157.1%;
931 font-size: 157.1%;
932 margin: 1.27em 0 0 0;
932 margin: 1.27em 0 0 0;
933 font-weight: bold;
933 font-weight: bold;
934 line-height: 1.0;
934 line-height: 1.0;
935 }
935 }
936 .rendered_html h3 {
936 .rendered_html h3 {
937 font-size: 128.6%;
937 font-size: 128.6%;
938 margin: 1.55em 0 0 0;
938 margin: 1.55em 0 0 0;
939 font-weight: bold;
939 font-weight: bold;
940 line-height: 1.0;
940 line-height: 1.0;
941 }
941 }
942 .rendered_html h4 {
942 .rendered_html h4 {
943 font-size: 100%;
943 font-size: 100%;
944 margin: 2em 0 0 0;
944 margin: 2em 0 0 0;
945 font-weight: bold;
945 font-weight: bold;
946 line-height: 1.0;
946 line-height: 1.0;
947 }
947 }
948 .rendered_html h5 {
948 .rendered_html h5 {
949 font-size: 100%;
949 font-size: 100%;
950 margin: 2em 0 0 0;
950 margin: 2em 0 0 0;
951 font-weight: bold;
951 font-weight: bold;
952 line-height: 1.0;
952 line-height: 1.0;
953 font-style: italic;
953 font-style: italic;
954 }
954 }
955 .rendered_html h6 {
955 .rendered_html h6 {
956 font-size: 100%;
956 font-size: 100%;
957 margin: 2em 0 0 0;
957 margin: 2em 0 0 0;
958 font-weight: bold;
958 font-weight: bold;
959 line-height: 1.0;
959 line-height: 1.0;
960 font-style: italic;
960 font-style: italic;
961 }
961 }
962 .rendered_html h1:first-child {
962 .rendered_html h1:first-child {
963 margin-top: 0.538em;
963 margin-top: 0.538em;
964 }
964 }
965 .rendered_html h2:first-child {
965 .rendered_html h2:first-child {
966 margin-top: 0.636em;
966 margin-top: 0.636em;
967 }
967 }
968 .rendered_html h3:first-child {
968 .rendered_html h3:first-child {
969 margin-top: 0.777em;
969 margin-top: 0.777em;
970 }
970 }
971 .rendered_html h4:first-child {
971 .rendered_html h4:first-child {
972 margin-top: 1em;
972 margin-top: 1em;
973 }
973 }
974 .rendered_html h5:first-child {
974 .rendered_html h5:first-child {
975 margin-top: 1em;
975 margin-top: 1em;
976 }
976 }
977 .rendered_html h6:first-child {
977 .rendered_html h6:first-child {
978 margin-top: 1em;
978 margin-top: 1em;
979 }
979 }
980 .rendered_html ul {
980 .rendered_html ul {
981 list-style: disc;
981 list-style: disc;
982 margin: 0em 2em;
982 margin: 0em 2em;
983 padding-left: 0px;
983 padding-left: 0px;
984 }
984 }
985 .rendered_html ul ul {
985 .rendered_html ul ul {
986 list-style: square;
986 list-style: square;
987 margin: 0em 2em;
987 margin: 0em 2em;
988 }
988 }
989 .rendered_html ul ul ul {
989 .rendered_html ul ul ul {
990 list-style: circle;
990 list-style: circle;
991 margin: 0em 2em;
991 margin: 0em 2em;
992 }
992 }
993 .rendered_html ol {
993 .rendered_html ol {
994 list-style: decimal;
994 list-style: decimal;
995 margin: 0em 2em;
995 margin: 0em 2em;
996 padding-left: 0px;
996 padding-left: 0px;
997 }
997 }
998 .rendered_html ol ol {
998 .rendered_html ol ol {
999 list-style: upper-alpha;
999 list-style: upper-alpha;
1000 margin: 0em 2em;
1000 margin: 0em 2em;
1001 }
1001 }
1002 .rendered_html ol ol ol {
1002 .rendered_html ol ol ol {
1003 list-style: lower-alpha;
1003 list-style: lower-alpha;
1004 margin: 0em 2em;
1004 margin: 0em 2em;
1005 }
1005 }
1006 .rendered_html ol ol ol ol {
1006 .rendered_html ol ol ol ol {
1007 list-style: lower-roman;
1007 list-style: lower-roman;
1008 margin: 0em 2em;
1008 margin: 0em 2em;
1009 }
1009 }
1010 .rendered_html ol ol ol ol ol {
1010 .rendered_html ol ol ol ol ol {
1011 list-style: decimal;
1011 list-style: decimal;
1012 margin: 0em 2em;
1012 margin: 0em 2em;
1013 }
1013 }
1014 .rendered_html * + ul {
1014 .rendered_html * + ul {
1015 margin-top: 1em;
1015 margin-top: 1em;
1016 }
1016 }
1017 .rendered_html * + ol {
1017 .rendered_html * + ol {
1018 margin-top: 1em;
1018 margin-top: 1em;
1019 }
1019 }
1020 .rendered_html hr {
1020 .rendered_html hr {
1021 color: #000000;
1021 color: #000000;
1022 background-color: #000000;
1022 background-color: #000000;
1023 }
1023 }
1024 .rendered_html pre {
1024 .rendered_html pre {
1025 margin: 1em 2em;
1025 margin: 1em 2em;
1026 }
1026 }
1027 .rendered_html pre,
1027 .rendered_html pre,
1028 .rendered_html code {
1028 .rendered_html code {
1029 border: 0;
1029 border: 0;
1030 background-color: #ffffff;
1030 background-color: #ffffff;
1031 color: #000000;
1031 color: #000000;
1032 font-size: 100%;
1032 font-size: 100%;
1033 padding: 0px;
1033 padding: 0px;
1034 }
1034 }
1035 .rendered_html blockquote {
1035 .rendered_html blockquote {
1036 margin: 1em 2em;
1036 margin: 1em 2em;
1037 }
1037 }
1038 .rendered_html table {
1038 .rendered_html table {
1039 margin-left: auto;
1039 margin-left: auto;
1040 margin-right: auto;
1040 margin-right: auto;
1041 border: 1px solid #000000;
1041 border: 1px solid #000000;
1042 border-collapse: collapse;
1042 border-collapse: collapse;
1043 }
1043 }
1044 .rendered_html tr,
1044 .rendered_html tr,
1045 .rendered_html th,
1045 .rendered_html th,
1046 .rendered_html td {
1046 .rendered_html td {
1047 border: 1px solid #000000;
1047 border: 1px solid #000000;
1048 border-collapse: collapse;
1048 border-collapse: collapse;
1049 margin: 1em 2em;
1049 margin: 1em 2em;
1050 }
1050 }
1051 .rendered_html td,
1051 .rendered_html td,
1052 .rendered_html th {
1052 .rendered_html th {
1053 text-align: left;
1053 text-align: left;
1054 vertical-align: middle;
1054 vertical-align: middle;
1055 padding: 4px;
1055 padding: 4px;
1056 }
1056 }
1057 .rendered_html th {
1057 .rendered_html th {
1058 font-weight: bold;
1058 font-weight: bold;
1059 }
1059 }
1060 .rendered_html * + table {
1060 .rendered_html * + table {
1061 margin-top: 1em;
1061 margin-top: 1em;
1062 }
1062 }
1063 .rendered_html p {
1063 .rendered_html p {
1064 text-align: justify;
1064 text-align: justify;
1065 }
1065 }
1066 .rendered_html * + p {
1066 .rendered_html * + p {
1067 margin-top: 1em;
1067 margin-top: 1em;
1068 }
1068 }
1069 .rendered_html img {
1069 .rendered_html img {
1070 display: block;
1070 display: block;
1071 margin-left: auto;
1071 margin-left: auto;
1072 margin-right: auto;
1072 margin-right: auto;
1073 }
1073 }
1074 .rendered_html * + img {
1074 .rendered_html * + img {
1075 margin-top: 1em;
1075 margin-top: 1em;
1076 }
1076 }
1077 div.text_cell {
1077 div.text_cell {
1078 padding: 5px 5px 5px 0px;
1078 padding: 5px 5px 5px 0px;
1079 /* Old browsers */
1079 /* Old browsers */
1080 display: -webkit-box;
1080 display: -webkit-box;
1081 -webkit-box-orient: horizontal;
1081 -webkit-box-orient: horizontal;
1082 -webkit-box-align: stretch;
1082 -webkit-box-align: stretch;
1083 display: -moz-box;
1083 display: -moz-box;
1084 -moz-box-orient: horizontal;
1084 -moz-box-orient: horizontal;
1085 -moz-box-align: stretch;
1085 -moz-box-align: stretch;
1086 display: box;
1086 display: box;
1087 box-orient: horizontal;
1087 box-orient: horizontal;
1088 box-align: stretch;
1088 box-align: stretch;
1089 /* Modern browsers */
1089 /* Modern browsers */
1090 display: flex;
1090 display: flex;
1091 flex-direction: row;
1091 flex-direction: row;
1092 align-items: stretch;
1092 align-items: stretch;
1093 /* Old browsers */
1093 /* Old browsers */
1094 -webkit-box-flex: 0;
1094 -webkit-box-flex: 0;
1095 -moz-box-flex: 0;
1095 -moz-box-flex: 0;
1096 box-flex: 0;
1096 box-flex: 0;
1097 /* Modern browsers */
1097 /* Modern browsers */
1098 flex: none;
1098 flex: none;
1099 }
1099 }
1100 @media (max-width: 480px) {
1100 @media (max-width: 480px) {
1101 div.text_cell > div.prompt {
1101 div.text_cell > div.prompt {
1102 display: none;
1102 display: none;
1103 }
1103 }
1104 }
1104 }
1105 div.text_cell_render {
1105 div.text_cell_render {
1106 /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
1106 /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
1107 outline: none;
1107 outline: none;
1108 resize: none;
1108 resize: none;
1109 width: inherit;
1109 width: inherit;
1110 border-style: none;
1110 border-style: none;
1111 padding: 0.5em 0.5em 0.5em 0.4em;
1111 padding: 0.5em 0.5em 0.5em 0.4em;
1112 color: #000000;
1112 color: #000000;
1113 box-sizing: border-box;
1113 box-sizing: border-box;
1114 -moz-box-sizing: border-box;
1114 -moz-box-sizing: border-box;
1115 -webkit-box-sizing: border-box;
1115 -webkit-box-sizing: border-box;
1116 }
1116 }
1117 a.anchor-link:link {
1117 a.anchor-link:link {
1118 text-decoration: none;
1118 text-decoration: none;
1119 padding: 0px 20px;
1119 padding: 0px 20px;
1120 visibility: hidden;
1120 visibility: hidden;
1121 }
1121 }
1122 h1:hover .anchor-link,
1122 h1:hover .anchor-link,
1123 h2:hover .anchor-link,
1123 h2:hover .anchor-link,
1124 h3:hover .anchor-link,
1124 h3:hover .anchor-link,
1125 h4:hover .anchor-link,
1125 h4:hover .anchor-link,
1126 h5:hover .anchor-link,
1126 h5:hover .anchor-link,
1127 h6:hover .anchor-link {
1127 h6:hover .anchor-link {
1128 visibility: visible;
1128 visibility: visible;
1129 }
1129 }
1130 div.cell.text_cell.rendered {
1130 div.cell.text_cell.rendered {
1131 padding: 0px;
1131 padding: 0px;
1132 }
1132 }
1133 .cm-s-heading-1,
1133 .cm-s-heading-1,
1134 .cm-s-heading-2,
1134 .cm-s-heading-2,
1135 .cm-s-heading-3,
1135 .cm-s-heading-3,
1136 .cm-s-heading-4,
1136 .cm-s-heading-4,
1137 .cm-s-heading-5,
1137 .cm-s-heading-5,
1138 .cm-s-heading-6 {
1138 .cm-s-heading-6 {
1139 font-weight: bold;
1139 font-weight: bold;
1140 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
1140 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
1141 }
1141 }
1142 .cm-s-heading-1 {
1142 .cm-s-heading-1 {
1143 font-size: 150%;
1143 font-size: 150%;
1144 }
1144 }
1145 .cm-s-heading-2 {
1145 .cm-s-heading-2 {
1146 font-size: 130%;
1146 font-size: 130%;
1147 }
1147 }
1148 .cm-s-heading-3 {
1148 .cm-s-heading-3 {
1149 font-size: 120%;
1149 font-size: 120%;
1150 }
1150 }
1151 .cm-s-heading-4 {
1151 .cm-s-heading-4 {
1152 font-size: 110%;
1152 font-size: 110%;
1153 }
1153 }
1154 .cm-s-heading-5 {
1154 .cm-s-heading-5 {
1155 font-size: 100%;
1155 font-size: 100%;
1156 font-style: italic;
1156 font-style: italic;
1157 }
1157 }
1158 .cm-s-heading-6 {
1158 .cm-s-heading-6 {
1159 font-size: 90%;
1159 font-size: 90%;
1160 font-style: italic;
1160 font-style: italic;
1161 }
1161 }
1162 .widget-area {
1162 .widget-area {
1163 /*
1163 /*
1164 LESS file that styles IPython notebook widgets and the area they sit in.
1164 LESS file that styles IPython notebook widgets and the area they sit in.
1165
1165
1166 The widget area typically looks something like this:
1166 The widget area typically looks something like this:
1167 +------------------------------------------+
1167 +------------------------------------------+
1168 | widget-area |
1168 | widget-area |
1169 | +--------+---------------------------+ |
1169 | +--------+---------------------------+ |
1170 | | prompt | widget-subarea | |
1170 | | prompt | widget-subarea | |
1171 | | | +--------+ +--------+ | |
1171 | | | +--------+ +--------+ | |
1172 | | | | widget | | widget | | |
1172 | | | | widget | | widget | | |
1173 | | | +--------+ +--------+ | |
1173 | | | +--------+ +--------+ | |
1174 | +--------+---------------------------+ |
1174 | +--------+---------------------------+ |
1175 +------------------------------------------+
1175 +------------------------------------------+
1176 */
1176 */
1177 page-break-inside: avoid;
1177 page-break-inside: avoid;
1178 /* Old browsers */
1178 /* Old browsers */
1179 display: -webkit-box;
1179 display: -webkit-box;
1180 -webkit-box-orient: horizontal;
1180 -webkit-box-orient: horizontal;
1181 -webkit-box-align: stretch;
1181 -webkit-box-align: stretch;
1182 display: -moz-box;
1182 display: -moz-box;
1183 -moz-box-orient: horizontal;
1183 -moz-box-orient: horizontal;
1184 -moz-box-align: stretch;
1184 -moz-box-align: stretch;
1185 display: box;
1185 display: box;
1186 box-orient: horizontal;
1186 box-orient: horizontal;
1187 box-align: stretch;
1187 box-align: stretch;
1188 /* Modern browsers */
1188 /* Modern browsers */
1189 display: flex;
1189 display: flex;
1190 flex-direction: row;
1190 flex-direction: row;
1191 align-items: stretch;
1191 align-items: stretch;
1192 /* Old browsers */
1192 /* Old browsers */
1193 -webkit-box-flex: 0;
1193 -webkit-box-flex: 0;
1194 -moz-box-flex: 0;
1194 -moz-box-flex: 0;
1195 box-flex: 0;
1195 box-flex: 0;
1196 /* Modern browsers */
1196 /* Modern browsers */
1197 flex: none;
1197 flex: none;
1198 }
1198 }
1199 .widget-area .widget-subarea {
1199 .widget-area .widget-subarea {
1200 padding: 0.44em 0.4em 0.4em 1px;
1200 padding: 0.44em 0.4em 0.4em 1px;
1201 margin-left: 6px;
1201 margin-left: 6px;
1202 box-sizing: border-box;
1202 box-sizing: border-box;
1203 -moz-box-sizing: border-box;
1203 -moz-box-sizing: border-box;
1204 -webkit-box-sizing: border-box;
1204 -webkit-box-sizing: border-box;
1205 /* Old browsers */
1205 /* Old browsers */
1206 display: -webkit-box;
1206 display: -webkit-box;
1207 -webkit-box-orient: vertical;
1207 -webkit-box-orient: vertical;
1208 -webkit-box-align: stretch;
1208 -webkit-box-align: stretch;
1209 display: -moz-box;
1209 display: -moz-box;
1210 -moz-box-orient: vertical;
1210 -moz-box-orient: vertical;
1211 -moz-box-align: stretch;
1211 -moz-box-align: stretch;
1212 display: box;
1212 display: box;
1213 box-orient: vertical;
1213 box-orient: vertical;
1214 box-align: stretch;
1214 box-align: stretch;
1215 /* Modern browsers */
1215 /* Modern browsers */
1216 display: flex;
1216 display: flex;
1217 flex-direction: column;
1217 flex-direction: column;
1218 align-items: stretch;
1218 align-items: stretch;
1219 /* Old browsers */
1219 /* Old browsers */
1220 -webkit-box-flex: 0;
1220 -webkit-box-flex: 0;
1221 -moz-box-flex: 0;
1221 -moz-box-flex: 0;
1222 box-flex: 0;
1222 box-flex: 0;
1223 /* Modern browsers */
1223 /* Modern browsers */
1224 flex: none;
1224 flex: none;
1225 /* Old browsers */
1225 /* Old browsers */
1226 -webkit-box-flex: 2;
1226 -webkit-box-flex: 2;
1227 -moz-box-flex: 2;
1227 -moz-box-flex: 2;
1228 box-flex: 2;
1228 box-flex: 2;
1229 /* Modern browsers */
1229 /* Modern browsers */
1230 flex: 2;
1230 flex: 2;
1231 /* Old browsers */
1231 /* Old browsers */
1232 -webkit-box-align: start;
1232 -webkit-box-align: start;
1233 -moz-box-align: start;
1233 -moz-box-align: start;
1234 box-align: start;
1234 box-align: start;
1235 /* Modern browsers */
1235 /* Modern browsers */
1236 align-items: flex-start;
1236 align-items: flex-start;
1237 }
1237 }
1238 /* THE CLASSES BELOW CAN APPEAR ANYWHERE IN THE DOM (POSSIBLEY OUTSIDE OF
1238 /* THE CLASSES BELOW CAN APPEAR ANYWHERE IN THE DOM (POSSIBLEY OUTSIDE OF
1239 THE WIDGET AREA). */
1239 THE WIDGET AREA). */
1240 .widget-hlabel {
1240 .widget-hlabel {
1241 /* Horizontal Label */
1241 /* Horizontal Label */
1242 min-width: 10ex;
1242 min-width: 10ex;
1243 padding-right: 8px;
1243 padding-right: 8px;
1244 padding-top: 5px;
1244 padding-top: 5px;
1245 text-align: right;
1245 text-align: right;
1246 vertical-align: text-top;
1246 vertical-align: text-top;
1247 }
1247 }
1248 .widget-vlabel {
1248 .widget-vlabel {
1249 /* Vertical Label */
1249 /* Vertical Label */
1250 padding-bottom: 5px;
1250 padding-bottom: 5px;
1251 text-align: center;
1251 text-align: center;
1252 vertical-align: text-bottom;
1252 vertical-align: text-bottom;
1253 }
1253 }
1254 .widget-hreadout {
1254 .widget-hreadout {
1255 padding-left: 8px;
1255 padding-left: 8px;
1256 padding-top: 5px;
1256 padding-top: 5px;
1257 text-align: left;
1257 text-align: left;
1258 vertical-align: text-top;
1258 vertical-align: text-top;
1259 }
1259 }
1260 .widget-vreadout {
1260 .widget-vreadout {
1261 /* Vertical Label */
1261 /* Vertical Label */
1262 padding-top: 5px;
1262 padding-top: 5px;
1263 text-align: center;
1263 text-align: center;
1264 vertical-align: text-top;
1264 vertical-align: text-top;
1265 }
1265 }
1266 .slide-track {
1266 .slide-track {
1267 /* Slider Track */
1267 /* Slider Track */
1268 border: 1px solid #CCCCCC;
1268 border: 1px solid #CCCCCC;
1269 background: #FFFFFF;
1269 background: #FFFFFF;
1270 border-radius: 4px;
1270 border-radius: 4px;
1271 /* Round the corners of the slide track */
1271 /* Round the corners of the slide track */
1272 }
1272 }
1273 .widget-hslider {
1273 .widget-hslider {
1274 /* Horizontal jQuery Slider
1274 /* Horizontal jQuery Slider
1275
1275
1276 Both the horizontal and vertical versions of the slider are characterized
1276 Both the horizontal and vertical versions of the slider are characterized
1277 by a styled div that contains an invisible jQuery slide div which
1277 by a styled div that contains an invisible jQuery slide div which
1278 contains a visible slider handle div. This is requred so we can control
1278 contains a visible slider handle div. This is requred so we can control
1279 how the slider is drawn and 'fix' the issue where the slide handle
1279 how the slider is drawn and 'fix' the issue where the slide handle
1280 doesn't stop at the end of the slide.
1280 doesn't stop at the end of the slide.
1281
1281
1282 Both horizontal and vertical sliders have this div nesting:
1282 Both horizontal and vertical sliders have this div nesting:
1283 +------------------------------------------+
1283 +------------------------------------------+
1284 | widget-(h/v)slider |
1284 | widget-(h/v)slider |
1285 | +--------+---------------------------+ |
1285 | +--------+---------------------------+ |
1286 | | ui-slider | |
1286 | | ui-slider | |
1287 | | +------------------+ | |
1287 | | +------------------+ | |
1288 | | | ui-slider-handle | | |
1288 | | | ui-slider-handle | | |
1289 | | +------------------+ | |
1289 | | +------------------+ | |
1290 | +--------+---------------------------+ |
1290 | +--------+---------------------------+ |
1291 +------------------------------------------+
1291 +------------------------------------------+
1292 */
1292 */
1293 /* Fix the padding of the slide track so the ui-slider is sized
1293 /* Fix the padding of the slide track so the ui-slider is sized
1294 correctly. */
1294 correctly. */
1295 padding-left: 8px;
1295 padding-left: 8px;
1296 padding-right: 5px;
1296 padding-right: 5px;
1297 overflow: visible;
1297 overflow: visible;
1298 /* Default size of the slider */
1298 /* Default size of the slider */
1299 width: 350px;
1299 width: 350px;
1300 height: 5px;
1300 height: 5px;
1301 max-height: 5px;
1301 max-height: 5px;
1302 margin-top: 13px;
1302 margin-top: 13px;
1303 margin-bottom: 10px;
1303 margin-bottom: 10px;
1304 /* Style the slider track */
1304 /* Style the slider track */
1305 /* Slider Track */
1305 /* Slider Track */
1306 border: 1px solid #CCCCCC;
1306 border: 1px solid #CCCCCC;
1307 background: #FFFFFF;
1307 background: #FFFFFF;
1308 border-radius: 4px;
1308 border-radius: 4px;
1309 /* Round the corners of the slide track */
1309 /* Round the corners of the slide track */
1310 /* Make the div a flex box (makes FF behave correctly). */
1310 /* Make the div a flex box (makes FF behave correctly). */
1311 /* Old browsers */
1311 /* Old browsers */
1312 display: -webkit-box;
1312 display: -webkit-box;
1313 -webkit-box-orient: horizontal;
1313 -webkit-box-orient: horizontal;
1314 -webkit-box-align: stretch;
1314 -webkit-box-align: stretch;
1315 display: -moz-box;
1315 display: -moz-box;
1316 -moz-box-orient: horizontal;
1316 -moz-box-orient: horizontal;
1317 -moz-box-align: stretch;
1317 -moz-box-align: stretch;
1318 display: box;
1318 display: box;
1319 box-orient: horizontal;
1319 box-orient: horizontal;
1320 box-align: stretch;
1320 box-align: stretch;
1321 /* Modern browsers */
1321 /* Modern browsers */
1322 display: flex;
1322 display: flex;
1323 flex-direction: row;
1323 flex-direction: row;
1324 align-items: stretch;
1324 align-items: stretch;
1325 /* Old browsers */
1325 /* Old browsers */
1326 -webkit-box-flex: 0;
1326 -webkit-box-flex: 0;
1327 -moz-box-flex: 0;
1327 -moz-box-flex: 0;
1328 box-flex: 0;
1328 box-flex: 0;
1329 /* Modern browsers */
1329 /* Modern browsers */
1330 flex: none;
1330 flex: none;
1331 }
1331 }
1332 .widget-hslider .ui-slider {
1332 .widget-hslider .ui-slider {
1333 /* Inner, invisible slide div */
1333 /* Inner, invisible slide div */
1334 border: 0px !important;
1334 border: 0px !important;
1335 background: none !important;
1335 background: none !important;
1336 /* Old browsers */
1336 /* Old browsers */
1337 display: -webkit-box;
1337 display: -webkit-box;
1338 -webkit-box-orient: horizontal;
1338 -webkit-box-orient: horizontal;
1339 -webkit-box-align: stretch;
1339 -webkit-box-align: stretch;
1340 display: -moz-box;
1340 display: -moz-box;
1341 -moz-box-orient: horizontal;
1341 -moz-box-orient: horizontal;
1342 -moz-box-align: stretch;
1342 -moz-box-align: stretch;
1343 display: box;
1343 display: box;
1344 box-orient: horizontal;
1344 box-orient: horizontal;
1345 box-align: stretch;
1345 box-align: stretch;
1346 /* Modern browsers */
1346 /* Modern browsers */
1347 display: flex;
1347 display: flex;
1348 flex-direction: row;
1348 flex-direction: row;
1349 align-items: stretch;
1349 align-items: stretch;
1350 /* Old browsers */
1350 /* Old browsers */
1351 -webkit-box-flex: 0;
1351 -webkit-box-flex: 0;
1352 -moz-box-flex: 0;
1352 -moz-box-flex: 0;
1353 box-flex: 0;
1353 box-flex: 0;
1354 /* Modern browsers */
1354 /* Modern browsers */
1355 flex: none;
1355 flex: none;
1356 /* Old browsers */
1356 /* Old browsers */
1357 -webkit-box-flex: 1;
1357 -webkit-box-flex: 1;
1358 -moz-box-flex: 1;
1358 -moz-box-flex: 1;
1359 box-flex: 1;
1359 box-flex: 1;
1360 /* Modern browsers */
1360 /* Modern browsers */
1361 flex: 1;
1361 flex: 1;
1362 }
1362 }
1363 .widget-hslider .ui-slider .ui-slider-handle {
1363 .widget-hslider .ui-slider .ui-slider-handle {
1364 width: 14px !important;
1364 width: 14px !important;
1365 height: 28px !important;
1365 height: 28px !important;
1366 margin-top: -8px !important;
1366 margin-top: -8px !important;
1367 }
1367 }
1368 .widget-vslider {
1368 .widget-vslider {
1369 /* Vertical jQuery Slider */
1369 /* Vertical jQuery Slider */
1370 /* Fix the padding of the slide track so the ui-slider is sized
1370 /* Fix the padding of the slide track so the ui-slider is sized
1371 correctly. */
1371 correctly. */
1372 padding-bottom: 8px;
1372 padding-bottom: 8px;
1373 overflow: visible;
1373 overflow: visible;
1374 /* Default size of the slider */
1374 /* Default size of the slider */
1375 width: 5px;
1375 width: 5px;
1376 max-width: 5px;
1376 max-width: 5px;
1377 height: 250px;
1377 height: 250px;
1378 margin-left: 12px;
1378 margin-left: 12px;
1379 /* Style the slider track */
1379 /* Style the slider track */
1380 /* Slider Track */
1380 /* Slider Track */
1381 border: 1px solid #CCCCCC;
1381 border: 1px solid #CCCCCC;
1382 background: #FFFFFF;
1382 background: #FFFFFF;
1383 border-radius: 4px;
1383 border-radius: 4px;
1384 /* Round the corners of the slide track */
1384 /* Round the corners of the slide track */
1385 /* Make the div a flex box (makes FF behave correctly). */
1385 /* Make the div a flex box (makes FF behave correctly). */
1386 /* Old browsers */
1386 /* Old browsers */
1387 display: -webkit-box;
1387 display: -webkit-box;
1388 -webkit-box-orient: vertical;
1388 -webkit-box-orient: vertical;
1389 -webkit-box-align: stretch;
1389 -webkit-box-align: stretch;
1390 display: -moz-box;
1390 display: -moz-box;
1391 -moz-box-orient: vertical;
1391 -moz-box-orient: vertical;
1392 -moz-box-align: stretch;
1392 -moz-box-align: stretch;
1393 display: box;
1393 display: box;
1394 box-orient: vertical;
1394 box-orient: vertical;
1395 box-align: stretch;
1395 box-align: stretch;
1396 /* Modern browsers */
1396 /* Modern browsers */
1397 display: flex;
1397 display: flex;
1398 flex-direction: column;
1398 flex-direction: column;
1399 align-items: stretch;
1399 align-items: stretch;
1400 /* Old browsers */
1400 /* Old browsers */
1401 -webkit-box-flex: 0;
1401 -webkit-box-flex: 0;
1402 -moz-box-flex: 0;
1402 -moz-box-flex: 0;
1403 box-flex: 0;
1403 box-flex: 0;
1404 /* Modern browsers */
1404 /* Modern browsers */
1405 flex: none;
1405 flex: none;
1406 }
1406 }
1407 .widget-vslider .ui-slider {
1407 .widget-vslider .ui-slider {
1408 /* Inner, invisible slide div */
1408 /* Inner, invisible slide div */
1409 border: 0px !important;
1409 border: 0px !important;
1410 background: none !important;
1410 background: none !important;
1411 margin-left: -4px;
1411 margin-left: -4px;
1412 margin-top: 5px;
1412 margin-top: 5px;
1413 /* Old browsers */
1413 /* Old browsers */
1414 display: -webkit-box;
1414 display: -webkit-box;
1415 -webkit-box-orient: vertical;
1415 -webkit-box-orient: vertical;
1416 -webkit-box-align: stretch;
1416 -webkit-box-align: stretch;
1417 display: -moz-box;
1417 display: -moz-box;
1418 -moz-box-orient: vertical;
1418 -moz-box-orient: vertical;
1419 -moz-box-align: stretch;
1419 -moz-box-align: stretch;
1420 display: box;
1420 display: box;
1421 box-orient: vertical;
1421 box-orient: vertical;
1422 box-align: stretch;
1422 box-align: stretch;
1423 /* Modern browsers */
1423 /* Modern browsers */
1424 display: flex;
1424 display: flex;
1425 flex-direction: column;
1425 flex-direction: column;
1426 align-items: stretch;
1426 align-items: stretch;
1427 /* Old browsers */
1427 /* Old browsers */
1428 -webkit-box-flex: 0;
1428 -webkit-box-flex: 0;
1429 -moz-box-flex: 0;
1429 -moz-box-flex: 0;
1430 box-flex: 0;
1430 box-flex: 0;
1431 /* Modern browsers */
1431 /* Modern browsers */
1432 flex: none;
1432 flex: none;
1433 /* Old browsers */
1433 /* Old browsers */
1434 -webkit-box-flex: 1;
1434 -webkit-box-flex: 1;
1435 -moz-box-flex: 1;
1435 -moz-box-flex: 1;
1436 box-flex: 1;
1436 box-flex: 1;
1437 /* Modern browsers */
1437 /* Modern browsers */
1438 flex: 1;
1438 flex: 1;
1439 }
1439 }
1440 .widget-vslider .ui-slider .ui-slider-handle {
1440 .widget-vslider .ui-slider .ui-slider-handle {
1441 width: 28px !important;
1441 width: 28px !important;
1442 height: 14px !important;
1442 height: 14px !important;
1443 margin-left: -9px;
1443 margin-left: -9px;
1444 }
1444 }
1445 .widget-text {
1445 .widget-text {
1446 /* String Textbox - used for TextBoxView and TextAreaView */
1446 /* String Textbox - used for TextBoxView and TextAreaView */
1447 width: 350px;
1447 width: 350px;
1448 margin: 0px !important;
1448 margin: 0px !important;
1449 }
1449 }
1450 .widget-listbox {
1450 .widget-listbox {
1451 /* Listbox */
1451 /* Listbox */
1452 width: 350px;
1452 width: 350px;
1453 margin-bottom: 0px;
1453 margin-bottom: 0px;
1454 }
1454 }
1455 .widget-numeric-text {
1455 .widget-numeric-text {
1456 /* Single Line Textbox - used for IntTextView and FloatTextView */
1456 /* Single Line Textbox - used for IntTextView and FloatTextView */
1457 width: 150px;
1457 width: 150px;
1458 margin: 0px !important;
1458 margin: 0px !important;
1459 }
1459 }
1460 .widget-progress {
1460 .widget-progress {
1461 /* Progress Bar */
1461 /* Progress Bar */
1462 margin-top: 6px;
1462 margin-top: 6px;
1463 width: 350px;
1463 width: 350px;
1464 }
1464 }
1465 .widget-progress .progress-bar {
1465 .widget-progress .progress-bar {
1466 /* Disable progress bar animation */
1466 /* Disable progress bar animation */
1467 -webkit-transition: none;
1467 -webkit-transition: none;
1468 -moz-transition: none;
1468 -moz-transition: none;
1469 -ms-transition: none;
1469 -ms-transition: none;
1470 -o-transition: none;
1470 -o-transition: none;
1471 transition: none;
1471 transition: none;
1472 }
1472 }
1473 .widget-combo-btn {
1473 .widget-combo-btn {
1474 /* ComboBox Main Button */
1474 /* ComboBox Main Button */
1475 min-width: 125px;
1475 min-width: 125px;
1476 }
1476 }
1477 .widget-box {
1477 .widget-box {
1478 /* The following section sets the style for the invisible div that
1478 /* The following section sets the style for the invisible div that
1479 hold widgets and their accompanying labels.
1479 hold widgets and their accompanying labels.
1480
1480
1481 Looks like this:
1481 Looks like this:
1482 +-----------------------------+
1482 +-----------------------------+
1483 | widget-box (or similar) |
1483 | widget-box (or similar) |
1484 | +-------+---------------+ |
1484 | +-------+---------------+ |
1485 | | Label | Actual Widget | |
1485 | | Label | Actual Widget | |
1486 | +-------+---------------+ |
1486 | +-------+---------------+ |
1487 +-----------------------------+
1487 +-----------------------------+
1488 */
1488 */
1489 margin: 5px;
1489 margin: 5px;
1490 /* Old browsers */
1490 /* Old browsers */
1491 -webkit-box-pack: start;
1491 -webkit-box-pack: start;
1492 -moz-box-pack: start;
1492 -moz-box-pack: start;
1493 box-pack: start;
1493 box-pack: start;
1494 /* Modern browsers */
1494 /* Modern browsers */
1495 justify-content: flex-start;
1495 justify-content: flex-start;
1496 /* ContainerWidget */
1496 /* Box */
1497 box-sizing: border-box;
1497 box-sizing: border-box;
1498 -moz-box-sizing: border-box;
1498 -moz-box-sizing: border-box;
1499 -webkit-box-sizing: border-box;
1499 -webkit-box-sizing: border-box;
1500 /* Old browsers */
1500 /* Old browsers */
1501 -webkit-box-align: start;
1501 -webkit-box-align: start;
1502 -moz-box-align: start;
1502 -moz-box-align: start;
1503 box-align: start;
1503 box-align: start;
1504 /* Modern browsers */
1504 /* Modern browsers */
1505 align-items: flex-start;
1505 align-items: flex-start;
1506 }
1506 }
1507 .widget-hbox {
1507 .widget-hbox {
1508 /* Horizontal widgets */
1508 /* Horizontal widgets */
1509 /* The following section sets the style for the invisible div that
1509 /* The following section sets the style for the invisible div that
1510 hold widgets and their accompanying labels.
1510 hold widgets and their accompanying labels.
1511
1511
1512 Looks like this:
1512 Looks like this:
1513 +-----------------------------+
1513 +-----------------------------+
1514 | widget-box (or similar) |
1514 | widget-box (or similar) |
1515 | +-------+---------------+ |
1515 | +-------+---------------+ |
1516 | | Label | Actual Widget | |
1516 | | Label | Actual Widget | |
1517 | +-------+---------------+ |
1517 | +-------+---------------+ |
1518 +-----------------------------+
1518 +-----------------------------+
1519 */
1519 */
1520 margin: 5px;
1520 margin: 5px;
1521 /* Old browsers */
1521 /* Old browsers */
1522 -webkit-box-pack: start;
1522 -webkit-box-pack: start;
1523 -moz-box-pack: start;
1523 -moz-box-pack: start;
1524 box-pack: start;
1524 box-pack: start;
1525 /* Modern browsers */
1525 /* Modern browsers */
1526 justify-content: flex-start;
1526 justify-content: flex-start;
1527 /* ContainerWidget */
1527 /* Box */
1528 box-sizing: border-box;
1528 box-sizing: border-box;
1529 -moz-box-sizing: border-box;
1529 -moz-box-sizing: border-box;
1530 -webkit-box-sizing: border-box;
1530 -webkit-box-sizing: border-box;
1531 /* Old browsers */
1531 /* Old browsers */
1532 -webkit-box-align: start;
1532 -webkit-box-align: start;
1533 -moz-box-align: start;
1533 -moz-box-align: start;
1534 box-align: start;
1534 box-align: start;
1535 /* Modern browsers */
1535 /* Modern browsers */
1536 align-items: flex-start;
1536 align-items: flex-start;
1537 /* Old browsers */
1537 /* Old browsers */
1538 display: -webkit-box;
1538 display: -webkit-box;
1539 -webkit-box-orient: horizontal;
1539 -webkit-box-orient: horizontal;
1540 -webkit-box-align: stretch;
1540 -webkit-box-align: stretch;
1541 display: -moz-box;
1541 display: -moz-box;
1542 -moz-box-orient: horizontal;
1542 -moz-box-orient: horizontal;
1543 -moz-box-align: stretch;
1543 -moz-box-align: stretch;
1544 display: box;
1544 display: box;
1545 box-orient: horizontal;
1545 box-orient: horizontal;
1546 box-align: stretch;
1546 box-align: stretch;
1547 /* Modern browsers */
1547 /* Modern browsers */
1548 display: flex;
1548 display: flex;
1549 flex-direction: row;
1549 flex-direction: row;
1550 align-items: stretch;
1550 align-items: stretch;
1551 /* Old browsers */
1551 /* Old browsers */
1552 -webkit-box-flex: 0;
1552 -webkit-box-flex: 0;
1553 -moz-box-flex: 0;
1553 -moz-box-flex: 0;
1554 box-flex: 0;
1554 box-flex: 0;
1555 /* Modern browsers */
1555 /* Modern browsers */
1556 flex: none;
1556 flex: none;
1557 }
1557 }
1558 .widget-hbox-single {
1558 .widget-hbox-single {
1559 /* Single line horizontal widgets */
1559 /* Single line horizontal widgets */
1560 /* Horizontal widgets */
1560 /* Horizontal widgets */
1561 /* The following section sets the style for the invisible div that
1561 /* The following section sets the style for the invisible div that
1562 hold widgets and their accompanying labels.
1562 hold widgets and their accompanying labels.
1563
1563
1564 Looks like this:
1564 Looks like this:
1565 +-----------------------------+
1565 +-----------------------------+
1566 | widget-box (or similar) |
1566 | widget-box (or similar) |
1567 | +-------+---------------+ |
1567 | +-------+---------------+ |
1568 | | Label | Actual Widget | |
1568 | | Label | Actual Widget | |
1569 | +-------+---------------+ |
1569 | +-------+---------------+ |
1570 +-----------------------------+
1570 +-----------------------------+
1571 */
1571 */
1572 margin: 5px;
1572 margin: 5px;
1573 /* Old browsers */
1573 /* Old browsers */
1574 -webkit-box-pack: start;
1574 -webkit-box-pack: start;
1575 -moz-box-pack: start;
1575 -moz-box-pack: start;
1576 box-pack: start;
1576 box-pack: start;
1577 /* Modern browsers */
1577 /* Modern browsers */
1578 justify-content: flex-start;
1578 justify-content: flex-start;
1579 /* ContainerWidget */
1579 /* Box */
1580 box-sizing: border-box;
1580 box-sizing: border-box;
1581 -moz-box-sizing: border-box;
1581 -moz-box-sizing: border-box;
1582 -webkit-box-sizing: border-box;
1582 -webkit-box-sizing: border-box;
1583 /* Old browsers */
1583 /* Old browsers */
1584 -webkit-box-align: start;
1584 -webkit-box-align: start;
1585 -moz-box-align: start;
1585 -moz-box-align: start;
1586 box-align: start;
1586 box-align: start;
1587 /* Modern browsers */
1587 /* Modern browsers */
1588 align-items: flex-start;
1588 align-items: flex-start;
1589 /* Old browsers */
1589 /* Old browsers */
1590 display: -webkit-box;
1590 display: -webkit-box;
1591 -webkit-box-orient: horizontal;
1591 -webkit-box-orient: horizontal;
1592 -webkit-box-align: stretch;
1592 -webkit-box-align: stretch;
1593 display: -moz-box;
1593 display: -moz-box;
1594 -moz-box-orient: horizontal;
1594 -moz-box-orient: horizontal;
1595 -moz-box-align: stretch;
1595 -moz-box-align: stretch;
1596 display: box;
1596 display: box;
1597 box-orient: horizontal;
1597 box-orient: horizontal;
1598 box-align: stretch;
1598 box-align: stretch;
1599 /* Modern browsers */
1599 /* Modern browsers */
1600 display: flex;
1600 display: flex;
1601 flex-direction: row;
1601 flex-direction: row;
1602 align-items: stretch;
1602 align-items: stretch;
1603 /* Old browsers */
1603 /* Old browsers */
1604 -webkit-box-flex: 0;
1604 -webkit-box-flex: 0;
1605 -moz-box-flex: 0;
1605 -moz-box-flex: 0;
1606 box-flex: 0;
1606 box-flex: 0;
1607 /* Modern browsers */
1607 /* Modern browsers */
1608 flex: none;
1608 flex: none;
1609 height: 30px;
1609 height: 30px;
1610 }
1610 }
1611 .widget-hbox-single input[type="checkbox"] {
1611 .widget-hbox-single input[type="checkbox"] {
1612 margin-top: 9px;
1612 margin-top: 9px;
1613 }
1613 }
1614 .widget-vbox {
1614 .widget-vbox {
1615 /* Vertical widgets */
1615 /* Vertical widgets */
1616 /* The following section sets the style for the invisible div that
1616 /* The following section sets the style for the invisible div that
1617 hold widgets and their accompanying labels.
1617 hold widgets and their accompanying labels.
1618
1618
1619 Looks like this:
1619 Looks like this:
1620 +-----------------------------+
1620 +-----------------------------+
1621 | widget-box (or similar) |
1621 | widget-box (or similar) |
1622 | +-------+---------------+ |
1622 | +-------+---------------+ |
1623 | | Label | Actual Widget | |
1623 | | Label | Actual Widget | |
1624 | +-------+---------------+ |
1624 | +-------+---------------+ |
1625 +-----------------------------+
1625 +-----------------------------+
1626 */
1626 */
1627 margin: 5px;
1627 margin: 5px;
1628 /* Old browsers */
1628 /* Old browsers */
1629 -webkit-box-pack: start;
1629 -webkit-box-pack: start;
1630 -moz-box-pack: start;
1630 -moz-box-pack: start;
1631 box-pack: start;
1631 box-pack: start;
1632 /* Modern browsers */
1632 /* Modern browsers */
1633 justify-content: flex-start;
1633 justify-content: flex-start;
1634 /* ContainerWidget */
1634 /* Box */
1635 box-sizing: border-box;
1635 box-sizing: border-box;
1636 -moz-box-sizing: border-box;
1636 -moz-box-sizing: border-box;
1637 -webkit-box-sizing: border-box;
1637 -webkit-box-sizing: border-box;
1638 /* Old browsers */
1638 /* Old browsers */
1639 -webkit-box-align: start;
1639 -webkit-box-align: start;
1640 -moz-box-align: start;
1640 -moz-box-align: start;
1641 box-align: start;
1641 box-align: start;
1642 /* Modern browsers */
1642 /* Modern browsers */
1643 align-items: flex-start;
1643 align-items: flex-start;
1644 /* Old browsers */
1644 /* Old browsers */
1645 display: -webkit-box;
1645 display: -webkit-box;
1646 -webkit-box-orient: vertical;
1646 -webkit-box-orient: vertical;
1647 -webkit-box-align: stretch;
1647 -webkit-box-align: stretch;
1648 display: -moz-box;
1648 display: -moz-box;
1649 -moz-box-orient: vertical;
1649 -moz-box-orient: vertical;
1650 -moz-box-align: stretch;
1650 -moz-box-align: stretch;
1651 display: box;
1651 display: box;
1652 box-orient: vertical;
1652 box-orient: vertical;
1653 box-align: stretch;
1653 box-align: stretch;
1654 /* Modern browsers */
1654 /* Modern browsers */
1655 display: flex;
1655 display: flex;
1656 flex-direction: column;
1656 flex-direction: column;
1657 align-items: stretch;
1657 align-items: stretch;
1658 /* Old browsers */
1658 /* Old browsers */
1659 -webkit-box-flex: 0;
1659 -webkit-box-flex: 0;
1660 -moz-box-flex: 0;
1660 -moz-box-flex: 0;
1661 box-flex: 0;
1661 box-flex: 0;
1662 /* Modern browsers */
1662 /* Modern browsers */
1663 flex: none;
1663 flex: none;
1664 }
1664 }
1665 .widget-vbox-single {
1665 .widget-vbox-single {
1666 /* For vertical slides */
1666 /* For vertical slides */
1667 /* Vertical widgets */
1667 /* Vertical widgets */
1668 /* The following section sets the style for the invisible div that
1668 /* The following section sets the style for the invisible div that
1669 hold widgets and their accompanying labels.
1669 hold widgets and their accompanying labels.
1670
1670
1671 Looks like this:
1671 Looks like this:
1672 +-----------------------------+
1672 +-----------------------------+
1673 | widget-box (or similar) |
1673 | widget-box (or similar) |
1674 | +-------+---------------+ |
1674 | +-------+---------------+ |
1675 | | Label | Actual Widget | |
1675 | | Label | Actual Widget | |
1676 | +-------+---------------+ |
1676 | +-------+---------------+ |
1677 +-----------------------------+
1677 +-----------------------------+
1678 */
1678 */
1679 margin: 5px;
1679 margin: 5px;
1680 /* Old browsers */
1680 /* Old browsers */
1681 -webkit-box-pack: start;
1681 -webkit-box-pack: start;
1682 -moz-box-pack: start;
1682 -moz-box-pack: start;
1683 box-pack: start;
1683 box-pack: start;
1684 /* Modern browsers */
1684 /* Modern browsers */
1685 justify-content: flex-start;
1685 justify-content: flex-start;
1686 /* ContainerWidget */
1686 /* Box */
1687 box-sizing: border-box;
1687 box-sizing: border-box;
1688 -moz-box-sizing: border-box;
1688 -moz-box-sizing: border-box;
1689 -webkit-box-sizing: border-box;
1689 -webkit-box-sizing: border-box;
1690 /* Old browsers */
1690 /* Old browsers */
1691 -webkit-box-align: start;
1691 -webkit-box-align: start;
1692 -moz-box-align: start;
1692 -moz-box-align: start;
1693 box-align: start;
1693 box-align: start;
1694 /* Modern browsers */
1694 /* Modern browsers */
1695 align-items: flex-start;
1695 align-items: flex-start;
1696 /* Old browsers */
1696 /* Old browsers */
1697 display: -webkit-box;
1697 display: -webkit-box;
1698 -webkit-box-orient: vertical;
1698 -webkit-box-orient: vertical;
1699 -webkit-box-align: stretch;
1699 -webkit-box-align: stretch;
1700 display: -moz-box;
1700 display: -moz-box;
1701 -moz-box-orient: vertical;
1701 -moz-box-orient: vertical;
1702 -moz-box-align: stretch;
1702 -moz-box-align: stretch;
1703 display: box;
1703 display: box;
1704 box-orient: vertical;
1704 box-orient: vertical;
1705 box-align: stretch;
1705 box-align: stretch;
1706 /* Modern browsers */
1706 /* Modern browsers */
1707 display: flex;
1707 display: flex;
1708 flex-direction: column;
1708 flex-direction: column;
1709 align-items: stretch;
1709 align-items: stretch;
1710 /* Old browsers */
1710 /* Old browsers */
1711 -webkit-box-flex: 0;
1711 -webkit-box-flex: 0;
1712 -moz-box-flex: 0;
1712 -moz-box-flex: 0;
1713 box-flex: 0;
1713 box-flex: 0;
1714 /* Modern browsers */
1714 /* Modern browsers */
1715 flex: none;
1715 flex: none;
1716 width: 30px;
1716 width: 30px;
1717 }
1717 }
1718 .widget-modal {
1718 .widget-modal {
1719 /* ContainerWidget - ModalView */
1719 /* Box - ModalView */
1720 overflow: hidden;
1720 overflow: hidden;
1721 position: absolute !important;
1721 position: absolute !important;
1722 top: 0px;
1722 top: 0px;
1723 left: 0px;
1723 left: 0px;
1724 margin-left: 0px !important;
1724 margin-left: 0px !important;
1725 }
1725 }
1726 .widget-modal-body {
1726 .widget-modal-body {
1727 /* ContainerWidget - ModalView Body */
1727 /* Box - ModalView Body */
1728 max-height: none !important;
1728 max-height: none !important;
1729 }
1729 }
1730 .widget-container {
1730 .widget-box {
1731 /* ContainerWidget */
1731 /* Box */
1732 box-sizing: border-box;
1732 box-sizing: border-box;
1733 -moz-box-sizing: border-box;
1733 -moz-box-sizing: border-box;
1734 -webkit-box-sizing: border-box;
1734 -webkit-box-sizing: border-box;
1735 /* Old browsers */
1735 /* Old browsers */
1736 -webkit-box-align: start;
1736 -webkit-box-align: start;
1737 -moz-box-align: start;
1737 -moz-box-align: start;
1738 box-align: start;
1738 box-align: start;
1739 /* Modern browsers */
1739 /* Modern browsers */
1740 align-items: flex-start;
1740 align-items: flex-start;
1741 }
1741 }
1742 .widget-radio-box {
1742 .widget-radio-box {
1743 /* Contains RadioButtonsWidget */
1743 /* Contains RadioButtonsWidget */
1744 /* Old browsers */
1744 /* Old browsers */
1745 display: -webkit-box;
1745 display: -webkit-box;
1746 -webkit-box-orient: vertical;
1746 -webkit-box-orient: vertical;
1747 -webkit-box-align: stretch;
1747 -webkit-box-align: stretch;
1748 display: -moz-box;
1748 display: -moz-box;
1749 -moz-box-orient: vertical;
1749 -moz-box-orient: vertical;
1750 -moz-box-align: stretch;
1750 -moz-box-align: stretch;
1751 display: box;
1751 display: box;
1752 box-orient: vertical;
1752 box-orient: vertical;
1753 box-align: stretch;
1753 box-align: stretch;
1754 /* Modern browsers */
1754 /* Modern browsers */
1755 display: flex;
1755 display: flex;
1756 flex-direction: column;
1756 flex-direction: column;
1757 align-items: stretch;
1757 align-items: stretch;
1758 /* Old browsers */
1758 /* Old browsers */
1759 -webkit-box-flex: 0;
1759 -webkit-box-flex: 0;
1760 -moz-box-flex: 0;
1760 -moz-box-flex: 0;
1761 box-flex: 0;
1761 box-flex: 0;
1762 /* Modern browsers */
1762 /* Modern browsers */
1763 flex: none;
1763 flex: none;
1764 box-sizing: border-box;
1764 box-sizing: border-box;
1765 -moz-box-sizing: border-box;
1765 -moz-box-sizing: border-box;
1766 -webkit-box-sizing: border-box;
1766 -webkit-box-sizing: border-box;
1767 padding-top: 4px;
1767 padding-top: 4px;
1768 }
1768 }
1769 .widget-radio-box label {
1769 .widget-radio-box label {
1770 margin-top: 0px;
1770 margin-top: 0px;
1771 }
1771 }
1772 .docked-widget-modal {
1772 .docked-widget-modal {
1773 /* Horizontal Label */
1773 /* Horizontal Label */
1774 overflow: hidden;
1774 overflow: hidden;
1775 position: relative !important;
1775 position: relative !important;
1776 top: 0px !important;
1776 top: 0px !important;
1777 left: 0px !important;
1777 left: 0px !important;
1778 margin-left: 0px !important;
1778 margin-left: 0px !important;
1779 }
1779 }
1780 /*# sourceMappingURL=../style/ipython.min.css.map */ No newline at end of file
1780 /*# sourceMappingURL=../style/ipython.min.css.map */
@@ -1,10554 +1,10554 b''
1 /*!
1 /*!
2 *
2 *
3 * Twitter Bootstrap
3 * Twitter Bootstrap
4 *
4 *
5 */
5 */
6 /*! normalize.css v3.0.0 | MIT License | git.io/normalize */
6 /*! normalize.css v3.0.0 | MIT License | git.io/normalize */
7 html {
7 html {
8 font-family: sans-serif;
8 font-family: sans-serif;
9 -ms-text-size-adjust: 100%;
9 -ms-text-size-adjust: 100%;
10 -webkit-text-size-adjust: 100%;
10 -webkit-text-size-adjust: 100%;
11 }
11 }
12 body {
12 body {
13 margin: 0;
13 margin: 0;
14 }
14 }
15 article,
15 article,
16 aside,
16 aside,
17 details,
17 details,
18 figcaption,
18 figcaption,
19 figure,
19 figure,
20 footer,
20 footer,
21 header,
21 header,
22 hgroup,
22 hgroup,
23 main,
23 main,
24 nav,
24 nav,
25 section,
25 section,
26 summary {
26 summary {
27 display: block;
27 display: block;
28 }
28 }
29 audio,
29 audio,
30 canvas,
30 canvas,
31 progress,
31 progress,
32 video {
32 video {
33 display: inline-block;
33 display: inline-block;
34 vertical-align: baseline;
34 vertical-align: baseline;
35 }
35 }
36 audio:not([controls]) {
36 audio:not([controls]) {
37 display: none;
37 display: none;
38 height: 0;
38 height: 0;
39 }
39 }
40 [hidden],
40 [hidden],
41 template {
41 template {
42 display: none;
42 display: none;
43 }
43 }
44 a {
44 a {
45 background: transparent;
45 background: transparent;
46 }
46 }
47 a:active,
47 a:active,
48 a:hover {
48 a:hover {
49 outline: 0;
49 outline: 0;
50 }
50 }
51 abbr[title] {
51 abbr[title] {
52 border-bottom: 1px dotted;
52 border-bottom: 1px dotted;
53 }
53 }
54 b,
54 b,
55 strong {
55 strong {
56 font-weight: bold;
56 font-weight: bold;
57 }
57 }
58 dfn {
58 dfn {
59 font-style: italic;
59 font-style: italic;
60 }
60 }
61 h1 {
61 h1 {
62 font-size: 2em;
62 font-size: 2em;
63 margin: 0.67em 0;
63 margin: 0.67em 0;
64 }
64 }
65 mark {
65 mark {
66 background: #ff0;
66 background: #ff0;
67 color: #000;
67 color: #000;
68 }
68 }
69 small {
69 small {
70 font-size: 80%;
70 font-size: 80%;
71 }
71 }
72 sub,
72 sub,
73 sup {
73 sup {
74 font-size: 75%;
74 font-size: 75%;
75 line-height: 0;
75 line-height: 0;
76 position: relative;
76 position: relative;
77 vertical-align: baseline;
77 vertical-align: baseline;
78 }
78 }
79 sup {
79 sup {
80 top: -0.5em;
80 top: -0.5em;
81 }
81 }
82 sub {
82 sub {
83 bottom: -0.25em;
83 bottom: -0.25em;
84 }
84 }
85 img {
85 img {
86 border: 0;
86 border: 0;
87 }
87 }
88 svg:not(:root) {
88 svg:not(:root) {
89 overflow: hidden;
89 overflow: hidden;
90 }
90 }
91 figure {
91 figure {
92 margin: 1em 40px;
92 margin: 1em 40px;
93 }
93 }
94 hr {
94 hr {
95 -moz-box-sizing: content-box;
95 -moz-box-sizing: content-box;
96 box-sizing: content-box;
96 box-sizing: content-box;
97 height: 0;
97 height: 0;
98 }
98 }
99 pre {
99 pre {
100 overflow: auto;
100 overflow: auto;
101 }
101 }
102 code,
102 code,
103 kbd,
103 kbd,
104 pre,
104 pre,
105 samp {
105 samp {
106 font-family: monospace, monospace;
106 font-family: monospace, monospace;
107 font-size: 1em;
107 font-size: 1em;
108 }
108 }
109 button,
109 button,
110 input,
110 input,
111 optgroup,
111 optgroup,
112 select,
112 select,
113 textarea {
113 textarea {
114 color: inherit;
114 color: inherit;
115 font: inherit;
115 font: inherit;
116 margin: 0;
116 margin: 0;
117 }
117 }
118 button {
118 button {
119 overflow: visible;
119 overflow: visible;
120 }
120 }
121 button,
121 button,
122 select {
122 select {
123 text-transform: none;
123 text-transform: none;
124 }
124 }
125 button,
125 button,
126 html input[type="button"],
126 html input[type="button"],
127 input[type="reset"],
127 input[type="reset"],
128 input[type="submit"] {
128 input[type="submit"] {
129 -webkit-appearance: button;
129 -webkit-appearance: button;
130 cursor: pointer;
130 cursor: pointer;
131 }
131 }
132 button[disabled],
132 button[disabled],
133 html input[disabled] {
133 html input[disabled] {
134 cursor: default;
134 cursor: default;
135 }
135 }
136 button::-moz-focus-inner,
136 button::-moz-focus-inner,
137 input::-moz-focus-inner {
137 input::-moz-focus-inner {
138 border: 0;
138 border: 0;
139 padding: 0;
139 padding: 0;
140 }
140 }
141 input {
141 input {
142 line-height: normal;
142 line-height: normal;
143 }
143 }
144 input[type="checkbox"],
144 input[type="checkbox"],
145 input[type="radio"] {
145 input[type="radio"] {
146 box-sizing: border-box;
146 box-sizing: border-box;
147 padding: 0;
147 padding: 0;
148 }
148 }
149 input[type="number"]::-webkit-inner-spin-button,
149 input[type="number"]::-webkit-inner-spin-button,
150 input[type="number"]::-webkit-outer-spin-button {
150 input[type="number"]::-webkit-outer-spin-button {
151 height: auto;
151 height: auto;
152 }
152 }
153 input[type="search"] {
153 input[type="search"] {
154 -webkit-appearance: textfield;
154 -webkit-appearance: textfield;
155 -moz-box-sizing: content-box;
155 -moz-box-sizing: content-box;
156 -webkit-box-sizing: content-box;
156 -webkit-box-sizing: content-box;
157 box-sizing: content-box;
157 box-sizing: content-box;
158 }
158 }
159 input[type="search"]::-webkit-search-cancel-button,
159 input[type="search"]::-webkit-search-cancel-button,
160 input[type="search"]::-webkit-search-decoration {
160 input[type="search"]::-webkit-search-decoration {
161 -webkit-appearance: none;
161 -webkit-appearance: none;
162 }
162 }
163 fieldset {
163 fieldset {
164 border: 1px solid #c0c0c0;
164 border: 1px solid #c0c0c0;
165 margin: 0 2px;
165 margin: 0 2px;
166 padding: 0.35em 0.625em 0.75em;
166 padding: 0.35em 0.625em 0.75em;
167 }
167 }
168 legend {
168 legend {
169 border: 0;
169 border: 0;
170 padding: 0;
170 padding: 0;
171 }
171 }
172 textarea {
172 textarea {
173 overflow: auto;
173 overflow: auto;
174 }
174 }
175 optgroup {
175 optgroup {
176 font-weight: bold;
176 font-weight: bold;
177 }
177 }
178 table {
178 table {
179 border-collapse: collapse;
179 border-collapse: collapse;
180 border-spacing: 0;
180 border-spacing: 0;
181 }
181 }
182 td,
182 td,
183 th {
183 th {
184 padding: 0;
184 padding: 0;
185 }
185 }
186 @media print {
186 @media print {
187 * {
187 * {
188 text-shadow: none !important;
188 text-shadow: none !important;
189 color: #000 !important;
189 color: #000 !important;
190 background: transparent !important;
190 background: transparent !important;
191 box-shadow: none !important;
191 box-shadow: none !important;
192 }
192 }
193 a,
193 a,
194 a:visited {
194 a:visited {
195 text-decoration: underline;
195 text-decoration: underline;
196 }
196 }
197 a[href]:after {
197 a[href]:after {
198 content: " (" attr(href) ")";
198 content: " (" attr(href) ")";
199 }
199 }
200 abbr[title]:after {
200 abbr[title]:after {
201 content: " (" attr(title) ")";
201 content: " (" attr(title) ")";
202 }
202 }
203 a[href^="javascript:"]:after,
203 a[href^="javascript:"]:after,
204 a[href^="#"]:after {
204 a[href^="#"]:after {
205 content: "";
205 content: "";
206 }
206 }
207 pre,
207 pre,
208 blockquote {
208 blockquote {
209 border: 1px solid #999;
209 border: 1px solid #999;
210 page-break-inside: avoid;
210 page-break-inside: avoid;
211 }
211 }
212 thead {
212 thead {
213 display: table-header-group;
213 display: table-header-group;
214 }
214 }
215 tr,
215 tr,
216 img {
216 img {
217 page-break-inside: avoid;
217 page-break-inside: avoid;
218 }
218 }
219 img {
219 img {
220 max-width: 100% !important;
220 max-width: 100% !important;
221 }
221 }
222 p,
222 p,
223 h2,
223 h2,
224 h3 {
224 h3 {
225 orphans: 3;
225 orphans: 3;
226 widows: 3;
226 widows: 3;
227 }
227 }
228 h2,
228 h2,
229 h3 {
229 h3 {
230 page-break-after: avoid;
230 page-break-after: avoid;
231 }
231 }
232 select {
232 select {
233 background: #fff !important;
233 background: #fff !important;
234 }
234 }
235 .navbar {
235 .navbar {
236 display: none;
236 display: none;
237 }
237 }
238 .table td,
238 .table td,
239 .table th {
239 .table th {
240 background-color: #fff !important;
240 background-color: #fff !important;
241 }
241 }
242 .btn > .caret,
242 .btn > .caret,
243 .dropup > .btn > .caret {
243 .dropup > .btn > .caret {
244 border-top-color: #000 !important;
244 border-top-color: #000 !important;
245 }
245 }
246 .label {
246 .label {
247 border: 1px solid #000;
247 border: 1px solid #000;
248 }
248 }
249 .table {
249 .table {
250 border-collapse: collapse !important;
250 border-collapse: collapse !important;
251 }
251 }
252 .table-bordered th,
252 .table-bordered th,
253 .table-bordered td {
253 .table-bordered td {
254 border: 1px solid #ddd !important;
254 border: 1px solid #ddd !important;
255 }
255 }
256 }
256 }
257 * {
257 * {
258 -webkit-box-sizing: border-box;
258 -webkit-box-sizing: border-box;
259 -moz-box-sizing: border-box;
259 -moz-box-sizing: border-box;
260 box-sizing: border-box;
260 box-sizing: border-box;
261 }
261 }
262 *:before,
262 *:before,
263 *:after {
263 *:after {
264 -webkit-box-sizing: border-box;
264 -webkit-box-sizing: border-box;
265 -moz-box-sizing: border-box;
265 -moz-box-sizing: border-box;
266 box-sizing: border-box;
266 box-sizing: border-box;
267 }
267 }
268 html {
268 html {
269 font-size: 62.5%;
269 font-size: 62.5%;
270 -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
270 -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
271 }
271 }
272 body {
272 body {
273 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
273 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
274 font-size: 13px;
274 font-size: 13px;
275 line-height: 1.42857143;
275 line-height: 1.42857143;
276 color: #000000;
276 color: #000000;
277 background-color: #ffffff;
277 background-color: #ffffff;
278 }
278 }
279 input,
279 input,
280 button,
280 button,
281 select,
281 select,
282 textarea {
282 textarea {
283 font-family: inherit;
283 font-family: inherit;
284 font-size: inherit;
284 font-size: inherit;
285 line-height: inherit;
285 line-height: inherit;
286 }
286 }
287 a {
287 a {
288 color: #428bca;
288 color: #428bca;
289 text-decoration: none;
289 text-decoration: none;
290 }
290 }
291 a:hover,
291 a:hover,
292 a:focus {
292 a:focus {
293 color: #2a6496;
293 color: #2a6496;
294 text-decoration: underline;
294 text-decoration: underline;
295 }
295 }
296 a:focus {
296 a:focus {
297 outline: thin dotted;
297 outline: thin dotted;
298 outline: 5px auto -webkit-focus-ring-color;
298 outline: 5px auto -webkit-focus-ring-color;
299 outline-offset: -2px;
299 outline-offset: -2px;
300 }
300 }
301 figure {
301 figure {
302 margin: 0;
302 margin: 0;
303 }
303 }
304 img {
304 img {
305 vertical-align: middle;
305 vertical-align: middle;
306 }
306 }
307 .img-responsive,
307 .img-responsive,
308 .thumbnail > img,
308 .thumbnail > img,
309 .thumbnail a > img,
309 .thumbnail a > img,
310 .carousel-inner > .item > img,
310 .carousel-inner > .item > img,
311 .carousel-inner > .item > a > img {
311 .carousel-inner > .item > a > img {
312 display: block;
312 display: block;
313 max-width: 100%;
313 max-width: 100%;
314 height: auto;
314 height: auto;
315 }
315 }
316 .img-rounded {
316 .img-rounded {
317 border-radius: 6px;
317 border-radius: 6px;
318 }
318 }
319 .img-thumbnail {
319 .img-thumbnail {
320 padding: 4px;
320 padding: 4px;
321 line-height: 1.42857143;
321 line-height: 1.42857143;
322 background-color: #ffffff;
322 background-color: #ffffff;
323 border: 1px solid #dddddd;
323 border: 1px solid #dddddd;
324 border-radius: 4px;
324 border-radius: 4px;
325 -webkit-transition: all 0.2s ease-in-out;
325 -webkit-transition: all 0.2s ease-in-out;
326 transition: all 0.2s ease-in-out;
326 transition: all 0.2s ease-in-out;
327 display: inline-block;
327 display: inline-block;
328 max-width: 100%;
328 max-width: 100%;
329 height: auto;
329 height: auto;
330 }
330 }
331 .img-circle {
331 .img-circle {
332 border-radius: 50%;
332 border-radius: 50%;
333 }
333 }
334 hr {
334 hr {
335 margin-top: 18px;
335 margin-top: 18px;
336 margin-bottom: 18px;
336 margin-bottom: 18px;
337 border: 0;
337 border: 0;
338 border-top: 1px solid #eeeeee;
338 border-top: 1px solid #eeeeee;
339 }
339 }
340 .sr-only {
340 .sr-only {
341 position: absolute;
341 position: absolute;
342 width: 1px;
342 width: 1px;
343 height: 1px;
343 height: 1px;
344 margin: -1px;
344 margin: -1px;
345 padding: 0;
345 padding: 0;
346 overflow: hidden;
346 overflow: hidden;
347 clip: rect(0, 0, 0, 0);
347 clip: rect(0, 0, 0, 0);
348 border: 0;
348 border: 0;
349 }
349 }
350 h1,
350 h1,
351 h2,
351 h2,
352 h3,
352 h3,
353 h4,
353 h4,
354 h5,
354 h5,
355 h6,
355 h6,
356 .h1,
356 .h1,
357 .h2,
357 .h2,
358 .h3,
358 .h3,
359 .h4,
359 .h4,
360 .h5,
360 .h5,
361 .h6 {
361 .h6 {
362 font-family: inherit;
362 font-family: inherit;
363 font-weight: 500;
363 font-weight: 500;
364 line-height: 1.1;
364 line-height: 1.1;
365 color: inherit;
365 color: inherit;
366 }
366 }
367 h1 small,
367 h1 small,
368 h2 small,
368 h2 small,
369 h3 small,
369 h3 small,
370 h4 small,
370 h4 small,
371 h5 small,
371 h5 small,
372 h6 small,
372 h6 small,
373 .h1 small,
373 .h1 small,
374 .h2 small,
374 .h2 small,
375 .h3 small,
375 .h3 small,
376 .h4 small,
376 .h4 small,
377 .h5 small,
377 .h5 small,
378 .h6 small,
378 .h6 small,
379 h1 .small,
379 h1 .small,
380 h2 .small,
380 h2 .small,
381 h3 .small,
381 h3 .small,
382 h4 .small,
382 h4 .small,
383 h5 .small,
383 h5 .small,
384 h6 .small,
384 h6 .small,
385 .h1 .small,
385 .h1 .small,
386 .h2 .small,
386 .h2 .small,
387 .h3 .small,
387 .h3 .small,
388 .h4 .small,
388 .h4 .small,
389 .h5 .small,
389 .h5 .small,
390 .h6 .small {
390 .h6 .small {
391 font-weight: normal;
391 font-weight: normal;
392 line-height: 1;
392 line-height: 1;
393 color: #999999;
393 color: #999999;
394 }
394 }
395 h1,
395 h1,
396 .h1,
396 .h1,
397 h2,
397 h2,
398 .h2,
398 .h2,
399 h3,
399 h3,
400 .h3 {
400 .h3 {
401 margin-top: 18px;
401 margin-top: 18px;
402 margin-bottom: 9px;
402 margin-bottom: 9px;
403 }
403 }
404 h1 small,
404 h1 small,
405 .h1 small,
405 .h1 small,
406 h2 small,
406 h2 small,
407 .h2 small,
407 .h2 small,
408 h3 small,
408 h3 small,
409 .h3 small,
409 .h3 small,
410 h1 .small,
410 h1 .small,
411 .h1 .small,
411 .h1 .small,
412 h2 .small,
412 h2 .small,
413 .h2 .small,
413 .h2 .small,
414 h3 .small,
414 h3 .small,
415 .h3 .small {
415 .h3 .small {
416 font-size: 65%;
416 font-size: 65%;
417 }
417 }
418 h4,
418 h4,
419 .h4,
419 .h4,
420 h5,
420 h5,
421 .h5,
421 .h5,
422 h6,
422 h6,
423 .h6 {
423 .h6 {
424 margin-top: 9px;
424 margin-top: 9px;
425 margin-bottom: 9px;
425 margin-bottom: 9px;
426 }
426 }
427 h4 small,
427 h4 small,
428 .h4 small,
428 .h4 small,
429 h5 small,
429 h5 small,
430 .h5 small,
430 .h5 small,
431 h6 small,
431 h6 small,
432 .h6 small,
432 .h6 small,
433 h4 .small,
433 h4 .small,
434 .h4 .small,
434 .h4 .small,
435 h5 .small,
435 h5 .small,
436 .h5 .small,
436 .h5 .small,
437 h6 .small,
437 h6 .small,
438 .h6 .small {
438 .h6 .small {
439 font-size: 75%;
439 font-size: 75%;
440 }
440 }
441 h1,
441 h1,
442 .h1 {
442 .h1 {
443 font-size: 33px;
443 font-size: 33px;
444 }
444 }
445 h2,
445 h2,
446 .h2 {
446 .h2 {
447 font-size: 27px;
447 font-size: 27px;
448 }
448 }
449 h3,
449 h3,
450 .h3 {
450 .h3 {
451 font-size: 23px;
451 font-size: 23px;
452 }
452 }
453 h4,
453 h4,
454 .h4 {
454 .h4 {
455 font-size: 17px;
455 font-size: 17px;
456 }
456 }
457 h5,
457 h5,
458 .h5 {
458 .h5 {
459 font-size: 13px;
459 font-size: 13px;
460 }
460 }
461 h6,
461 h6,
462 .h6 {
462 .h6 {
463 font-size: 12px;
463 font-size: 12px;
464 }
464 }
465 p {
465 p {
466 margin: 0 0 9px;
466 margin: 0 0 9px;
467 }
467 }
468 .lead {
468 .lead {
469 margin-bottom: 18px;
469 margin-bottom: 18px;
470 font-size: 14px;
470 font-size: 14px;
471 font-weight: 200;
471 font-weight: 200;
472 line-height: 1.4;
472 line-height: 1.4;
473 }
473 }
474 @media (min-width: 768px) {
474 @media (min-width: 768px) {
475 .lead {
475 .lead {
476 font-size: 19.5px;
476 font-size: 19.5px;
477 }
477 }
478 }
478 }
479 small,
479 small,
480 .small {
480 .small {
481 font-size: 85%;
481 font-size: 85%;
482 }
482 }
483 cite {
483 cite {
484 font-style: normal;
484 font-style: normal;
485 }
485 }
486 .text-left {
486 .text-left {
487 text-align: left;
487 text-align: left;
488 }
488 }
489 .text-right {
489 .text-right {
490 text-align: right;
490 text-align: right;
491 }
491 }
492 .text-center {
492 .text-center {
493 text-align: center;
493 text-align: center;
494 }
494 }
495 .text-justify {
495 .text-justify {
496 text-align: justify;
496 text-align: justify;
497 }
497 }
498 .text-muted {
498 .text-muted {
499 color: #999999;
499 color: #999999;
500 }
500 }
501 .text-primary {
501 .text-primary {
502 color: #428bca;
502 color: #428bca;
503 }
503 }
504 a.text-primary:hover {
504 a.text-primary:hover {
505 color: #3071a9;
505 color: #3071a9;
506 }
506 }
507 .text-success {
507 .text-success {
508 color: #3c763d;
508 color: #3c763d;
509 }
509 }
510 a.text-success:hover {
510 a.text-success:hover {
511 color: #2b542c;
511 color: #2b542c;
512 }
512 }
513 .text-info {
513 .text-info {
514 color: #31708f;
514 color: #31708f;
515 }
515 }
516 a.text-info:hover {
516 a.text-info:hover {
517 color: #245269;
517 color: #245269;
518 }
518 }
519 .text-warning {
519 .text-warning {
520 color: #8a6d3b;
520 color: #8a6d3b;
521 }
521 }
522 a.text-warning:hover {
522 a.text-warning:hover {
523 color: #66512c;
523 color: #66512c;
524 }
524 }
525 .text-danger {
525 .text-danger {
526 color: #a94442;
526 color: #a94442;
527 }
527 }
528 a.text-danger:hover {
528 a.text-danger:hover {
529 color: #843534;
529 color: #843534;
530 }
530 }
531 .bg-primary {
531 .bg-primary {
532 color: #fff;
532 color: #fff;
533 background-color: #428bca;
533 background-color: #428bca;
534 }
534 }
535 a.bg-primary:hover {
535 a.bg-primary:hover {
536 background-color: #3071a9;
536 background-color: #3071a9;
537 }
537 }
538 .bg-success {
538 .bg-success {
539 background-color: #dff0d8;
539 background-color: #dff0d8;
540 }
540 }
541 a.bg-success:hover {
541 a.bg-success:hover {
542 background-color: #c1e2b3;
542 background-color: #c1e2b3;
543 }
543 }
544 .bg-info {
544 .bg-info {
545 background-color: #d9edf7;
545 background-color: #d9edf7;
546 }
546 }
547 a.bg-info:hover {
547 a.bg-info:hover {
548 background-color: #afd9ee;
548 background-color: #afd9ee;
549 }
549 }
550 .bg-warning {
550 .bg-warning {
551 background-color: #fcf8e3;
551 background-color: #fcf8e3;
552 }
552 }
553 a.bg-warning:hover {
553 a.bg-warning:hover {
554 background-color: #f7ecb5;
554 background-color: #f7ecb5;
555 }
555 }
556 .bg-danger {
556 .bg-danger {
557 background-color: #f2dede;
557 background-color: #f2dede;
558 }
558 }
559 a.bg-danger:hover {
559 a.bg-danger:hover {
560 background-color: #e4b9b9;
560 background-color: #e4b9b9;
561 }
561 }
562 .page-header {
562 .page-header {
563 padding-bottom: 8px;
563 padding-bottom: 8px;
564 margin: 36px 0 18px;
564 margin: 36px 0 18px;
565 border-bottom: 1px solid #eeeeee;
565 border-bottom: 1px solid #eeeeee;
566 }
566 }
567 ul,
567 ul,
568 ol {
568 ol {
569 margin-top: 0;
569 margin-top: 0;
570 margin-bottom: 9px;
570 margin-bottom: 9px;
571 }
571 }
572 ul ul,
572 ul ul,
573 ol ul,
573 ol ul,
574 ul ol,
574 ul ol,
575 ol ol {
575 ol ol {
576 margin-bottom: 0;
576 margin-bottom: 0;
577 }
577 }
578 .list-unstyled {
578 .list-unstyled {
579 padding-left: 0;
579 padding-left: 0;
580 list-style: none;
580 list-style: none;
581 }
581 }
582 .list-inline {
582 .list-inline {
583 padding-left: 0;
583 padding-left: 0;
584 list-style: none;
584 list-style: none;
585 margin-left: -5px;
585 margin-left: -5px;
586 }
586 }
587 .list-inline > li {
587 .list-inline > li {
588 display: inline-block;
588 display: inline-block;
589 padding-left: 5px;
589 padding-left: 5px;
590 padding-right: 5px;
590 padding-right: 5px;
591 }
591 }
592 dl {
592 dl {
593 margin-top: 0;
593 margin-top: 0;
594 margin-bottom: 18px;
594 margin-bottom: 18px;
595 }
595 }
596 dt,
596 dt,
597 dd {
597 dd {
598 line-height: 1.42857143;
598 line-height: 1.42857143;
599 }
599 }
600 dt {
600 dt {
601 font-weight: bold;
601 font-weight: bold;
602 }
602 }
603 dd {
603 dd {
604 margin-left: 0;
604 margin-left: 0;
605 }
605 }
606 @media (min-width: 768px) {
606 @media (min-width: 768px) {
607 .dl-horizontal dt {
607 .dl-horizontal dt {
608 float: left;
608 float: left;
609 width: 160px;
609 width: 160px;
610 clear: left;
610 clear: left;
611 text-align: right;
611 text-align: right;
612 overflow: hidden;
612 overflow: hidden;
613 text-overflow: ellipsis;
613 text-overflow: ellipsis;
614 white-space: nowrap;
614 white-space: nowrap;
615 }
615 }
616 .dl-horizontal dd {
616 .dl-horizontal dd {
617 margin-left: 180px;
617 margin-left: 180px;
618 }
618 }
619 }
619 }
620 abbr[title],
620 abbr[title],
621 abbr[data-original-title] {
621 abbr[data-original-title] {
622 cursor: help;
622 cursor: help;
623 border-bottom: 1px dotted #999999;
623 border-bottom: 1px dotted #999999;
624 }
624 }
625 .initialism {
625 .initialism {
626 font-size: 90%;
626 font-size: 90%;
627 text-transform: uppercase;
627 text-transform: uppercase;
628 }
628 }
629 blockquote {
629 blockquote {
630 padding: 9px 18px;
630 padding: 9px 18px;
631 margin: 0 0 18px;
631 margin: 0 0 18px;
632 font-size: inherit;
632 font-size: inherit;
633 border-left: 5px solid #eeeeee;
633 border-left: 5px solid #eeeeee;
634 }
634 }
635 blockquote p:last-child,
635 blockquote p:last-child,
636 blockquote ul:last-child,
636 blockquote ul:last-child,
637 blockquote ol:last-child {
637 blockquote ol:last-child {
638 margin-bottom: 0;
638 margin-bottom: 0;
639 }
639 }
640 blockquote footer,
640 blockquote footer,
641 blockquote small,
641 blockquote small,
642 blockquote .small {
642 blockquote .small {
643 display: block;
643 display: block;
644 font-size: 80%;
644 font-size: 80%;
645 line-height: 1.42857143;
645 line-height: 1.42857143;
646 color: #999999;
646 color: #999999;
647 }
647 }
648 blockquote footer:before,
648 blockquote footer:before,
649 blockquote small:before,
649 blockquote small:before,
650 blockquote .small:before {
650 blockquote .small:before {
651 content: '\2014 \00A0';
651 content: '\2014 \00A0';
652 }
652 }
653 .blockquote-reverse,
653 .blockquote-reverse,
654 blockquote.pull-right {
654 blockquote.pull-right {
655 padding-right: 15px;
655 padding-right: 15px;
656 padding-left: 0;
656 padding-left: 0;
657 border-right: 5px solid #eeeeee;
657 border-right: 5px solid #eeeeee;
658 border-left: 0;
658 border-left: 0;
659 text-align: right;
659 text-align: right;
660 }
660 }
661 .blockquote-reverse footer:before,
661 .blockquote-reverse footer:before,
662 blockquote.pull-right footer:before,
662 blockquote.pull-right footer:before,
663 .blockquote-reverse small:before,
663 .blockquote-reverse small:before,
664 blockquote.pull-right small:before,
664 blockquote.pull-right small:before,
665 .blockquote-reverse .small:before,
665 .blockquote-reverse .small:before,
666 blockquote.pull-right .small:before {
666 blockquote.pull-right .small:before {
667 content: '';
667 content: '';
668 }
668 }
669 .blockquote-reverse footer:after,
669 .blockquote-reverse footer:after,
670 blockquote.pull-right footer:after,
670 blockquote.pull-right footer:after,
671 .blockquote-reverse small:after,
671 .blockquote-reverse small:after,
672 blockquote.pull-right small:after,
672 blockquote.pull-right small:after,
673 .blockquote-reverse .small:after,
673 .blockquote-reverse .small:after,
674 blockquote.pull-right .small:after {
674 blockquote.pull-right .small:after {
675 content: '\00A0 \2014';
675 content: '\00A0 \2014';
676 }
676 }
677 blockquote:before,
677 blockquote:before,
678 blockquote:after {
678 blockquote:after {
679 content: "";
679 content: "";
680 }
680 }
681 address {
681 address {
682 margin-bottom: 18px;
682 margin-bottom: 18px;
683 font-style: normal;
683 font-style: normal;
684 line-height: 1.42857143;
684 line-height: 1.42857143;
685 }
685 }
686 code,
686 code,
687 kbd,
687 kbd,
688 pre,
688 pre,
689 samp {
689 samp {
690 font-family: monospace;
690 font-family: monospace;
691 }
691 }
692 code {
692 code {
693 padding: 2px 4px;
693 padding: 2px 4px;
694 font-size: 90%;
694 font-size: 90%;
695 color: #c7254e;
695 color: #c7254e;
696 background-color: #f9f2f4;
696 background-color: #f9f2f4;
697 white-space: nowrap;
697 white-space: nowrap;
698 border-radius: 4px;
698 border-radius: 4px;
699 }
699 }
700 kbd {
700 kbd {
701 padding: 2px 4px;
701 padding: 2px 4px;
702 font-size: 90%;
702 font-size: 90%;
703 color: #ffffff;
703 color: #ffffff;
704 background-color: #333333;
704 background-color: #333333;
705 border-radius: 3px;
705 border-radius: 3px;
706 box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
706 box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
707 }
707 }
708 pre {
708 pre {
709 display: block;
709 display: block;
710 padding: 8.5px;
710 padding: 8.5px;
711 margin: 0 0 9px;
711 margin: 0 0 9px;
712 font-size: 12px;
712 font-size: 12px;
713 line-height: 1.42857143;
713 line-height: 1.42857143;
714 word-break: break-all;
714 word-break: break-all;
715 word-wrap: break-word;
715 word-wrap: break-word;
716 color: #333333;
716 color: #333333;
717 background-color: #f5f5f5;
717 background-color: #f5f5f5;
718 border: 1px solid #cccccc;
718 border: 1px solid #cccccc;
719 border-radius: 4px;
719 border-radius: 4px;
720 }
720 }
721 pre code {
721 pre code {
722 padding: 0;
722 padding: 0;
723 font-size: inherit;
723 font-size: inherit;
724 color: inherit;
724 color: inherit;
725 white-space: pre-wrap;
725 white-space: pre-wrap;
726 background-color: transparent;
726 background-color: transparent;
727 border-radius: 0;
727 border-radius: 0;
728 }
728 }
729 .pre-scrollable {
729 .pre-scrollable {
730 max-height: 340px;
730 max-height: 340px;
731 overflow-y: scroll;
731 overflow-y: scroll;
732 }
732 }
733 .container {
733 .container {
734 margin-right: auto;
734 margin-right: auto;
735 margin-left: auto;
735 margin-left: auto;
736 padding-left: 15px;
736 padding-left: 15px;
737 padding-right: 15px;
737 padding-right: 15px;
738 }
738 }
739 @media (min-width: 768px) {
739 @media (min-width: 768px) {
740 .container {
740 .container {
741 width: 750px;
741 width: 750px;
742 }
742 }
743 }
743 }
744 @media (min-width: 992px) {
744 @media (min-width: 992px) {
745 .container {
745 .container {
746 width: 970px;
746 width: 970px;
747 }
747 }
748 }
748 }
749 @media (min-width: 1200px) {
749 @media (min-width: 1200px) {
750 .container {
750 .container {
751 width: 1170px;
751 width: 1170px;
752 }
752 }
753 }
753 }
754 .container-fluid {
754 .container-fluid {
755 margin-right: auto;
755 margin-right: auto;
756 margin-left: auto;
756 margin-left: auto;
757 padding-left: 15px;
757 padding-left: 15px;
758 padding-right: 15px;
758 padding-right: 15px;
759 }
759 }
760 .row {
760 .row {
761 margin-left: -15px;
761 margin-left: -15px;
762 margin-right: -15px;
762 margin-right: -15px;
763 }
763 }
764 .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
764 .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
765 position: relative;
765 position: relative;
766 min-height: 1px;
766 min-height: 1px;
767 padding-left: 15px;
767 padding-left: 15px;
768 padding-right: 15px;
768 padding-right: 15px;
769 }
769 }
770 .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
770 .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
771 float: left;
771 float: left;
772 }
772 }
773 .col-xs-12 {
773 .col-xs-12 {
774 width: 100%;
774 width: 100%;
775 }
775 }
776 .col-xs-11 {
776 .col-xs-11 {
777 width: 91.66666667%;
777 width: 91.66666667%;
778 }
778 }
779 .col-xs-10 {
779 .col-xs-10 {
780 width: 83.33333333%;
780 width: 83.33333333%;
781 }
781 }
782 .col-xs-9 {
782 .col-xs-9 {
783 width: 75%;
783 width: 75%;
784 }
784 }
785 .col-xs-8 {
785 .col-xs-8 {
786 width: 66.66666667%;
786 width: 66.66666667%;
787 }
787 }
788 .col-xs-7 {
788 .col-xs-7 {
789 width: 58.33333333%;
789 width: 58.33333333%;
790 }
790 }
791 .col-xs-6 {
791 .col-xs-6 {
792 width: 50%;
792 width: 50%;
793 }
793 }
794 .col-xs-5 {
794 .col-xs-5 {
795 width: 41.66666667%;
795 width: 41.66666667%;
796 }
796 }
797 .col-xs-4 {
797 .col-xs-4 {
798 width: 33.33333333%;
798 width: 33.33333333%;
799 }
799 }
800 .col-xs-3 {
800 .col-xs-3 {
801 width: 25%;
801 width: 25%;
802 }
802 }
803 .col-xs-2 {
803 .col-xs-2 {
804 width: 16.66666667%;
804 width: 16.66666667%;
805 }
805 }
806 .col-xs-1 {
806 .col-xs-1 {
807 width: 8.33333333%;
807 width: 8.33333333%;
808 }
808 }
809 .col-xs-pull-12 {
809 .col-xs-pull-12 {
810 right: 100%;
810 right: 100%;
811 }
811 }
812 .col-xs-pull-11 {
812 .col-xs-pull-11 {
813 right: 91.66666667%;
813 right: 91.66666667%;
814 }
814 }
815 .col-xs-pull-10 {
815 .col-xs-pull-10 {
816 right: 83.33333333%;
816 right: 83.33333333%;
817 }
817 }
818 .col-xs-pull-9 {
818 .col-xs-pull-9 {
819 right: 75%;
819 right: 75%;
820 }
820 }
821 .col-xs-pull-8 {
821 .col-xs-pull-8 {
822 right: 66.66666667%;
822 right: 66.66666667%;
823 }
823 }
824 .col-xs-pull-7 {
824 .col-xs-pull-7 {
825 right: 58.33333333%;
825 right: 58.33333333%;
826 }
826 }
827 .col-xs-pull-6 {
827 .col-xs-pull-6 {
828 right: 50%;
828 right: 50%;
829 }
829 }
830 .col-xs-pull-5 {
830 .col-xs-pull-5 {
831 right: 41.66666667%;
831 right: 41.66666667%;
832 }
832 }
833 .col-xs-pull-4 {
833 .col-xs-pull-4 {
834 right: 33.33333333%;
834 right: 33.33333333%;
835 }
835 }
836 .col-xs-pull-3 {
836 .col-xs-pull-3 {
837 right: 25%;
837 right: 25%;
838 }
838 }
839 .col-xs-pull-2 {
839 .col-xs-pull-2 {
840 right: 16.66666667%;
840 right: 16.66666667%;
841 }
841 }
842 .col-xs-pull-1 {
842 .col-xs-pull-1 {
843 right: 8.33333333%;
843 right: 8.33333333%;
844 }
844 }
845 .col-xs-pull-0 {
845 .col-xs-pull-0 {
846 right: 0%;
846 right: 0%;
847 }
847 }
848 .col-xs-push-12 {
848 .col-xs-push-12 {
849 left: 100%;
849 left: 100%;
850 }
850 }
851 .col-xs-push-11 {
851 .col-xs-push-11 {
852 left: 91.66666667%;
852 left: 91.66666667%;
853 }
853 }
854 .col-xs-push-10 {
854 .col-xs-push-10 {
855 left: 83.33333333%;
855 left: 83.33333333%;
856 }
856 }
857 .col-xs-push-9 {
857 .col-xs-push-9 {
858 left: 75%;
858 left: 75%;
859 }
859 }
860 .col-xs-push-8 {
860 .col-xs-push-8 {
861 left: 66.66666667%;
861 left: 66.66666667%;
862 }
862 }
863 .col-xs-push-7 {
863 .col-xs-push-7 {
864 left: 58.33333333%;
864 left: 58.33333333%;
865 }
865 }
866 .col-xs-push-6 {
866 .col-xs-push-6 {
867 left: 50%;
867 left: 50%;
868 }
868 }
869 .col-xs-push-5 {
869 .col-xs-push-5 {
870 left: 41.66666667%;
870 left: 41.66666667%;
871 }
871 }
872 .col-xs-push-4 {
872 .col-xs-push-4 {
873 left: 33.33333333%;
873 left: 33.33333333%;
874 }
874 }
875 .col-xs-push-3 {
875 .col-xs-push-3 {
876 left: 25%;
876 left: 25%;
877 }
877 }
878 .col-xs-push-2 {
878 .col-xs-push-2 {
879 left: 16.66666667%;
879 left: 16.66666667%;
880 }
880 }
881 .col-xs-push-1 {
881 .col-xs-push-1 {
882 left: 8.33333333%;
882 left: 8.33333333%;
883 }
883 }
884 .col-xs-push-0 {
884 .col-xs-push-0 {
885 left: 0%;
885 left: 0%;
886 }
886 }
887 .col-xs-offset-12 {
887 .col-xs-offset-12 {
888 margin-left: 100%;
888 margin-left: 100%;
889 }
889 }
890 .col-xs-offset-11 {
890 .col-xs-offset-11 {
891 margin-left: 91.66666667%;
891 margin-left: 91.66666667%;
892 }
892 }
893 .col-xs-offset-10 {
893 .col-xs-offset-10 {
894 margin-left: 83.33333333%;
894 margin-left: 83.33333333%;
895 }
895 }
896 .col-xs-offset-9 {
896 .col-xs-offset-9 {
897 margin-left: 75%;
897 margin-left: 75%;
898 }
898 }
899 .col-xs-offset-8 {
899 .col-xs-offset-8 {
900 margin-left: 66.66666667%;
900 margin-left: 66.66666667%;
901 }
901 }
902 .col-xs-offset-7 {
902 .col-xs-offset-7 {
903 margin-left: 58.33333333%;
903 margin-left: 58.33333333%;
904 }
904 }
905 .col-xs-offset-6 {
905 .col-xs-offset-6 {
906 margin-left: 50%;
906 margin-left: 50%;
907 }
907 }
908 .col-xs-offset-5 {
908 .col-xs-offset-5 {
909 margin-left: 41.66666667%;
909 margin-left: 41.66666667%;
910 }
910 }
911 .col-xs-offset-4 {
911 .col-xs-offset-4 {
912 margin-left: 33.33333333%;
912 margin-left: 33.33333333%;
913 }
913 }
914 .col-xs-offset-3 {
914 .col-xs-offset-3 {
915 margin-left: 25%;
915 margin-left: 25%;
916 }
916 }
917 .col-xs-offset-2 {
917 .col-xs-offset-2 {
918 margin-left: 16.66666667%;
918 margin-left: 16.66666667%;
919 }
919 }
920 .col-xs-offset-1 {
920 .col-xs-offset-1 {
921 margin-left: 8.33333333%;
921 margin-left: 8.33333333%;
922 }
922 }
923 .col-xs-offset-0 {
923 .col-xs-offset-0 {
924 margin-left: 0%;
924 margin-left: 0%;
925 }
925 }
926 @media (min-width: 768px) {
926 @media (min-width: 768px) {
927 .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
927 .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
928 float: left;
928 float: left;
929 }
929 }
930 .col-sm-12 {
930 .col-sm-12 {
931 width: 100%;
931 width: 100%;
932 }
932 }
933 .col-sm-11 {
933 .col-sm-11 {
934 width: 91.66666667%;
934 width: 91.66666667%;
935 }
935 }
936 .col-sm-10 {
936 .col-sm-10 {
937 width: 83.33333333%;
937 width: 83.33333333%;
938 }
938 }
939 .col-sm-9 {
939 .col-sm-9 {
940 width: 75%;
940 width: 75%;
941 }
941 }
942 .col-sm-8 {
942 .col-sm-8 {
943 width: 66.66666667%;
943 width: 66.66666667%;
944 }
944 }
945 .col-sm-7 {
945 .col-sm-7 {
946 width: 58.33333333%;
946 width: 58.33333333%;
947 }
947 }
948 .col-sm-6 {
948 .col-sm-6 {
949 width: 50%;
949 width: 50%;
950 }
950 }
951 .col-sm-5 {
951 .col-sm-5 {
952 width: 41.66666667%;
952 width: 41.66666667%;
953 }
953 }
954 .col-sm-4 {
954 .col-sm-4 {
955 width: 33.33333333%;
955 width: 33.33333333%;
956 }
956 }
957 .col-sm-3 {
957 .col-sm-3 {
958 width: 25%;
958 width: 25%;
959 }
959 }
960 .col-sm-2 {
960 .col-sm-2 {
961 width: 16.66666667%;
961 width: 16.66666667%;
962 }
962 }
963 .col-sm-1 {
963 .col-sm-1 {
964 width: 8.33333333%;
964 width: 8.33333333%;
965 }
965 }
966 .col-sm-pull-12 {
966 .col-sm-pull-12 {
967 right: 100%;
967 right: 100%;
968 }
968 }
969 .col-sm-pull-11 {
969 .col-sm-pull-11 {
970 right: 91.66666667%;
970 right: 91.66666667%;
971 }
971 }
972 .col-sm-pull-10 {
972 .col-sm-pull-10 {
973 right: 83.33333333%;
973 right: 83.33333333%;
974 }
974 }
975 .col-sm-pull-9 {
975 .col-sm-pull-9 {
976 right: 75%;
976 right: 75%;
977 }
977 }
978 .col-sm-pull-8 {
978 .col-sm-pull-8 {
979 right: 66.66666667%;
979 right: 66.66666667%;
980 }
980 }
981 .col-sm-pull-7 {
981 .col-sm-pull-7 {
982 right: 58.33333333%;
982 right: 58.33333333%;
983 }
983 }
984 .col-sm-pull-6 {
984 .col-sm-pull-6 {
985 right: 50%;
985 right: 50%;
986 }
986 }
987 .col-sm-pull-5 {
987 .col-sm-pull-5 {
988 right: 41.66666667%;
988 right: 41.66666667%;
989 }
989 }
990 .col-sm-pull-4 {
990 .col-sm-pull-4 {
991 right: 33.33333333%;
991 right: 33.33333333%;
992 }
992 }
993 .col-sm-pull-3 {
993 .col-sm-pull-3 {
994 right: 25%;
994 right: 25%;
995 }
995 }
996 .col-sm-pull-2 {
996 .col-sm-pull-2 {
997 right: 16.66666667%;
997 right: 16.66666667%;
998 }
998 }
999 .col-sm-pull-1 {
999 .col-sm-pull-1 {
1000 right: 8.33333333%;
1000 right: 8.33333333%;
1001 }
1001 }
1002 .col-sm-pull-0 {
1002 .col-sm-pull-0 {
1003 right: 0%;
1003 right: 0%;
1004 }
1004 }
1005 .col-sm-push-12 {
1005 .col-sm-push-12 {
1006 left: 100%;
1006 left: 100%;
1007 }
1007 }
1008 .col-sm-push-11 {
1008 .col-sm-push-11 {
1009 left: 91.66666667%;
1009 left: 91.66666667%;
1010 }
1010 }
1011 .col-sm-push-10 {
1011 .col-sm-push-10 {
1012 left: 83.33333333%;
1012 left: 83.33333333%;
1013 }
1013 }
1014 .col-sm-push-9 {
1014 .col-sm-push-9 {
1015 left: 75%;
1015 left: 75%;
1016 }
1016 }
1017 .col-sm-push-8 {
1017 .col-sm-push-8 {
1018 left: 66.66666667%;
1018 left: 66.66666667%;
1019 }
1019 }
1020 .col-sm-push-7 {
1020 .col-sm-push-7 {
1021 left: 58.33333333%;
1021 left: 58.33333333%;
1022 }
1022 }
1023 .col-sm-push-6 {
1023 .col-sm-push-6 {
1024 left: 50%;
1024 left: 50%;
1025 }
1025 }
1026 .col-sm-push-5 {
1026 .col-sm-push-5 {
1027 left: 41.66666667%;
1027 left: 41.66666667%;
1028 }
1028 }
1029 .col-sm-push-4 {
1029 .col-sm-push-4 {
1030 left: 33.33333333%;
1030 left: 33.33333333%;
1031 }
1031 }
1032 .col-sm-push-3 {
1032 .col-sm-push-3 {
1033 left: 25%;
1033 left: 25%;
1034 }
1034 }
1035 .col-sm-push-2 {
1035 .col-sm-push-2 {
1036 left: 16.66666667%;
1036 left: 16.66666667%;
1037 }
1037 }
1038 .col-sm-push-1 {
1038 .col-sm-push-1 {
1039 left: 8.33333333%;
1039 left: 8.33333333%;
1040 }
1040 }
1041 .col-sm-push-0 {
1041 .col-sm-push-0 {
1042 left: 0%;
1042 left: 0%;
1043 }
1043 }
1044 .col-sm-offset-12 {
1044 .col-sm-offset-12 {
1045 margin-left: 100%;
1045 margin-left: 100%;
1046 }
1046 }
1047 .col-sm-offset-11 {
1047 .col-sm-offset-11 {
1048 margin-left: 91.66666667%;
1048 margin-left: 91.66666667%;
1049 }
1049 }
1050 .col-sm-offset-10 {
1050 .col-sm-offset-10 {
1051 margin-left: 83.33333333%;
1051 margin-left: 83.33333333%;
1052 }
1052 }
1053 .col-sm-offset-9 {
1053 .col-sm-offset-9 {
1054 margin-left: 75%;
1054 margin-left: 75%;
1055 }
1055 }
1056 .col-sm-offset-8 {
1056 .col-sm-offset-8 {
1057 margin-left: 66.66666667%;
1057 margin-left: 66.66666667%;
1058 }
1058 }
1059 .col-sm-offset-7 {
1059 .col-sm-offset-7 {
1060 margin-left: 58.33333333%;
1060 margin-left: 58.33333333%;
1061 }
1061 }
1062 .col-sm-offset-6 {
1062 .col-sm-offset-6 {
1063 margin-left: 50%;
1063 margin-left: 50%;
1064 }
1064 }
1065 .col-sm-offset-5 {
1065 .col-sm-offset-5 {
1066 margin-left: 41.66666667%;
1066 margin-left: 41.66666667%;
1067 }
1067 }
1068 .col-sm-offset-4 {
1068 .col-sm-offset-4 {
1069 margin-left: 33.33333333%;
1069 margin-left: 33.33333333%;
1070 }
1070 }
1071 .col-sm-offset-3 {
1071 .col-sm-offset-3 {
1072 margin-left: 25%;
1072 margin-left: 25%;
1073 }
1073 }
1074 .col-sm-offset-2 {
1074 .col-sm-offset-2 {
1075 margin-left: 16.66666667%;
1075 margin-left: 16.66666667%;
1076 }
1076 }
1077 .col-sm-offset-1 {
1077 .col-sm-offset-1 {
1078 margin-left: 8.33333333%;
1078 margin-left: 8.33333333%;
1079 }
1079 }
1080 .col-sm-offset-0 {
1080 .col-sm-offset-0 {
1081 margin-left: 0%;
1081 margin-left: 0%;
1082 }
1082 }
1083 }
1083 }
1084 @media (min-width: 992px) {
1084 @media (min-width: 992px) {
1085 .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
1085 .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
1086 float: left;
1086 float: left;
1087 }
1087 }
1088 .col-md-12 {
1088 .col-md-12 {
1089 width: 100%;
1089 width: 100%;
1090 }
1090 }
1091 .col-md-11 {
1091 .col-md-11 {
1092 width: 91.66666667%;
1092 width: 91.66666667%;
1093 }
1093 }
1094 .col-md-10 {
1094 .col-md-10 {
1095 width: 83.33333333%;
1095 width: 83.33333333%;
1096 }
1096 }
1097 .col-md-9 {
1097 .col-md-9 {
1098 width: 75%;
1098 width: 75%;
1099 }
1099 }
1100 .col-md-8 {
1100 .col-md-8 {
1101 width: 66.66666667%;
1101 width: 66.66666667%;
1102 }
1102 }
1103 .col-md-7 {
1103 .col-md-7 {
1104 width: 58.33333333%;
1104 width: 58.33333333%;
1105 }
1105 }
1106 .col-md-6 {
1106 .col-md-6 {
1107 width: 50%;
1107 width: 50%;
1108 }
1108 }
1109 .col-md-5 {
1109 .col-md-5 {
1110 width: 41.66666667%;
1110 width: 41.66666667%;
1111 }
1111 }
1112 .col-md-4 {
1112 .col-md-4 {
1113 width: 33.33333333%;
1113 width: 33.33333333%;
1114 }
1114 }
1115 .col-md-3 {
1115 .col-md-3 {
1116 width: 25%;
1116 width: 25%;
1117 }
1117 }
1118 .col-md-2 {
1118 .col-md-2 {
1119 width: 16.66666667%;
1119 width: 16.66666667%;
1120 }
1120 }
1121 .col-md-1 {
1121 .col-md-1 {
1122 width: 8.33333333%;
1122 width: 8.33333333%;
1123 }
1123 }
1124 .col-md-pull-12 {
1124 .col-md-pull-12 {
1125 right: 100%;
1125 right: 100%;
1126 }
1126 }
1127 .col-md-pull-11 {
1127 .col-md-pull-11 {
1128 right: 91.66666667%;
1128 right: 91.66666667%;
1129 }
1129 }
1130 .col-md-pull-10 {
1130 .col-md-pull-10 {
1131 right: 83.33333333%;
1131 right: 83.33333333%;
1132 }
1132 }
1133 .col-md-pull-9 {
1133 .col-md-pull-9 {
1134 right: 75%;
1134 right: 75%;
1135 }
1135 }
1136 .col-md-pull-8 {
1136 .col-md-pull-8 {
1137 right: 66.66666667%;
1137 right: 66.66666667%;
1138 }
1138 }
1139 .col-md-pull-7 {
1139 .col-md-pull-7 {
1140 right: 58.33333333%;
1140 right: 58.33333333%;
1141 }
1141 }
1142 .col-md-pull-6 {
1142 .col-md-pull-6 {
1143 right: 50%;
1143 right: 50%;
1144 }
1144 }
1145 .col-md-pull-5 {
1145 .col-md-pull-5 {
1146 right: 41.66666667%;
1146 right: 41.66666667%;
1147 }
1147 }
1148 .col-md-pull-4 {
1148 .col-md-pull-4 {
1149 right: 33.33333333%;
1149 right: 33.33333333%;
1150 }
1150 }
1151 .col-md-pull-3 {
1151 .col-md-pull-3 {
1152 right: 25%;
1152 right: 25%;
1153 }
1153 }
1154 .col-md-pull-2 {
1154 .col-md-pull-2 {
1155 right: 16.66666667%;
1155 right: 16.66666667%;
1156 }
1156 }
1157 .col-md-pull-1 {
1157 .col-md-pull-1 {
1158 right: 8.33333333%;
1158 right: 8.33333333%;
1159 }
1159 }
1160 .col-md-pull-0 {
1160 .col-md-pull-0 {
1161 right: 0%;
1161 right: 0%;
1162 }
1162 }
1163 .col-md-push-12 {
1163 .col-md-push-12 {
1164 left: 100%;
1164 left: 100%;
1165 }
1165 }
1166 .col-md-push-11 {
1166 .col-md-push-11 {
1167 left: 91.66666667%;
1167 left: 91.66666667%;
1168 }
1168 }
1169 .col-md-push-10 {
1169 .col-md-push-10 {
1170 left: 83.33333333%;
1170 left: 83.33333333%;
1171 }
1171 }
1172 .col-md-push-9 {
1172 .col-md-push-9 {
1173 left: 75%;
1173 left: 75%;
1174 }
1174 }
1175 .col-md-push-8 {
1175 .col-md-push-8 {
1176 left: 66.66666667%;
1176 left: 66.66666667%;
1177 }
1177 }
1178 .col-md-push-7 {
1178 .col-md-push-7 {
1179 left: 58.33333333%;
1179 left: 58.33333333%;
1180 }
1180 }
1181 .col-md-push-6 {
1181 .col-md-push-6 {
1182 left: 50%;
1182 left: 50%;
1183 }
1183 }
1184 .col-md-push-5 {
1184 .col-md-push-5 {
1185 left: 41.66666667%;
1185 left: 41.66666667%;
1186 }
1186 }
1187 .col-md-push-4 {
1187 .col-md-push-4 {
1188 left: 33.33333333%;
1188 left: 33.33333333%;
1189 }
1189 }
1190 .col-md-push-3 {
1190 .col-md-push-3 {
1191 left: 25%;
1191 left: 25%;
1192 }
1192 }
1193 .col-md-push-2 {
1193 .col-md-push-2 {
1194 left: 16.66666667%;
1194 left: 16.66666667%;
1195 }
1195 }
1196 .col-md-push-1 {
1196 .col-md-push-1 {
1197 left: 8.33333333%;
1197 left: 8.33333333%;
1198 }
1198 }
1199 .col-md-push-0 {
1199 .col-md-push-0 {
1200 left: 0%;
1200 left: 0%;
1201 }
1201 }
1202 .col-md-offset-12 {
1202 .col-md-offset-12 {
1203 margin-left: 100%;
1203 margin-left: 100%;
1204 }
1204 }
1205 .col-md-offset-11 {
1205 .col-md-offset-11 {
1206 margin-left: 91.66666667%;
1206 margin-left: 91.66666667%;
1207 }
1207 }
1208 .col-md-offset-10 {
1208 .col-md-offset-10 {
1209 margin-left: 83.33333333%;
1209 margin-left: 83.33333333%;
1210 }
1210 }
1211 .col-md-offset-9 {
1211 .col-md-offset-9 {
1212 margin-left: 75%;
1212 margin-left: 75%;
1213 }
1213 }
1214 .col-md-offset-8 {
1214 .col-md-offset-8 {
1215 margin-left: 66.66666667%;
1215 margin-left: 66.66666667%;
1216 }
1216 }
1217 .col-md-offset-7 {
1217 .col-md-offset-7 {
1218 margin-left: 58.33333333%;
1218 margin-left: 58.33333333%;
1219 }
1219 }
1220 .col-md-offset-6 {
1220 .col-md-offset-6 {
1221 margin-left: 50%;
1221 margin-left: 50%;
1222 }
1222 }
1223 .col-md-offset-5 {
1223 .col-md-offset-5 {
1224 margin-left: 41.66666667%;
1224 margin-left: 41.66666667%;
1225 }
1225 }
1226 .col-md-offset-4 {
1226 .col-md-offset-4 {
1227 margin-left: 33.33333333%;
1227 margin-left: 33.33333333%;
1228 }
1228 }
1229 .col-md-offset-3 {
1229 .col-md-offset-3 {
1230 margin-left: 25%;
1230 margin-left: 25%;
1231 }
1231 }
1232 .col-md-offset-2 {
1232 .col-md-offset-2 {
1233 margin-left: 16.66666667%;
1233 margin-left: 16.66666667%;
1234 }
1234 }
1235 .col-md-offset-1 {
1235 .col-md-offset-1 {
1236 margin-left: 8.33333333%;
1236 margin-left: 8.33333333%;
1237 }
1237 }
1238 .col-md-offset-0 {
1238 .col-md-offset-0 {
1239 margin-left: 0%;
1239 margin-left: 0%;
1240 }
1240 }
1241 }
1241 }
1242 @media (min-width: 1200px) {
1242 @media (min-width: 1200px) {
1243 .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
1243 .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
1244 float: left;
1244 float: left;
1245 }
1245 }
1246 .col-lg-12 {
1246 .col-lg-12 {
1247 width: 100%;
1247 width: 100%;
1248 }
1248 }
1249 .col-lg-11 {
1249 .col-lg-11 {
1250 width: 91.66666667%;
1250 width: 91.66666667%;
1251 }
1251 }
1252 .col-lg-10 {
1252 .col-lg-10 {
1253 width: 83.33333333%;
1253 width: 83.33333333%;
1254 }
1254 }
1255 .col-lg-9 {
1255 .col-lg-9 {
1256 width: 75%;
1256 width: 75%;
1257 }
1257 }
1258 .col-lg-8 {
1258 .col-lg-8 {
1259 width: 66.66666667%;
1259 width: 66.66666667%;
1260 }
1260 }
1261 .col-lg-7 {
1261 .col-lg-7 {
1262 width: 58.33333333%;
1262 width: 58.33333333%;
1263 }
1263 }
1264 .col-lg-6 {
1264 .col-lg-6 {
1265 width: 50%;
1265 width: 50%;
1266 }
1266 }
1267 .col-lg-5 {
1267 .col-lg-5 {
1268 width: 41.66666667%;
1268 width: 41.66666667%;
1269 }
1269 }
1270 .col-lg-4 {
1270 .col-lg-4 {
1271 width: 33.33333333%;
1271 width: 33.33333333%;
1272 }
1272 }
1273 .col-lg-3 {
1273 .col-lg-3 {
1274 width: 25%;
1274 width: 25%;
1275 }
1275 }
1276 .col-lg-2 {
1276 .col-lg-2 {
1277 width: 16.66666667%;
1277 width: 16.66666667%;
1278 }
1278 }
1279 .col-lg-1 {
1279 .col-lg-1 {
1280 width: 8.33333333%;
1280 width: 8.33333333%;
1281 }
1281 }
1282 .col-lg-pull-12 {
1282 .col-lg-pull-12 {
1283 right: 100%;
1283 right: 100%;
1284 }
1284 }
1285 .col-lg-pull-11 {
1285 .col-lg-pull-11 {
1286 right: 91.66666667%;
1286 right: 91.66666667%;
1287 }
1287 }
1288 .col-lg-pull-10 {
1288 .col-lg-pull-10 {
1289 right: 83.33333333%;
1289 right: 83.33333333%;
1290 }
1290 }
1291 .col-lg-pull-9 {
1291 .col-lg-pull-9 {
1292 right: 75%;
1292 right: 75%;
1293 }
1293 }
1294 .col-lg-pull-8 {
1294 .col-lg-pull-8 {
1295 right: 66.66666667%;
1295 right: 66.66666667%;
1296 }
1296 }
1297 .col-lg-pull-7 {
1297 .col-lg-pull-7 {
1298 right: 58.33333333%;
1298 right: 58.33333333%;
1299 }
1299 }
1300 .col-lg-pull-6 {
1300 .col-lg-pull-6 {
1301 right: 50%;
1301 right: 50%;
1302 }
1302 }
1303 .col-lg-pull-5 {
1303 .col-lg-pull-5 {
1304 right: 41.66666667%;
1304 right: 41.66666667%;
1305 }
1305 }
1306 .col-lg-pull-4 {
1306 .col-lg-pull-4 {
1307 right: 33.33333333%;
1307 right: 33.33333333%;
1308 }
1308 }
1309 .col-lg-pull-3 {
1309 .col-lg-pull-3 {
1310 right: 25%;
1310 right: 25%;
1311 }
1311 }
1312 .col-lg-pull-2 {
1312 .col-lg-pull-2 {
1313 right: 16.66666667%;
1313 right: 16.66666667%;
1314 }
1314 }
1315 .col-lg-pull-1 {
1315 .col-lg-pull-1 {
1316 right: 8.33333333%;
1316 right: 8.33333333%;
1317 }
1317 }
1318 .col-lg-pull-0 {
1318 .col-lg-pull-0 {
1319 right: 0%;
1319 right: 0%;
1320 }
1320 }
1321 .col-lg-push-12 {
1321 .col-lg-push-12 {
1322 left: 100%;
1322 left: 100%;
1323 }
1323 }
1324 .col-lg-push-11 {
1324 .col-lg-push-11 {
1325 left: 91.66666667%;
1325 left: 91.66666667%;
1326 }
1326 }
1327 .col-lg-push-10 {
1327 .col-lg-push-10 {
1328 left: 83.33333333%;
1328 left: 83.33333333%;
1329 }
1329 }
1330 .col-lg-push-9 {
1330 .col-lg-push-9 {
1331 left: 75%;
1331 left: 75%;
1332 }
1332 }
1333 .col-lg-push-8 {
1333 .col-lg-push-8 {
1334 left: 66.66666667%;
1334 left: 66.66666667%;
1335 }
1335 }
1336 .col-lg-push-7 {
1336 .col-lg-push-7 {
1337 left: 58.33333333%;
1337 left: 58.33333333%;
1338 }
1338 }
1339 .col-lg-push-6 {
1339 .col-lg-push-6 {
1340 left: 50%;
1340 left: 50%;
1341 }
1341 }
1342 .col-lg-push-5 {
1342 .col-lg-push-5 {
1343 left: 41.66666667%;
1343 left: 41.66666667%;
1344 }
1344 }
1345 .col-lg-push-4 {
1345 .col-lg-push-4 {
1346 left: 33.33333333%;
1346 left: 33.33333333%;
1347 }
1347 }
1348 .col-lg-push-3 {
1348 .col-lg-push-3 {
1349 left: 25%;
1349 left: 25%;
1350 }
1350 }
1351 .col-lg-push-2 {
1351 .col-lg-push-2 {
1352 left: 16.66666667%;
1352 left: 16.66666667%;
1353 }
1353 }
1354 .col-lg-push-1 {
1354 .col-lg-push-1 {
1355 left: 8.33333333%;
1355 left: 8.33333333%;
1356 }
1356 }
1357 .col-lg-push-0 {
1357 .col-lg-push-0 {
1358 left: 0%;
1358 left: 0%;
1359 }
1359 }
1360 .col-lg-offset-12 {
1360 .col-lg-offset-12 {
1361 margin-left: 100%;
1361 margin-left: 100%;
1362 }
1362 }
1363 .col-lg-offset-11 {
1363 .col-lg-offset-11 {
1364 margin-left: 91.66666667%;
1364 margin-left: 91.66666667%;
1365 }
1365 }
1366 .col-lg-offset-10 {
1366 .col-lg-offset-10 {
1367 margin-left: 83.33333333%;
1367 margin-left: 83.33333333%;
1368 }
1368 }
1369 .col-lg-offset-9 {
1369 .col-lg-offset-9 {
1370 margin-left: 75%;
1370 margin-left: 75%;
1371 }
1371 }
1372 .col-lg-offset-8 {
1372 .col-lg-offset-8 {
1373 margin-left: 66.66666667%;
1373 margin-left: 66.66666667%;
1374 }
1374 }
1375 .col-lg-offset-7 {
1375 .col-lg-offset-7 {
1376 margin-left: 58.33333333%;
1376 margin-left: 58.33333333%;
1377 }
1377 }
1378 .col-lg-offset-6 {
1378 .col-lg-offset-6 {
1379 margin-left: 50%;
1379 margin-left: 50%;
1380 }
1380 }
1381 .col-lg-offset-5 {
1381 .col-lg-offset-5 {
1382 margin-left: 41.66666667%;
1382 margin-left: 41.66666667%;
1383 }
1383 }
1384 .col-lg-offset-4 {
1384 .col-lg-offset-4 {
1385 margin-left: 33.33333333%;
1385 margin-left: 33.33333333%;
1386 }
1386 }
1387 .col-lg-offset-3 {
1387 .col-lg-offset-3 {
1388 margin-left: 25%;
1388 margin-left: 25%;
1389 }
1389 }
1390 .col-lg-offset-2 {
1390 .col-lg-offset-2 {
1391 margin-left: 16.66666667%;
1391 margin-left: 16.66666667%;
1392 }
1392 }
1393 .col-lg-offset-1 {
1393 .col-lg-offset-1 {
1394 margin-left: 8.33333333%;
1394 margin-left: 8.33333333%;
1395 }
1395 }
1396 .col-lg-offset-0 {
1396 .col-lg-offset-0 {
1397 margin-left: 0%;
1397 margin-left: 0%;
1398 }
1398 }
1399 }
1399 }
1400 table {
1400 table {
1401 max-width: 100%;
1401 max-width: 100%;
1402 background-color: transparent;
1402 background-color: transparent;
1403 }
1403 }
1404 th {
1404 th {
1405 text-align: left;
1405 text-align: left;
1406 }
1406 }
1407 .table {
1407 .table {
1408 width: 100%;
1408 width: 100%;
1409 margin-bottom: 18px;
1409 margin-bottom: 18px;
1410 }
1410 }
1411 .table > thead > tr > th,
1411 .table > thead > tr > th,
1412 .table > tbody > tr > th,
1412 .table > tbody > tr > th,
1413 .table > tfoot > tr > th,
1413 .table > tfoot > tr > th,
1414 .table > thead > tr > td,
1414 .table > thead > tr > td,
1415 .table > tbody > tr > td,
1415 .table > tbody > tr > td,
1416 .table > tfoot > tr > td {
1416 .table > tfoot > tr > td {
1417 padding: 8px;
1417 padding: 8px;
1418 line-height: 1.42857143;
1418 line-height: 1.42857143;
1419 vertical-align: top;
1419 vertical-align: top;
1420 border-top: 1px solid #dddddd;
1420 border-top: 1px solid #dddddd;
1421 }
1421 }
1422 .table > thead > tr > th {
1422 .table > thead > tr > th {
1423 vertical-align: bottom;
1423 vertical-align: bottom;
1424 border-bottom: 2px solid #dddddd;
1424 border-bottom: 2px solid #dddddd;
1425 }
1425 }
1426 .table > caption + thead > tr:first-child > th,
1426 .table > caption + thead > tr:first-child > th,
1427 .table > colgroup + thead > tr:first-child > th,
1427 .table > colgroup + thead > tr:first-child > th,
1428 .table > thead:first-child > tr:first-child > th,
1428 .table > thead:first-child > tr:first-child > th,
1429 .table > caption + thead > tr:first-child > td,
1429 .table > caption + thead > tr:first-child > td,
1430 .table > colgroup + thead > tr:first-child > td,
1430 .table > colgroup + thead > tr:first-child > td,
1431 .table > thead:first-child > tr:first-child > td {
1431 .table > thead:first-child > tr:first-child > td {
1432 border-top: 0;
1432 border-top: 0;
1433 }
1433 }
1434 .table > tbody + tbody {
1434 .table > tbody + tbody {
1435 border-top: 2px solid #dddddd;
1435 border-top: 2px solid #dddddd;
1436 }
1436 }
1437 .table .table {
1437 .table .table {
1438 background-color: #ffffff;
1438 background-color: #ffffff;
1439 }
1439 }
1440 .table-condensed > thead > tr > th,
1440 .table-condensed > thead > tr > th,
1441 .table-condensed > tbody > tr > th,
1441 .table-condensed > tbody > tr > th,
1442 .table-condensed > tfoot > tr > th,
1442 .table-condensed > tfoot > tr > th,
1443 .table-condensed > thead > tr > td,
1443 .table-condensed > thead > tr > td,
1444 .table-condensed > tbody > tr > td,
1444 .table-condensed > tbody > tr > td,
1445 .table-condensed > tfoot > tr > td {
1445 .table-condensed > tfoot > tr > td {
1446 padding: 5px;
1446 padding: 5px;
1447 }
1447 }
1448 .table-bordered {
1448 .table-bordered {
1449 border: 1px solid #dddddd;
1449 border: 1px solid #dddddd;
1450 }
1450 }
1451 .table-bordered > thead > tr > th,
1451 .table-bordered > thead > tr > th,
1452 .table-bordered > tbody > tr > th,
1452 .table-bordered > tbody > tr > th,
1453 .table-bordered > tfoot > tr > th,
1453 .table-bordered > tfoot > tr > th,
1454 .table-bordered > thead > tr > td,
1454 .table-bordered > thead > tr > td,
1455 .table-bordered > tbody > tr > td,
1455 .table-bordered > tbody > tr > td,
1456 .table-bordered > tfoot > tr > td {
1456 .table-bordered > tfoot > tr > td {
1457 border: 1px solid #dddddd;
1457 border: 1px solid #dddddd;
1458 }
1458 }
1459 .table-bordered > thead > tr > th,
1459 .table-bordered > thead > tr > th,
1460 .table-bordered > thead > tr > td {
1460 .table-bordered > thead > tr > td {
1461 border-bottom-width: 2px;
1461 border-bottom-width: 2px;
1462 }
1462 }
1463 .table-striped > tbody > tr:nth-child(odd) > td,
1463 .table-striped > tbody > tr:nth-child(odd) > td,
1464 .table-striped > tbody > tr:nth-child(odd) > th {
1464 .table-striped > tbody > tr:nth-child(odd) > th {
1465 background-color: #f9f9f9;
1465 background-color: #f9f9f9;
1466 }
1466 }
1467 .table-hover > tbody > tr:hover > td,
1467 .table-hover > tbody > tr:hover > td,
1468 .table-hover > tbody > tr:hover > th {
1468 .table-hover > tbody > tr:hover > th {
1469 background-color: #f5f5f5;
1469 background-color: #f5f5f5;
1470 }
1470 }
1471 table col[class*="col-"] {
1471 table col[class*="col-"] {
1472 position: static;
1472 position: static;
1473 float: none;
1473 float: none;
1474 display: table-column;
1474 display: table-column;
1475 }
1475 }
1476 table td[class*="col-"],
1476 table td[class*="col-"],
1477 table th[class*="col-"] {
1477 table th[class*="col-"] {
1478 position: static;
1478 position: static;
1479 float: none;
1479 float: none;
1480 display: table-cell;
1480 display: table-cell;
1481 }
1481 }
1482 .table > thead > tr > td.active,
1482 .table > thead > tr > td.active,
1483 .table > tbody > tr > td.active,
1483 .table > tbody > tr > td.active,
1484 .table > tfoot > tr > td.active,
1484 .table > tfoot > tr > td.active,
1485 .table > thead > tr > th.active,
1485 .table > thead > tr > th.active,
1486 .table > tbody > tr > th.active,
1486 .table > tbody > tr > th.active,
1487 .table > tfoot > tr > th.active,
1487 .table > tfoot > tr > th.active,
1488 .table > thead > tr.active > td,
1488 .table > thead > tr.active > td,
1489 .table > tbody > tr.active > td,
1489 .table > tbody > tr.active > td,
1490 .table > tfoot > tr.active > td,
1490 .table > tfoot > tr.active > td,
1491 .table > thead > tr.active > th,
1491 .table > thead > tr.active > th,
1492 .table > tbody > tr.active > th,
1492 .table > tbody > tr.active > th,
1493 .table > tfoot > tr.active > th {
1493 .table > tfoot > tr.active > th {
1494 background-color: #f5f5f5;
1494 background-color: #f5f5f5;
1495 }
1495 }
1496 .table-hover > tbody > tr > td.active:hover,
1496 .table-hover > tbody > tr > td.active:hover,
1497 .table-hover > tbody > tr > th.active:hover,
1497 .table-hover > tbody > tr > th.active:hover,
1498 .table-hover > tbody > tr.active:hover > td,
1498 .table-hover > tbody > tr.active:hover > td,
1499 .table-hover > tbody > tr.active:hover > th {
1499 .table-hover > tbody > tr.active:hover > th {
1500 background-color: #e8e8e8;
1500 background-color: #e8e8e8;
1501 }
1501 }
1502 .table > thead > tr > td.success,
1502 .table > thead > tr > td.success,
1503 .table > tbody > tr > td.success,
1503 .table > tbody > tr > td.success,
1504 .table > tfoot > tr > td.success,
1504 .table > tfoot > tr > td.success,
1505 .table > thead > tr > th.success,
1505 .table > thead > tr > th.success,
1506 .table > tbody > tr > th.success,
1506 .table > tbody > tr > th.success,
1507 .table > tfoot > tr > th.success,
1507 .table > tfoot > tr > th.success,
1508 .table > thead > tr.success > td,
1508 .table > thead > tr.success > td,
1509 .table > tbody > tr.success > td,
1509 .table > tbody > tr.success > td,
1510 .table > tfoot > tr.success > td,
1510 .table > tfoot > tr.success > td,
1511 .table > thead > tr.success > th,
1511 .table > thead > tr.success > th,
1512 .table > tbody > tr.success > th,
1512 .table > tbody > tr.success > th,
1513 .table > tfoot > tr.success > th {
1513 .table > tfoot > tr.success > th {
1514 background-color: #dff0d8;
1514 background-color: #dff0d8;
1515 }
1515 }
1516 .table-hover > tbody > tr > td.success:hover,
1516 .table-hover > tbody > tr > td.success:hover,
1517 .table-hover > tbody > tr > th.success:hover,
1517 .table-hover > tbody > tr > th.success:hover,
1518 .table-hover > tbody > tr.success:hover > td,
1518 .table-hover > tbody > tr.success:hover > td,
1519 .table-hover > tbody > tr.success:hover > th {
1519 .table-hover > tbody > tr.success:hover > th {
1520 background-color: #d0e9c6;
1520 background-color: #d0e9c6;
1521 }
1521 }
1522 .table > thead > tr > td.info,
1522 .table > thead > tr > td.info,
1523 .table > tbody > tr > td.info,
1523 .table > tbody > tr > td.info,
1524 .table > tfoot > tr > td.info,
1524 .table > tfoot > tr > td.info,
1525 .table > thead > tr > th.info,
1525 .table > thead > tr > th.info,
1526 .table > tbody > tr > th.info,
1526 .table > tbody > tr > th.info,
1527 .table > tfoot > tr > th.info,
1527 .table > tfoot > tr > th.info,
1528 .table > thead > tr.info > td,
1528 .table > thead > tr.info > td,
1529 .table > tbody > tr.info > td,
1529 .table > tbody > tr.info > td,
1530 .table > tfoot > tr.info > td,
1530 .table > tfoot > tr.info > td,
1531 .table > thead > tr.info > th,
1531 .table > thead > tr.info > th,
1532 .table > tbody > tr.info > th,
1532 .table > tbody > tr.info > th,
1533 .table > tfoot > tr.info > th {
1533 .table > tfoot > tr.info > th {
1534 background-color: #d9edf7;
1534 background-color: #d9edf7;
1535 }
1535 }
1536 .table-hover > tbody > tr > td.info:hover,
1536 .table-hover > tbody > tr > td.info:hover,
1537 .table-hover > tbody > tr > th.info:hover,
1537 .table-hover > tbody > tr > th.info:hover,
1538 .table-hover > tbody > tr.info:hover > td,
1538 .table-hover > tbody > tr.info:hover > td,
1539 .table-hover > tbody > tr.info:hover > th {
1539 .table-hover > tbody > tr.info:hover > th {
1540 background-color: #c4e3f3;
1540 background-color: #c4e3f3;
1541 }
1541 }
1542 .table > thead > tr > td.warning,
1542 .table > thead > tr > td.warning,
1543 .table > tbody > tr > td.warning,
1543 .table > tbody > tr > td.warning,
1544 .table > tfoot > tr > td.warning,
1544 .table > tfoot > tr > td.warning,
1545 .table > thead > tr > th.warning,
1545 .table > thead > tr > th.warning,
1546 .table > tbody > tr > th.warning,
1546 .table > tbody > tr > th.warning,
1547 .table > tfoot > tr > th.warning,
1547 .table > tfoot > tr > th.warning,
1548 .table > thead > tr.warning > td,
1548 .table > thead > tr.warning > td,
1549 .table > tbody > tr.warning > td,
1549 .table > tbody > tr.warning > td,
1550 .table > tfoot > tr.warning > td,
1550 .table > tfoot > tr.warning > td,
1551 .table > thead > tr.warning > th,
1551 .table > thead > tr.warning > th,
1552 .table > tbody > tr.warning > th,
1552 .table > tbody > tr.warning > th,
1553 .table > tfoot > tr.warning > th {
1553 .table > tfoot > tr.warning > th {
1554 background-color: #fcf8e3;
1554 background-color: #fcf8e3;
1555 }
1555 }
1556 .table-hover > tbody > tr > td.warning:hover,
1556 .table-hover > tbody > tr > td.warning:hover,
1557 .table-hover > tbody > tr > th.warning:hover,
1557 .table-hover > tbody > tr > th.warning:hover,
1558 .table-hover > tbody > tr.warning:hover > td,
1558 .table-hover > tbody > tr.warning:hover > td,
1559 .table-hover > tbody > tr.warning:hover > th {
1559 .table-hover > tbody > tr.warning:hover > th {
1560 background-color: #faf2cc;
1560 background-color: #faf2cc;
1561 }
1561 }
1562 .table > thead > tr > td.danger,
1562 .table > thead > tr > td.danger,
1563 .table > tbody > tr > td.danger,
1563 .table > tbody > tr > td.danger,
1564 .table > tfoot > tr > td.danger,
1564 .table > tfoot > tr > td.danger,
1565 .table > thead > tr > th.danger,
1565 .table > thead > tr > th.danger,
1566 .table > tbody > tr > th.danger,
1566 .table > tbody > tr > th.danger,
1567 .table > tfoot > tr > th.danger,
1567 .table > tfoot > tr > th.danger,
1568 .table > thead > tr.danger > td,
1568 .table > thead > tr.danger > td,
1569 .table > tbody > tr.danger > td,
1569 .table > tbody > tr.danger > td,
1570 .table > tfoot > tr.danger > td,
1570 .table > tfoot > tr.danger > td,
1571 .table > thead > tr.danger > th,
1571 .table > thead > tr.danger > th,
1572 .table > tbody > tr.danger > th,
1572 .table > tbody > tr.danger > th,
1573 .table > tfoot > tr.danger > th {
1573 .table > tfoot > tr.danger > th {
1574 background-color: #f2dede;
1574 background-color: #f2dede;
1575 }
1575 }
1576 .table-hover > tbody > tr > td.danger:hover,
1576 .table-hover > tbody > tr > td.danger:hover,
1577 .table-hover > tbody > tr > th.danger:hover,
1577 .table-hover > tbody > tr > th.danger:hover,
1578 .table-hover > tbody > tr.danger:hover > td,
1578 .table-hover > tbody > tr.danger:hover > td,
1579 .table-hover > tbody > tr.danger:hover > th {
1579 .table-hover > tbody > tr.danger:hover > th {
1580 background-color: #ebcccc;
1580 background-color: #ebcccc;
1581 }
1581 }
1582 @media (max-width: 767px) {
1582 @media (max-width: 767px) {
1583 .table-responsive {
1583 .table-responsive {
1584 width: 100%;
1584 width: 100%;
1585 margin-bottom: 13.5px;
1585 margin-bottom: 13.5px;
1586 overflow-y: hidden;
1586 overflow-y: hidden;
1587 overflow-x: scroll;
1587 overflow-x: scroll;
1588 -ms-overflow-style: -ms-autohiding-scrollbar;
1588 -ms-overflow-style: -ms-autohiding-scrollbar;
1589 border: 1px solid #dddddd;
1589 border: 1px solid #dddddd;
1590 -webkit-overflow-scrolling: touch;
1590 -webkit-overflow-scrolling: touch;
1591 }
1591 }
1592 .table-responsive > .table {
1592 .table-responsive > .table {
1593 margin-bottom: 0;
1593 margin-bottom: 0;
1594 }
1594 }
1595 .table-responsive > .table > thead > tr > th,
1595 .table-responsive > .table > thead > tr > th,
1596 .table-responsive > .table > tbody > tr > th,
1596 .table-responsive > .table > tbody > tr > th,
1597 .table-responsive > .table > tfoot > tr > th,
1597 .table-responsive > .table > tfoot > tr > th,
1598 .table-responsive > .table > thead > tr > td,
1598 .table-responsive > .table > thead > tr > td,
1599 .table-responsive > .table > tbody > tr > td,
1599 .table-responsive > .table > tbody > tr > td,
1600 .table-responsive > .table > tfoot > tr > td {
1600 .table-responsive > .table > tfoot > tr > td {
1601 white-space: nowrap;
1601 white-space: nowrap;
1602 }
1602 }
1603 .table-responsive > .table-bordered {
1603 .table-responsive > .table-bordered {
1604 border: 0;
1604 border: 0;
1605 }
1605 }
1606 .table-responsive > .table-bordered > thead > tr > th:first-child,
1606 .table-responsive > .table-bordered > thead > tr > th:first-child,
1607 .table-responsive > .table-bordered > tbody > tr > th:first-child,
1607 .table-responsive > .table-bordered > tbody > tr > th:first-child,
1608 .table-responsive > .table-bordered > tfoot > tr > th:first-child,
1608 .table-responsive > .table-bordered > tfoot > tr > th:first-child,
1609 .table-responsive > .table-bordered > thead > tr > td:first-child,
1609 .table-responsive > .table-bordered > thead > tr > td:first-child,
1610 .table-responsive > .table-bordered > tbody > tr > td:first-child,
1610 .table-responsive > .table-bordered > tbody > tr > td:first-child,
1611 .table-responsive > .table-bordered > tfoot > tr > td:first-child {
1611 .table-responsive > .table-bordered > tfoot > tr > td:first-child {
1612 border-left: 0;
1612 border-left: 0;
1613 }
1613 }
1614 .table-responsive > .table-bordered > thead > tr > th:last-child,
1614 .table-responsive > .table-bordered > thead > tr > th:last-child,
1615 .table-responsive > .table-bordered > tbody > tr > th:last-child,
1615 .table-responsive > .table-bordered > tbody > tr > th:last-child,
1616 .table-responsive > .table-bordered > tfoot > tr > th:last-child,
1616 .table-responsive > .table-bordered > tfoot > tr > th:last-child,
1617 .table-responsive > .table-bordered > thead > tr > td:last-child,
1617 .table-responsive > .table-bordered > thead > tr > td:last-child,
1618 .table-responsive > .table-bordered > tbody > tr > td:last-child,
1618 .table-responsive > .table-bordered > tbody > tr > td:last-child,
1619 .table-responsive > .table-bordered > tfoot > tr > td:last-child {
1619 .table-responsive > .table-bordered > tfoot > tr > td:last-child {
1620 border-right: 0;
1620 border-right: 0;
1621 }
1621 }
1622 .table-responsive > .table-bordered > tbody > tr:last-child > th,
1622 .table-responsive > .table-bordered > tbody > tr:last-child > th,
1623 .table-responsive > .table-bordered > tfoot > tr:last-child > th,
1623 .table-responsive > .table-bordered > tfoot > tr:last-child > th,
1624 .table-responsive > .table-bordered > tbody > tr:last-child > td,
1624 .table-responsive > .table-bordered > tbody > tr:last-child > td,
1625 .table-responsive > .table-bordered > tfoot > tr:last-child > td {
1625 .table-responsive > .table-bordered > tfoot > tr:last-child > td {
1626 border-bottom: 0;
1626 border-bottom: 0;
1627 }
1627 }
1628 }
1628 }
1629 fieldset {
1629 fieldset {
1630 padding: 0;
1630 padding: 0;
1631 margin: 0;
1631 margin: 0;
1632 border: 0;
1632 border: 0;
1633 min-width: 0;
1633 min-width: 0;
1634 }
1634 }
1635 legend {
1635 legend {
1636 display: block;
1636 display: block;
1637 width: 100%;
1637 width: 100%;
1638 padding: 0;
1638 padding: 0;
1639 margin-bottom: 18px;
1639 margin-bottom: 18px;
1640 font-size: 19.5px;
1640 font-size: 19.5px;
1641 line-height: inherit;
1641 line-height: inherit;
1642 color: #333333;
1642 color: #333333;
1643 border: 0;
1643 border: 0;
1644 border-bottom: 1px solid #e5e5e5;
1644 border-bottom: 1px solid #e5e5e5;
1645 }
1645 }
1646 label {
1646 label {
1647 display: inline-block;
1647 display: inline-block;
1648 margin-bottom: 5px;
1648 margin-bottom: 5px;
1649 font-weight: bold;
1649 font-weight: bold;
1650 }
1650 }
1651 input[type="search"] {
1651 input[type="search"] {
1652 -webkit-box-sizing: border-box;
1652 -webkit-box-sizing: border-box;
1653 -moz-box-sizing: border-box;
1653 -moz-box-sizing: border-box;
1654 box-sizing: border-box;
1654 box-sizing: border-box;
1655 }
1655 }
1656 input[type="radio"],
1656 input[type="radio"],
1657 input[type="checkbox"] {
1657 input[type="checkbox"] {
1658 margin: 4px 0 0;
1658 margin: 4px 0 0;
1659 margin-top: 1px \9;
1659 margin-top: 1px \9;
1660 /* IE8-9 */
1660 /* IE8-9 */
1661 line-height: normal;
1661 line-height: normal;
1662 }
1662 }
1663 input[type="file"] {
1663 input[type="file"] {
1664 display: block;
1664 display: block;
1665 }
1665 }
1666 input[type="range"] {
1666 input[type="range"] {
1667 display: block;
1667 display: block;
1668 width: 100%;
1668 width: 100%;
1669 }
1669 }
1670 select[multiple],
1670 select[multiple],
1671 select[size] {
1671 select[size] {
1672 height: auto;
1672 height: auto;
1673 }
1673 }
1674 input[type="file"]:focus,
1674 input[type="file"]:focus,
1675 input[type="radio"]:focus,
1675 input[type="radio"]:focus,
1676 input[type="checkbox"]:focus {
1676 input[type="checkbox"]:focus {
1677 outline: thin dotted;
1677 outline: thin dotted;
1678 outline: 5px auto -webkit-focus-ring-color;
1678 outline: 5px auto -webkit-focus-ring-color;
1679 outline-offset: -2px;
1679 outline-offset: -2px;
1680 }
1680 }
1681 output {
1681 output {
1682 display: block;
1682 display: block;
1683 padding-top: 7px;
1683 padding-top: 7px;
1684 font-size: 13px;
1684 font-size: 13px;
1685 line-height: 1.42857143;
1685 line-height: 1.42857143;
1686 color: #555555;
1686 color: #555555;
1687 }
1687 }
1688 .form-control {
1688 .form-control {
1689 display: block;
1689 display: block;
1690 width: 100%;
1690 width: 100%;
1691 height: 32px;
1691 height: 32px;
1692 padding: 6px 12px;
1692 padding: 6px 12px;
1693 font-size: 13px;
1693 font-size: 13px;
1694 line-height: 1.42857143;
1694 line-height: 1.42857143;
1695 color: #555555;
1695 color: #555555;
1696 background-color: #ffffff;
1696 background-color: #ffffff;
1697 background-image: none;
1697 background-image: none;
1698 border: 1px solid #cccccc;
1698 border: 1px solid #cccccc;
1699 border-radius: 4px;
1699 border-radius: 4px;
1700 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1700 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1701 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1701 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1702 -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
1702 -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
1703 transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
1703 transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
1704 }
1704 }
1705 .form-control:focus {
1705 .form-control:focus {
1706 border-color: #66afe9;
1706 border-color: #66afe9;
1707 outline: 0;
1707 outline: 0;
1708 -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
1708 -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
1709 box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
1709 box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
1710 }
1710 }
1711 .form-control::-moz-placeholder {
1711 .form-control::-moz-placeholder {
1712 color: #999999;
1712 color: #999999;
1713 opacity: 1;
1713 opacity: 1;
1714 }
1714 }
1715 .form-control:-ms-input-placeholder {
1715 .form-control:-ms-input-placeholder {
1716 color: #999999;
1716 color: #999999;
1717 }
1717 }
1718 .form-control::-webkit-input-placeholder {
1718 .form-control::-webkit-input-placeholder {
1719 color: #999999;
1719 color: #999999;
1720 }
1720 }
1721 .form-control[disabled],
1721 .form-control[disabled],
1722 .form-control[readonly],
1722 .form-control[readonly],
1723 fieldset[disabled] .form-control {
1723 fieldset[disabled] .form-control {
1724 cursor: not-allowed;
1724 cursor: not-allowed;
1725 background-color: #eeeeee;
1725 background-color: #eeeeee;
1726 opacity: 1;
1726 opacity: 1;
1727 }
1727 }
1728 textarea.form-control {
1728 textarea.form-control {
1729 height: auto;
1729 height: auto;
1730 }
1730 }
1731 input[type="search"] {
1731 input[type="search"] {
1732 -webkit-appearance: none;
1732 -webkit-appearance: none;
1733 }
1733 }
1734 input[type="date"] {
1734 input[type="date"] {
1735 line-height: 32px;
1735 line-height: 32px;
1736 }
1736 }
1737 .form-group {
1737 .form-group {
1738 margin-bottom: 15px;
1738 margin-bottom: 15px;
1739 }
1739 }
1740 .radio,
1740 .radio,
1741 .checkbox {
1741 .checkbox {
1742 display: block;
1742 display: block;
1743 min-height: 18px;
1743 min-height: 18px;
1744 margin-top: 10px;
1744 margin-top: 10px;
1745 margin-bottom: 10px;
1745 margin-bottom: 10px;
1746 padding-left: 20px;
1746 padding-left: 20px;
1747 }
1747 }
1748 .radio label,
1748 .radio label,
1749 .checkbox label {
1749 .checkbox label {
1750 display: inline;
1750 display: inline;
1751 font-weight: normal;
1751 font-weight: normal;
1752 cursor: pointer;
1752 cursor: pointer;
1753 }
1753 }
1754 .radio input[type="radio"],
1754 .radio input[type="radio"],
1755 .radio-inline input[type="radio"],
1755 .radio-inline input[type="radio"],
1756 .checkbox input[type="checkbox"],
1756 .checkbox input[type="checkbox"],
1757 .checkbox-inline input[type="checkbox"] {
1757 .checkbox-inline input[type="checkbox"] {
1758 float: left;
1758 float: left;
1759 margin-left: -20px;
1759 margin-left: -20px;
1760 }
1760 }
1761 .radio + .radio,
1761 .radio + .radio,
1762 .checkbox + .checkbox {
1762 .checkbox + .checkbox {
1763 margin-top: -5px;
1763 margin-top: -5px;
1764 }
1764 }
1765 .radio-inline,
1765 .radio-inline,
1766 .checkbox-inline {
1766 .checkbox-inline {
1767 display: inline-block;
1767 display: inline-block;
1768 padding-left: 20px;
1768 padding-left: 20px;
1769 margin-bottom: 0;
1769 margin-bottom: 0;
1770 vertical-align: middle;
1770 vertical-align: middle;
1771 font-weight: normal;
1771 font-weight: normal;
1772 cursor: pointer;
1772 cursor: pointer;
1773 }
1773 }
1774 .radio-inline + .radio-inline,
1774 .radio-inline + .radio-inline,
1775 .checkbox-inline + .checkbox-inline {
1775 .checkbox-inline + .checkbox-inline {
1776 margin-top: 0;
1776 margin-top: 0;
1777 margin-left: 10px;
1777 margin-left: 10px;
1778 }
1778 }
1779 input[type="radio"][disabled],
1779 input[type="radio"][disabled],
1780 input[type="checkbox"][disabled],
1780 input[type="checkbox"][disabled],
1781 .radio[disabled],
1781 .radio[disabled],
1782 .radio-inline[disabled],
1782 .radio-inline[disabled],
1783 .checkbox[disabled],
1783 .checkbox[disabled],
1784 .checkbox-inline[disabled],
1784 .checkbox-inline[disabled],
1785 fieldset[disabled] input[type="radio"],
1785 fieldset[disabled] input[type="radio"],
1786 fieldset[disabled] input[type="checkbox"],
1786 fieldset[disabled] input[type="checkbox"],
1787 fieldset[disabled] .radio,
1787 fieldset[disabled] .radio,
1788 fieldset[disabled] .radio-inline,
1788 fieldset[disabled] .radio-inline,
1789 fieldset[disabled] .checkbox,
1789 fieldset[disabled] .checkbox,
1790 fieldset[disabled] .checkbox-inline {
1790 fieldset[disabled] .checkbox-inline {
1791 cursor: not-allowed;
1791 cursor: not-allowed;
1792 }
1792 }
1793 .input-sm {
1793 .input-sm {
1794 height: 30px;
1794 height: 30px;
1795 padding: 5px 10px;
1795 padding: 5px 10px;
1796 font-size: 12px;
1796 font-size: 12px;
1797 line-height: 1.5;
1797 line-height: 1.5;
1798 border-radius: 3px;
1798 border-radius: 3px;
1799 }
1799 }
1800 select.input-sm {
1800 select.input-sm {
1801 height: 30px;
1801 height: 30px;
1802 line-height: 30px;
1802 line-height: 30px;
1803 }
1803 }
1804 textarea.input-sm,
1804 textarea.input-sm,
1805 select[multiple].input-sm {
1805 select[multiple].input-sm {
1806 height: auto;
1806 height: auto;
1807 }
1807 }
1808 .input-lg {
1808 .input-lg {
1809 height: 45px;
1809 height: 45px;
1810 padding: 10px 16px;
1810 padding: 10px 16px;
1811 font-size: 17px;
1811 font-size: 17px;
1812 line-height: 1.33;
1812 line-height: 1.33;
1813 border-radius: 6px;
1813 border-radius: 6px;
1814 }
1814 }
1815 select.input-lg {
1815 select.input-lg {
1816 height: 45px;
1816 height: 45px;
1817 line-height: 45px;
1817 line-height: 45px;
1818 }
1818 }
1819 textarea.input-lg,
1819 textarea.input-lg,
1820 select[multiple].input-lg {
1820 select[multiple].input-lg {
1821 height: auto;
1821 height: auto;
1822 }
1822 }
1823 .has-feedback {
1823 .has-feedback {
1824 position: relative;
1824 position: relative;
1825 }
1825 }
1826 .has-feedback .form-control {
1826 .has-feedback .form-control {
1827 padding-right: 40px;
1827 padding-right: 40px;
1828 }
1828 }
1829 .has-feedback .form-control-feedback {
1829 .has-feedback .form-control-feedback {
1830 position: absolute;
1830 position: absolute;
1831 top: 23px;
1831 top: 23px;
1832 right: 0;
1832 right: 0;
1833 display: block;
1833 display: block;
1834 width: 32px;
1834 width: 32px;
1835 height: 32px;
1835 height: 32px;
1836 line-height: 32px;
1836 line-height: 32px;
1837 text-align: center;
1837 text-align: center;
1838 }
1838 }
1839 .has-success .help-block,
1839 .has-success .help-block,
1840 .has-success .control-label,
1840 .has-success .control-label,
1841 .has-success .radio,
1841 .has-success .radio,
1842 .has-success .checkbox,
1842 .has-success .checkbox,
1843 .has-success .radio-inline,
1843 .has-success .radio-inline,
1844 .has-success .checkbox-inline {
1844 .has-success .checkbox-inline {
1845 color: #3c763d;
1845 color: #3c763d;
1846 }
1846 }
1847 .has-success .form-control {
1847 .has-success .form-control {
1848 border-color: #3c763d;
1848 border-color: #3c763d;
1849 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1849 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1850 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1850 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1851 }
1851 }
1852 .has-success .form-control:focus {
1852 .has-success .form-control:focus {
1853 border-color: #2b542c;
1853 border-color: #2b542c;
1854 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
1854 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
1855 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
1855 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
1856 }
1856 }
1857 .has-success .input-group-addon {
1857 .has-success .input-group-addon {
1858 color: #3c763d;
1858 color: #3c763d;
1859 border-color: #3c763d;
1859 border-color: #3c763d;
1860 background-color: #dff0d8;
1860 background-color: #dff0d8;
1861 }
1861 }
1862 .has-success .form-control-feedback {
1862 .has-success .form-control-feedback {
1863 color: #3c763d;
1863 color: #3c763d;
1864 }
1864 }
1865 .has-warning .help-block,
1865 .has-warning .help-block,
1866 .has-warning .control-label,
1866 .has-warning .control-label,
1867 .has-warning .radio,
1867 .has-warning .radio,
1868 .has-warning .checkbox,
1868 .has-warning .checkbox,
1869 .has-warning .radio-inline,
1869 .has-warning .radio-inline,
1870 .has-warning .checkbox-inline {
1870 .has-warning .checkbox-inline {
1871 color: #8a6d3b;
1871 color: #8a6d3b;
1872 }
1872 }
1873 .has-warning .form-control {
1873 .has-warning .form-control {
1874 border-color: #8a6d3b;
1874 border-color: #8a6d3b;
1875 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1875 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1876 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1876 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1877 }
1877 }
1878 .has-warning .form-control:focus {
1878 .has-warning .form-control:focus {
1879 border-color: #66512c;
1879 border-color: #66512c;
1880 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
1880 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
1881 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
1881 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
1882 }
1882 }
1883 .has-warning .input-group-addon {
1883 .has-warning .input-group-addon {
1884 color: #8a6d3b;
1884 color: #8a6d3b;
1885 border-color: #8a6d3b;
1885 border-color: #8a6d3b;
1886 background-color: #fcf8e3;
1886 background-color: #fcf8e3;
1887 }
1887 }
1888 .has-warning .form-control-feedback {
1888 .has-warning .form-control-feedback {
1889 color: #8a6d3b;
1889 color: #8a6d3b;
1890 }
1890 }
1891 .has-error .help-block,
1891 .has-error .help-block,
1892 .has-error .control-label,
1892 .has-error .control-label,
1893 .has-error .radio,
1893 .has-error .radio,
1894 .has-error .checkbox,
1894 .has-error .checkbox,
1895 .has-error .radio-inline,
1895 .has-error .radio-inline,
1896 .has-error .checkbox-inline {
1896 .has-error .checkbox-inline {
1897 color: #a94442;
1897 color: #a94442;
1898 }
1898 }
1899 .has-error .form-control {
1899 .has-error .form-control {
1900 border-color: #a94442;
1900 border-color: #a94442;
1901 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1901 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1902 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1902 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1903 }
1903 }
1904 .has-error .form-control:focus {
1904 .has-error .form-control:focus {
1905 border-color: #843534;
1905 border-color: #843534;
1906 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
1906 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
1907 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
1907 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
1908 }
1908 }
1909 .has-error .input-group-addon {
1909 .has-error .input-group-addon {
1910 color: #a94442;
1910 color: #a94442;
1911 border-color: #a94442;
1911 border-color: #a94442;
1912 background-color: #f2dede;
1912 background-color: #f2dede;
1913 }
1913 }
1914 .has-error .form-control-feedback {
1914 .has-error .form-control-feedback {
1915 color: #a94442;
1915 color: #a94442;
1916 }
1916 }
1917 .form-control-static {
1917 .form-control-static {
1918 margin-bottom: 0;
1918 margin-bottom: 0;
1919 }
1919 }
1920 .help-block {
1920 .help-block {
1921 display: block;
1921 display: block;
1922 margin-top: 5px;
1922 margin-top: 5px;
1923 margin-bottom: 10px;
1923 margin-bottom: 10px;
1924 color: #404040;
1924 color: #404040;
1925 }
1925 }
1926 @media (min-width: 768px) {
1926 @media (min-width: 768px) {
1927 .form-inline .form-group {
1927 .form-inline .form-group {
1928 display: inline-block;
1928 display: inline-block;
1929 margin-bottom: 0;
1929 margin-bottom: 0;
1930 vertical-align: middle;
1930 vertical-align: middle;
1931 }
1931 }
1932 .form-inline .form-control {
1932 .form-inline .form-control {
1933 display: inline-block;
1933 display: inline-block;
1934 width: auto;
1934 width: auto;
1935 vertical-align: middle;
1935 vertical-align: middle;
1936 }
1936 }
1937 .form-inline .input-group > .form-control {
1937 .form-inline .input-group > .form-control {
1938 width: 100%;
1938 width: 100%;
1939 }
1939 }
1940 .form-inline .control-label {
1940 .form-inline .control-label {
1941 margin-bottom: 0;
1941 margin-bottom: 0;
1942 vertical-align: middle;
1942 vertical-align: middle;
1943 }
1943 }
1944 .form-inline .radio,
1944 .form-inline .radio,
1945 .form-inline .checkbox {
1945 .form-inline .checkbox {
1946 display: inline-block;
1946 display: inline-block;
1947 margin-top: 0;
1947 margin-top: 0;
1948 margin-bottom: 0;
1948 margin-bottom: 0;
1949 padding-left: 0;
1949 padding-left: 0;
1950 vertical-align: middle;
1950 vertical-align: middle;
1951 }
1951 }
1952 .form-inline .radio input[type="radio"],
1952 .form-inline .radio input[type="radio"],
1953 .form-inline .checkbox input[type="checkbox"] {
1953 .form-inline .checkbox input[type="checkbox"] {
1954 float: none;
1954 float: none;
1955 margin-left: 0;
1955 margin-left: 0;
1956 }
1956 }
1957 .form-inline .has-feedback .form-control-feedback {
1957 .form-inline .has-feedback .form-control-feedback {
1958 top: 0;
1958 top: 0;
1959 }
1959 }
1960 }
1960 }
1961 .form-horizontal .control-label,
1961 .form-horizontal .control-label,
1962 .form-horizontal .radio,
1962 .form-horizontal .radio,
1963 .form-horizontal .checkbox,
1963 .form-horizontal .checkbox,
1964 .form-horizontal .radio-inline,
1964 .form-horizontal .radio-inline,
1965 .form-horizontal .checkbox-inline {
1965 .form-horizontal .checkbox-inline {
1966 margin-top: 0;
1966 margin-top: 0;
1967 margin-bottom: 0;
1967 margin-bottom: 0;
1968 padding-top: 7px;
1968 padding-top: 7px;
1969 }
1969 }
1970 .form-horizontal .radio,
1970 .form-horizontal .radio,
1971 .form-horizontal .checkbox {
1971 .form-horizontal .checkbox {
1972 min-height: 25px;
1972 min-height: 25px;
1973 }
1973 }
1974 .form-horizontal .form-group {
1974 .form-horizontal .form-group {
1975 margin-left: -15px;
1975 margin-left: -15px;
1976 margin-right: -15px;
1976 margin-right: -15px;
1977 }
1977 }
1978 .form-horizontal .form-control-static {
1978 .form-horizontal .form-control-static {
1979 padding-top: 7px;
1979 padding-top: 7px;
1980 }
1980 }
1981 @media (min-width: 768px) {
1981 @media (min-width: 768px) {
1982 .form-horizontal .control-label {
1982 .form-horizontal .control-label {
1983 text-align: right;
1983 text-align: right;
1984 }
1984 }
1985 }
1985 }
1986 .form-horizontal .has-feedback .form-control-feedback {
1986 .form-horizontal .has-feedback .form-control-feedback {
1987 top: 0;
1987 top: 0;
1988 right: 15px;
1988 right: 15px;
1989 }
1989 }
1990 .btn {
1990 .btn {
1991 display: inline-block;
1991 display: inline-block;
1992 margin-bottom: 0;
1992 margin-bottom: 0;
1993 font-weight: normal;
1993 font-weight: normal;
1994 text-align: center;
1994 text-align: center;
1995 vertical-align: middle;
1995 vertical-align: middle;
1996 cursor: pointer;
1996 cursor: pointer;
1997 background-image: none;
1997 background-image: none;
1998 border: 1px solid transparent;
1998 border: 1px solid transparent;
1999 white-space: nowrap;
1999 white-space: nowrap;
2000 padding: 6px 12px;
2000 padding: 6px 12px;
2001 font-size: 13px;
2001 font-size: 13px;
2002 line-height: 1.42857143;
2002 line-height: 1.42857143;
2003 border-radius: 4px;
2003 border-radius: 4px;
2004 -webkit-user-select: none;
2004 -webkit-user-select: none;
2005 -moz-user-select: none;
2005 -moz-user-select: none;
2006 -ms-user-select: none;
2006 -ms-user-select: none;
2007 user-select: none;
2007 user-select: none;
2008 }
2008 }
2009 .btn:focus,
2009 .btn:focus,
2010 .btn:active:focus,
2010 .btn:active:focus,
2011 .btn.active:focus {
2011 .btn.active:focus {
2012 outline: thin dotted;
2012 outline: thin dotted;
2013 outline: 5px auto -webkit-focus-ring-color;
2013 outline: 5px auto -webkit-focus-ring-color;
2014 outline-offset: -2px;
2014 outline-offset: -2px;
2015 }
2015 }
2016 .btn:hover,
2016 .btn:hover,
2017 .btn:focus {
2017 .btn:focus {
2018 color: #333333;
2018 color: #333333;
2019 text-decoration: none;
2019 text-decoration: none;
2020 }
2020 }
2021 .btn:active,
2021 .btn:active,
2022 .btn.active {
2022 .btn.active {
2023 outline: 0;
2023 outline: 0;
2024 background-image: none;
2024 background-image: none;
2025 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
2025 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
2026 box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
2026 box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
2027 }
2027 }
2028 .btn.disabled,
2028 .btn.disabled,
2029 .btn[disabled],
2029 .btn[disabled],
2030 fieldset[disabled] .btn {
2030 fieldset[disabled] .btn {
2031 cursor: not-allowed;
2031 cursor: not-allowed;
2032 pointer-events: none;
2032 pointer-events: none;
2033 opacity: 0.65;
2033 opacity: 0.65;
2034 filter: alpha(opacity=65);
2034 filter: alpha(opacity=65);
2035 -webkit-box-shadow: none;
2035 -webkit-box-shadow: none;
2036 box-shadow: none;
2036 box-shadow: none;
2037 }
2037 }
2038 .btn-default {
2038 .btn-default {
2039 color: #333333;
2039 color: #333333;
2040 background-color: #ffffff;
2040 background-color: #ffffff;
2041 border-color: #cccccc;
2041 border-color: #cccccc;
2042 }
2042 }
2043 .btn-default:hover,
2043 .btn-default:hover,
2044 .btn-default:focus,
2044 .btn-default:focus,
2045 .btn-default:active,
2045 .btn-default:active,
2046 .btn-default.active,
2046 .btn-default.active,
2047 .open .dropdown-toggle.btn-default {
2047 .open .dropdown-toggle.btn-default {
2048 color: #333333;
2048 color: #333333;
2049 background-color: #ebebeb;
2049 background-color: #ebebeb;
2050 border-color: #adadad;
2050 border-color: #adadad;
2051 }
2051 }
2052 .btn-default:active,
2052 .btn-default:active,
2053 .btn-default.active,
2053 .btn-default.active,
2054 .open .dropdown-toggle.btn-default {
2054 .open .dropdown-toggle.btn-default {
2055 background-image: none;
2055 background-image: none;
2056 }
2056 }
2057 .btn-default.disabled,
2057 .btn-default.disabled,
2058 .btn-default[disabled],
2058 .btn-default[disabled],
2059 fieldset[disabled] .btn-default,
2059 fieldset[disabled] .btn-default,
2060 .btn-default.disabled:hover,
2060 .btn-default.disabled:hover,
2061 .btn-default[disabled]:hover,
2061 .btn-default[disabled]:hover,
2062 fieldset[disabled] .btn-default:hover,
2062 fieldset[disabled] .btn-default:hover,
2063 .btn-default.disabled:focus,
2063 .btn-default.disabled:focus,
2064 .btn-default[disabled]:focus,
2064 .btn-default[disabled]:focus,
2065 fieldset[disabled] .btn-default:focus,
2065 fieldset[disabled] .btn-default:focus,
2066 .btn-default.disabled:active,
2066 .btn-default.disabled:active,
2067 .btn-default[disabled]:active,
2067 .btn-default[disabled]:active,
2068 fieldset[disabled] .btn-default:active,
2068 fieldset[disabled] .btn-default:active,
2069 .btn-default.disabled.active,
2069 .btn-default.disabled.active,
2070 .btn-default[disabled].active,
2070 .btn-default[disabled].active,
2071 fieldset[disabled] .btn-default.active {
2071 fieldset[disabled] .btn-default.active {
2072 background-color: #ffffff;
2072 background-color: #ffffff;
2073 border-color: #cccccc;
2073 border-color: #cccccc;
2074 }
2074 }
2075 .btn-default .badge {
2075 .btn-default .badge {
2076 color: #ffffff;
2076 color: #ffffff;
2077 background-color: #333333;
2077 background-color: #333333;
2078 }
2078 }
2079 .btn-primary {
2079 .btn-primary {
2080 color: #ffffff;
2080 color: #ffffff;
2081 background-color: #428bca;
2081 background-color: #428bca;
2082 border-color: #357ebd;
2082 border-color: #357ebd;
2083 }
2083 }
2084 .btn-primary:hover,
2084 .btn-primary:hover,
2085 .btn-primary:focus,
2085 .btn-primary:focus,
2086 .btn-primary:active,
2086 .btn-primary:active,
2087 .btn-primary.active,
2087 .btn-primary.active,
2088 .open .dropdown-toggle.btn-primary {
2088 .open .dropdown-toggle.btn-primary {
2089 color: #ffffff;
2089 color: #ffffff;
2090 background-color: #3276b1;
2090 background-color: #3276b1;
2091 border-color: #285e8e;
2091 border-color: #285e8e;
2092 }
2092 }
2093 .btn-primary:active,
2093 .btn-primary:active,
2094 .btn-primary.active,
2094 .btn-primary.active,
2095 .open .dropdown-toggle.btn-primary {
2095 .open .dropdown-toggle.btn-primary {
2096 background-image: none;
2096 background-image: none;
2097 }
2097 }
2098 .btn-primary.disabled,
2098 .btn-primary.disabled,
2099 .btn-primary[disabled],
2099 .btn-primary[disabled],
2100 fieldset[disabled] .btn-primary,
2100 fieldset[disabled] .btn-primary,
2101 .btn-primary.disabled:hover,
2101 .btn-primary.disabled:hover,
2102 .btn-primary[disabled]:hover,
2102 .btn-primary[disabled]:hover,
2103 fieldset[disabled] .btn-primary:hover,
2103 fieldset[disabled] .btn-primary:hover,
2104 .btn-primary.disabled:focus,
2104 .btn-primary.disabled:focus,
2105 .btn-primary[disabled]:focus,
2105 .btn-primary[disabled]:focus,
2106 fieldset[disabled] .btn-primary:focus,
2106 fieldset[disabled] .btn-primary:focus,
2107 .btn-primary.disabled:active,
2107 .btn-primary.disabled:active,
2108 .btn-primary[disabled]:active,
2108 .btn-primary[disabled]:active,
2109 fieldset[disabled] .btn-primary:active,
2109 fieldset[disabled] .btn-primary:active,
2110 .btn-primary.disabled.active,
2110 .btn-primary.disabled.active,
2111 .btn-primary[disabled].active,
2111 .btn-primary[disabled].active,
2112 fieldset[disabled] .btn-primary.active {
2112 fieldset[disabled] .btn-primary.active {
2113 background-color: #428bca;
2113 background-color: #428bca;
2114 border-color: #357ebd;
2114 border-color: #357ebd;
2115 }
2115 }
2116 .btn-primary .badge {
2116 .btn-primary .badge {
2117 color: #428bca;
2117 color: #428bca;
2118 background-color: #ffffff;
2118 background-color: #ffffff;
2119 }
2119 }
2120 .btn-success {
2120 .btn-success {
2121 color: #ffffff;
2121 color: #ffffff;
2122 background-color: #5cb85c;
2122 background-color: #5cb85c;
2123 border-color: #4cae4c;
2123 border-color: #4cae4c;
2124 }
2124 }
2125 .btn-success:hover,
2125 .btn-success:hover,
2126 .btn-success:focus,
2126 .btn-success:focus,
2127 .btn-success:active,
2127 .btn-success:active,
2128 .btn-success.active,
2128 .btn-success.active,
2129 .open .dropdown-toggle.btn-success {
2129 .open .dropdown-toggle.btn-success {
2130 color: #ffffff;
2130 color: #ffffff;
2131 background-color: #47a447;
2131 background-color: #47a447;
2132 border-color: #398439;
2132 border-color: #398439;
2133 }
2133 }
2134 .btn-success:active,
2134 .btn-success:active,
2135 .btn-success.active,
2135 .btn-success.active,
2136 .open .dropdown-toggle.btn-success {
2136 .open .dropdown-toggle.btn-success {
2137 background-image: none;
2137 background-image: none;
2138 }
2138 }
2139 .btn-success.disabled,
2139 .btn-success.disabled,
2140 .btn-success[disabled],
2140 .btn-success[disabled],
2141 fieldset[disabled] .btn-success,
2141 fieldset[disabled] .btn-success,
2142 .btn-success.disabled:hover,
2142 .btn-success.disabled:hover,
2143 .btn-success[disabled]:hover,
2143 .btn-success[disabled]:hover,
2144 fieldset[disabled] .btn-success:hover,
2144 fieldset[disabled] .btn-success:hover,
2145 .btn-success.disabled:focus,
2145 .btn-success.disabled:focus,
2146 .btn-success[disabled]:focus,
2146 .btn-success[disabled]:focus,
2147 fieldset[disabled] .btn-success:focus,
2147 fieldset[disabled] .btn-success:focus,
2148 .btn-success.disabled:active,
2148 .btn-success.disabled:active,
2149 .btn-success[disabled]:active,
2149 .btn-success[disabled]:active,
2150 fieldset[disabled] .btn-success:active,
2150 fieldset[disabled] .btn-success:active,
2151 .btn-success.disabled.active,
2151 .btn-success.disabled.active,
2152 .btn-success[disabled].active,
2152 .btn-success[disabled].active,
2153 fieldset[disabled] .btn-success.active {
2153 fieldset[disabled] .btn-success.active {
2154 background-color: #5cb85c;
2154 background-color: #5cb85c;
2155 border-color: #4cae4c;
2155 border-color: #4cae4c;
2156 }
2156 }
2157 .btn-success .badge {
2157 .btn-success .badge {
2158 color: #5cb85c;
2158 color: #5cb85c;
2159 background-color: #ffffff;
2159 background-color: #ffffff;
2160 }
2160 }
2161 .btn-info {
2161 .btn-info {
2162 color: #ffffff;
2162 color: #ffffff;
2163 background-color: #5bc0de;
2163 background-color: #5bc0de;
2164 border-color: #46b8da;
2164 border-color: #46b8da;
2165 }
2165 }
2166 .btn-info:hover,
2166 .btn-info:hover,
2167 .btn-info:focus,
2167 .btn-info:focus,
2168 .btn-info:active,
2168 .btn-info:active,
2169 .btn-info.active,
2169 .btn-info.active,
2170 .open .dropdown-toggle.btn-info {
2170 .open .dropdown-toggle.btn-info {
2171 color: #ffffff;
2171 color: #ffffff;
2172 background-color: #39b3d7;
2172 background-color: #39b3d7;
2173 border-color: #269abc;
2173 border-color: #269abc;
2174 }
2174 }
2175 .btn-info:active,
2175 .btn-info:active,
2176 .btn-info.active,
2176 .btn-info.active,
2177 .open .dropdown-toggle.btn-info {
2177 .open .dropdown-toggle.btn-info {
2178 background-image: none;
2178 background-image: none;
2179 }
2179 }
2180 .btn-info.disabled,
2180 .btn-info.disabled,
2181 .btn-info[disabled],
2181 .btn-info[disabled],
2182 fieldset[disabled] .btn-info,
2182 fieldset[disabled] .btn-info,
2183 .btn-info.disabled:hover,
2183 .btn-info.disabled:hover,
2184 .btn-info[disabled]:hover,
2184 .btn-info[disabled]:hover,
2185 fieldset[disabled] .btn-info:hover,
2185 fieldset[disabled] .btn-info:hover,
2186 .btn-info.disabled:focus,
2186 .btn-info.disabled:focus,
2187 .btn-info[disabled]:focus,
2187 .btn-info[disabled]:focus,
2188 fieldset[disabled] .btn-info:focus,
2188 fieldset[disabled] .btn-info:focus,
2189 .btn-info.disabled:active,
2189 .btn-info.disabled:active,
2190 .btn-info[disabled]:active,
2190 .btn-info[disabled]:active,
2191 fieldset[disabled] .btn-info:active,
2191 fieldset[disabled] .btn-info:active,
2192 .btn-info.disabled.active,
2192 .btn-info.disabled.active,
2193 .btn-info[disabled].active,
2193 .btn-info[disabled].active,
2194 fieldset[disabled] .btn-info.active {
2194 fieldset[disabled] .btn-info.active {
2195 background-color: #5bc0de;
2195 background-color: #5bc0de;
2196 border-color: #46b8da;
2196 border-color: #46b8da;
2197 }
2197 }
2198 .btn-info .badge {
2198 .btn-info .badge {
2199 color: #5bc0de;
2199 color: #5bc0de;
2200 background-color: #ffffff;
2200 background-color: #ffffff;
2201 }
2201 }
2202 .btn-warning {
2202 .btn-warning {
2203 color: #ffffff;
2203 color: #ffffff;
2204 background-color: #f0ad4e;
2204 background-color: #f0ad4e;
2205 border-color: #eea236;
2205 border-color: #eea236;
2206 }
2206 }
2207 .btn-warning:hover,
2207 .btn-warning:hover,
2208 .btn-warning:focus,
2208 .btn-warning:focus,
2209 .btn-warning:active,
2209 .btn-warning:active,
2210 .btn-warning.active,
2210 .btn-warning.active,
2211 .open .dropdown-toggle.btn-warning {
2211 .open .dropdown-toggle.btn-warning {
2212 color: #ffffff;
2212 color: #ffffff;
2213 background-color: #ed9c28;
2213 background-color: #ed9c28;
2214 border-color: #d58512;
2214 border-color: #d58512;
2215 }
2215 }
2216 .btn-warning:active,
2216 .btn-warning:active,
2217 .btn-warning.active,
2217 .btn-warning.active,
2218 .open .dropdown-toggle.btn-warning {
2218 .open .dropdown-toggle.btn-warning {
2219 background-image: none;
2219 background-image: none;
2220 }
2220 }
2221 .btn-warning.disabled,
2221 .btn-warning.disabled,
2222 .btn-warning[disabled],
2222 .btn-warning[disabled],
2223 fieldset[disabled] .btn-warning,
2223 fieldset[disabled] .btn-warning,
2224 .btn-warning.disabled:hover,
2224 .btn-warning.disabled:hover,
2225 .btn-warning[disabled]:hover,
2225 .btn-warning[disabled]:hover,
2226 fieldset[disabled] .btn-warning:hover,
2226 fieldset[disabled] .btn-warning:hover,
2227 .btn-warning.disabled:focus,
2227 .btn-warning.disabled:focus,
2228 .btn-warning[disabled]:focus,
2228 .btn-warning[disabled]:focus,
2229 fieldset[disabled] .btn-warning:focus,
2229 fieldset[disabled] .btn-warning:focus,
2230 .btn-warning.disabled:active,
2230 .btn-warning.disabled:active,
2231 .btn-warning[disabled]:active,
2231 .btn-warning[disabled]:active,
2232 fieldset[disabled] .btn-warning:active,
2232 fieldset[disabled] .btn-warning:active,
2233 .btn-warning.disabled.active,
2233 .btn-warning.disabled.active,
2234 .btn-warning[disabled].active,
2234 .btn-warning[disabled].active,
2235 fieldset[disabled] .btn-warning.active {
2235 fieldset[disabled] .btn-warning.active {
2236 background-color: #f0ad4e;
2236 background-color: #f0ad4e;
2237 border-color: #eea236;
2237 border-color: #eea236;
2238 }
2238 }
2239 .btn-warning .badge {
2239 .btn-warning .badge {
2240 color: #f0ad4e;
2240 color: #f0ad4e;
2241 background-color: #ffffff;
2241 background-color: #ffffff;
2242 }
2242 }
2243 .btn-danger {
2243 .btn-danger {
2244 color: #ffffff;
2244 color: #ffffff;
2245 background-color: #d9534f;
2245 background-color: #d9534f;
2246 border-color: #d43f3a;
2246 border-color: #d43f3a;
2247 }
2247 }
2248 .btn-danger:hover,
2248 .btn-danger:hover,
2249 .btn-danger:focus,
2249 .btn-danger:focus,
2250 .btn-danger:active,
2250 .btn-danger:active,
2251 .btn-danger.active,
2251 .btn-danger.active,
2252 .open .dropdown-toggle.btn-danger {
2252 .open .dropdown-toggle.btn-danger {
2253 color: #ffffff;
2253 color: #ffffff;
2254 background-color: #d2322d;
2254 background-color: #d2322d;
2255 border-color: #ac2925;
2255 border-color: #ac2925;
2256 }
2256 }
2257 .btn-danger:active,
2257 .btn-danger:active,
2258 .btn-danger.active,
2258 .btn-danger.active,
2259 .open .dropdown-toggle.btn-danger {
2259 .open .dropdown-toggle.btn-danger {
2260 background-image: none;
2260 background-image: none;
2261 }
2261 }
2262 .btn-danger.disabled,
2262 .btn-danger.disabled,
2263 .btn-danger[disabled],
2263 .btn-danger[disabled],
2264 fieldset[disabled] .btn-danger,
2264 fieldset[disabled] .btn-danger,
2265 .btn-danger.disabled:hover,
2265 .btn-danger.disabled:hover,
2266 .btn-danger[disabled]:hover,
2266 .btn-danger[disabled]:hover,
2267 fieldset[disabled] .btn-danger:hover,
2267 fieldset[disabled] .btn-danger:hover,
2268 .btn-danger.disabled:focus,
2268 .btn-danger.disabled:focus,
2269 .btn-danger[disabled]:focus,
2269 .btn-danger[disabled]:focus,
2270 fieldset[disabled] .btn-danger:focus,
2270 fieldset[disabled] .btn-danger:focus,
2271 .btn-danger.disabled:active,
2271 .btn-danger.disabled:active,
2272 .btn-danger[disabled]:active,
2272 .btn-danger[disabled]:active,
2273 fieldset[disabled] .btn-danger:active,
2273 fieldset[disabled] .btn-danger:active,
2274 .btn-danger.disabled.active,
2274 .btn-danger.disabled.active,
2275 .btn-danger[disabled].active,
2275 .btn-danger[disabled].active,
2276 fieldset[disabled] .btn-danger.active {
2276 fieldset[disabled] .btn-danger.active {
2277 background-color: #d9534f;
2277 background-color: #d9534f;
2278 border-color: #d43f3a;
2278 border-color: #d43f3a;
2279 }
2279 }
2280 .btn-danger .badge {
2280 .btn-danger .badge {
2281 color: #d9534f;
2281 color: #d9534f;
2282 background-color: #ffffff;
2282 background-color: #ffffff;
2283 }
2283 }
2284 .btn-link {
2284 .btn-link {
2285 color: #428bca;
2285 color: #428bca;
2286 font-weight: normal;
2286 font-weight: normal;
2287 cursor: pointer;
2287 cursor: pointer;
2288 border-radius: 0;
2288 border-radius: 0;
2289 }
2289 }
2290 .btn-link,
2290 .btn-link,
2291 .btn-link:active,
2291 .btn-link:active,
2292 .btn-link[disabled],
2292 .btn-link[disabled],
2293 fieldset[disabled] .btn-link {
2293 fieldset[disabled] .btn-link {
2294 background-color: transparent;
2294 background-color: transparent;
2295 -webkit-box-shadow: none;
2295 -webkit-box-shadow: none;
2296 box-shadow: none;
2296 box-shadow: none;
2297 }
2297 }
2298 .btn-link,
2298 .btn-link,
2299 .btn-link:hover,
2299 .btn-link:hover,
2300 .btn-link:focus,
2300 .btn-link:focus,
2301 .btn-link:active {
2301 .btn-link:active {
2302 border-color: transparent;
2302 border-color: transparent;
2303 }
2303 }
2304 .btn-link:hover,
2304 .btn-link:hover,
2305 .btn-link:focus {
2305 .btn-link:focus {
2306 color: #2a6496;
2306 color: #2a6496;
2307 text-decoration: underline;
2307 text-decoration: underline;
2308 background-color: transparent;
2308 background-color: transparent;
2309 }
2309 }
2310 .btn-link[disabled]:hover,
2310 .btn-link[disabled]:hover,
2311 fieldset[disabled] .btn-link:hover,
2311 fieldset[disabled] .btn-link:hover,
2312 .btn-link[disabled]:focus,
2312 .btn-link[disabled]:focus,
2313 fieldset[disabled] .btn-link:focus {
2313 fieldset[disabled] .btn-link:focus {
2314 color: #999999;
2314 color: #999999;
2315 text-decoration: none;
2315 text-decoration: none;
2316 }
2316 }
2317 .btn-lg,
2317 .btn-lg,
2318 .btn-group-lg > .btn {
2318 .btn-group-lg > .btn {
2319 padding: 10px 16px;
2319 padding: 10px 16px;
2320 font-size: 17px;
2320 font-size: 17px;
2321 line-height: 1.33;
2321 line-height: 1.33;
2322 border-radius: 6px;
2322 border-radius: 6px;
2323 }
2323 }
2324 .btn-sm,
2324 .btn-sm,
2325 .btn-group-sm > .btn {
2325 .btn-group-sm > .btn {
2326 padding: 5px 10px;
2326 padding: 5px 10px;
2327 font-size: 12px;
2327 font-size: 12px;
2328 line-height: 1.5;
2328 line-height: 1.5;
2329 border-radius: 3px;
2329 border-radius: 3px;
2330 }
2330 }
2331 .btn-xs,
2331 .btn-xs,
2332 .btn-group-xs > .btn {
2332 .btn-group-xs > .btn {
2333 padding: 1px 5px;
2333 padding: 1px 5px;
2334 font-size: 12px;
2334 font-size: 12px;
2335 line-height: 1.5;
2335 line-height: 1.5;
2336 border-radius: 3px;
2336 border-radius: 3px;
2337 }
2337 }
2338 .btn-block {
2338 .btn-block {
2339 display: block;
2339 display: block;
2340 width: 100%;
2340 width: 100%;
2341 padding-left: 0;
2341 padding-left: 0;
2342 padding-right: 0;
2342 padding-right: 0;
2343 }
2343 }
2344 .btn-block + .btn-block {
2344 .btn-block + .btn-block {
2345 margin-top: 5px;
2345 margin-top: 5px;
2346 }
2346 }
2347 input[type="submit"].btn-block,
2347 input[type="submit"].btn-block,
2348 input[type="reset"].btn-block,
2348 input[type="reset"].btn-block,
2349 input[type="button"].btn-block {
2349 input[type="button"].btn-block {
2350 width: 100%;
2350 width: 100%;
2351 }
2351 }
2352 .fade {
2352 .fade {
2353 opacity: 0;
2353 opacity: 0;
2354 -webkit-transition: opacity 0.15s linear;
2354 -webkit-transition: opacity 0.15s linear;
2355 transition: opacity 0.15s linear;
2355 transition: opacity 0.15s linear;
2356 }
2356 }
2357 .fade.in {
2357 .fade.in {
2358 opacity: 1;
2358 opacity: 1;
2359 }
2359 }
2360 .collapse {
2360 .collapse {
2361 display: none;
2361 display: none;
2362 }
2362 }
2363 .collapse.in {
2363 .collapse.in {
2364 display: block;
2364 display: block;
2365 }
2365 }
2366 .collapsing {
2366 .collapsing {
2367 position: relative;
2367 position: relative;
2368 height: 0;
2368 height: 0;
2369 overflow: hidden;
2369 overflow: hidden;
2370 -webkit-transition: height 0.35s ease;
2370 -webkit-transition: height 0.35s ease;
2371 transition: height 0.35s ease;
2371 transition: height 0.35s ease;
2372 }
2372 }
2373 @font-face {
2373 @font-face {
2374 font-family: 'Glyphicons Halflings';
2374 font-family: 'Glyphicons Halflings';
2375 src: url('../fonts/glyphicons-halflings-regular.eot');
2375 src: url('../fonts/glyphicons-halflings-regular.eot');
2376 src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
2376 src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
2377 }
2377 }
2378 .glyphicon {
2378 .glyphicon {
2379 position: relative;
2379 position: relative;
2380 top: 1px;
2380 top: 1px;
2381 display: inline-block;
2381 display: inline-block;
2382 font-family: 'Glyphicons Halflings';
2382 font-family: 'Glyphicons Halflings';
2383 font-style: normal;
2383 font-style: normal;
2384 font-weight: normal;
2384 font-weight: normal;
2385 line-height: 1;
2385 line-height: 1;
2386 -webkit-font-smoothing: antialiased;
2386 -webkit-font-smoothing: antialiased;
2387 -moz-osx-font-smoothing: grayscale;
2387 -moz-osx-font-smoothing: grayscale;
2388 }
2388 }
2389 .glyphicon-asterisk:before {
2389 .glyphicon-asterisk:before {
2390 content: "\2a";
2390 content: "\2a";
2391 }
2391 }
2392 .glyphicon-plus:before {
2392 .glyphicon-plus:before {
2393 content: "\2b";
2393 content: "\2b";
2394 }
2394 }
2395 .glyphicon-euro:before {
2395 .glyphicon-euro:before {
2396 content: "\20ac";
2396 content: "\20ac";
2397 }
2397 }
2398 .glyphicon-minus:before {
2398 .glyphicon-minus:before {
2399 content: "\2212";
2399 content: "\2212";
2400 }
2400 }
2401 .glyphicon-cloud:before {
2401 .glyphicon-cloud:before {
2402 content: "\2601";
2402 content: "\2601";
2403 }
2403 }
2404 .glyphicon-envelope:before {
2404 .glyphicon-envelope:before {
2405 content: "\2709";
2405 content: "\2709";
2406 }
2406 }
2407 .glyphicon-pencil:before {
2407 .glyphicon-pencil:before {
2408 content: "\270f";
2408 content: "\270f";
2409 }
2409 }
2410 .glyphicon-glass:before {
2410 .glyphicon-glass:before {
2411 content: "\e001";
2411 content: "\e001";
2412 }
2412 }
2413 .glyphicon-music:before {
2413 .glyphicon-music:before {
2414 content: "\e002";
2414 content: "\e002";
2415 }
2415 }
2416 .glyphicon-search:before {
2416 .glyphicon-search:before {
2417 content: "\e003";
2417 content: "\e003";
2418 }
2418 }
2419 .glyphicon-heart:before {
2419 .glyphicon-heart:before {
2420 content: "\e005";
2420 content: "\e005";
2421 }
2421 }
2422 .glyphicon-star:before {
2422 .glyphicon-star:before {
2423 content: "\e006";
2423 content: "\e006";
2424 }
2424 }
2425 .glyphicon-star-empty:before {
2425 .glyphicon-star-empty:before {
2426 content: "\e007";
2426 content: "\e007";
2427 }
2427 }
2428 .glyphicon-user:before {
2428 .glyphicon-user:before {
2429 content: "\e008";
2429 content: "\e008";
2430 }
2430 }
2431 .glyphicon-film:before {
2431 .glyphicon-film:before {
2432 content: "\e009";
2432 content: "\e009";
2433 }
2433 }
2434 .glyphicon-th-large:before {
2434 .glyphicon-th-large:before {
2435 content: "\e010";
2435 content: "\e010";
2436 }
2436 }
2437 .glyphicon-th:before {
2437 .glyphicon-th:before {
2438 content: "\e011";
2438 content: "\e011";
2439 }
2439 }
2440 .glyphicon-th-list:before {
2440 .glyphicon-th-list:before {
2441 content: "\e012";
2441 content: "\e012";
2442 }
2442 }
2443 .glyphicon-ok:before {
2443 .glyphicon-ok:before {
2444 content: "\e013";
2444 content: "\e013";
2445 }
2445 }
2446 .glyphicon-remove:before {
2446 .glyphicon-remove:before {
2447 content: "\e014";
2447 content: "\e014";
2448 }
2448 }
2449 .glyphicon-zoom-in:before {
2449 .glyphicon-zoom-in:before {
2450 content: "\e015";
2450 content: "\e015";
2451 }
2451 }
2452 .glyphicon-zoom-out:before {
2452 .glyphicon-zoom-out:before {
2453 content: "\e016";
2453 content: "\e016";
2454 }
2454 }
2455 .glyphicon-off:before {
2455 .glyphicon-off:before {
2456 content: "\e017";
2456 content: "\e017";
2457 }
2457 }
2458 .glyphicon-signal:before {
2458 .glyphicon-signal:before {
2459 content: "\e018";
2459 content: "\e018";
2460 }
2460 }
2461 .glyphicon-cog:before {
2461 .glyphicon-cog:before {
2462 content: "\e019";
2462 content: "\e019";
2463 }
2463 }
2464 .glyphicon-trash:before {
2464 .glyphicon-trash:before {
2465 content: "\e020";
2465 content: "\e020";
2466 }
2466 }
2467 .glyphicon-home:before {
2467 .glyphicon-home:before {
2468 content: "\e021";
2468 content: "\e021";
2469 }
2469 }
2470 .glyphicon-file:before {
2470 .glyphicon-file:before {
2471 content: "\e022";
2471 content: "\e022";
2472 }
2472 }
2473 .glyphicon-time:before {
2473 .glyphicon-time:before {
2474 content: "\e023";
2474 content: "\e023";
2475 }
2475 }
2476 .glyphicon-road:before {
2476 .glyphicon-road:before {
2477 content: "\e024";
2477 content: "\e024";
2478 }
2478 }
2479 .glyphicon-download-alt:before {
2479 .glyphicon-download-alt:before {
2480 content: "\e025";
2480 content: "\e025";
2481 }
2481 }
2482 .glyphicon-download:before {
2482 .glyphicon-download:before {
2483 content: "\e026";
2483 content: "\e026";
2484 }
2484 }
2485 .glyphicon-upload:before {
2485 .glyphicon-upload:before {
2486 content: "\e027";
2486 content: "\e027";
2487 }
2487 }
2488 .glyphicon-inbox:before {
2488 .glyphicon-inbox:before {
2489 content: "\e028";
2489 content: "\e028";
2490 }
2490 }
2491 .glyphicon-play-circle:before {
2491 .glyphicon-play-circle:before {
2492 content: "\e029";
2492 content: "\e029";
2493 }
2493 }
2494 .glyphicon-repeat:before {
2494 .glyphicon-repeat:before {
2495 content: "\e030";
2495 content: "\e030";
2496 }
2496 }
2497 .glyphicon-refresh:before {
2497 .glyphicon-refresh:before {
2498 content: "\e031";
2498 content: "\e031";
2499 }
2499 }
2500 .glyphicon-list-alt:before {
2500 .glyphicon-list-alt:before {
2501 content: "\e032";
2501 content: "\e032";
2502 }
2502 }
2503 .glyphicon-lock:before {
2503 .glyphicon-lock:before {
2504 content: "\e033";
2504 content: "\e033";
2505 }
2505 }
2506 .glyphicon-flag:before {
2506 .glyphicon-flag:before {
2507 content: "\e034";
2507 content: "\e034";
2508 }
2508 }
2509 .glyphicon-headphones:before {
2509 .glyphicon-headphones:before {
2510 content: "\e035";
2510 content: "\e035";
2511 }
2511 }
2512 .glyphicon-volume-off:before {
2512 .glyphicon-volume-off:before {
2513 content: "\e036";
2513 content: "\e036";
2514 }
2514 }
2515 .glyphicon-volume-down:before {
2515 .glyphicon-volume-down:before {
2516 content: "\e037";
2516 content: "\e037";
2517 }
2517 }
2518 .glyphicon-volume-up:before {
2518 .glyphicon-volume-up:before {
2519 content: "\e038";
2519 content: "\e038";
2520 }
2520 }
2521 .glyphicon-qrcode:before {
2521 .glyphicon-qrcode:before {
2522 content: "\e039";
2522 content: "\e039";
2523 }
2523 }
2524 .glyphicon-barcode:before {
2524 .glyphicon-barcode:before {
2525 content: "\e040";
2525 content: "\e040";
2526 }
2526 }
2527 .glyphicon-tag:before {
2527 .glyphicon-tag:before {
2528 content: "\e041";
2528 content: "\e041";
2529 }
2529 }
2530 .glyphicon-tags:before {
2530 .glyphicon-tags:before {
2531 content: "\e042";
2531 content: "\e042";
2532 }
2532 }
2533 .glyphicon-book:before {
2533 .glyphicon-book:before {
2534 content: "\e043";
2534 content: "\e043";
2535 }
2535 }
2536 .glyphicon-bookmark:before {
2536 .glyphicon-bookmark:before {
2537 content: "\e044";
2537 content: "\e044";
2538 }
2538 }
2539 .glyphicon-print:before {
2539 .glyphicon-print:before {
2540 content: "\e045";
2540 content: "\e045";
2541 }
2541 }
2542 .glyphicon-camera:before {
2542 .glyphicon-camera:before {
2543 content: "\e046";
2543 content: "\e046";
2544 }
2544 }
2545 .glyphicon-font:before {
2545 .glyphicon-font:before {
2546 content: "\e047";
2546 content: "\e047";
2547 }
2547 }
2548 .glyphicon-bold:before {
2548 .glyphicon-bold:before {
2549 content: "\e048";
2549 content: "\e048";
2550 }
2550 }
2551 .glyphicon-italic:before {
2551 .glyphicon-italic:before {
2552 content: "\e049";
2552 content: "\e049";
2553 }
2553 }
2554 .glyphicon-text-height:before {
2554 .glyphicon-text-height:before {
2555 content: "\e050";
2555 content: "\e050";
2556 }
2556 }
2557 .glyphicon-text-width:before {
2557 .glyphicon-text-width:before {
2558 content: "\e051";
2558 content: "\e051";
2559 }
2559 }
2560 .glyphicon-align-left:before {
2560 .glyphicon-align-left:before {
2561 content: "\e052";
2561 content: "\e052";
2562 }
2562 }
2563 .glyphicon-align-center:before {
2563 .glyphicon-align-center:before {
2564 content: "\e053";
2564 content: "\e053";
2565 }
2565 }
2566 .glyphicon-align-right:before {
2566 .glyphicon-align-right:before {
2567 content: "\e054";
2567 content: "\e054";
2568 }
2568 }
2569 .glyphicon-align-justify:before {
2569 .glyphicon-align-justify:before {
2570 content: "\e055";
2570 content: "\e055";
2571 }
2571 }
2572 .glyphicon-list:before {
2572 .glyphicon-list:before {
2573 content: "\e056";
2573 content: "\e056";
2574 }
2574 }
2575 .glyphicon-indent-left:before {
2575 .glyphicon-indent-left:before {
2576 content: "\e057";
2576 content: "\e057";
2577 }
2577 }
2578 .glyphicon-indent-right:before {
2578 .glyphicon-indent-right:before {
2579 content: "\e058";
2579 content: "\e058";
2580 }
2580 }
2581 .glyphicon-facetime-video:before {
2581 .glyphicon-facetime-video:before {
2582 content: "\e059";
2582 content: "\e059";
2583 }
2583 }
2584 .glyphicon-picture:before {
2584 .glyphicon-picture:before {
2585 content: "\e060";
2585 content: "\e060";
2586 }
2586 }
2587 .glyphicon-map-marker:before {
2587 .glyphicon-map-marker:before {
2588 content: "\e062";
2588 content: "\e062";
2589 }
2589 }
2590 .glyphicon-adjust:before {
2590 .glyphicon-adjust:before {
2591 content: "\e063";
2591 content: "\e063";
2592 }
2592 }
2593 .glyphicon-tint:before {
2593 .glyphicon-tint:before {
2594 content: "\e064";
2594 content: "\e064";
2595 }
2595 }
2596 .glyphicon-edit:before {
2596 .glyphicon-edit:before {
2597 content: "\e065";
2597 content: "\e065";
2598 }
2598 }
2599 .glyphicon-share:before {
2599 .glyphicon-share:before {
2600 content: "\e066";
2600 content: "\e066";
2601 }
2601 }
2602 .glyphicon-check:before {
2602 .glyphicon-check:before {
2603 content: "\e067";
2603 content: "\e067";
2604 }
2604 }
2605 .glyphicon-move:before {
2605 .glyphicon-move:before {
2606 content: "\e068";
2606 content: "\e068";
2607 }
2607 }
2608 .glyphicon-step-backward:before {
2608 .glyphicon-step-backward:before {
2609 content: "\e069";
2609 content: "\e069";
2610 }
2610 }
2611 .glyphicon-fast-backward:before {
2611 .glyphicon-fast-backward:before {
2612 content: "\e070";
2612 content: "\e070";
2613 }
2613 }
2614 .glyphicon-backward:before {
2614 .glyphicon-backward:before {
2615 content: "\e071";
2615 content: "\e071";
2616 }
2616 }
2617 .glyphicon-play:before {
2617 .glyphicon-play:before {
2618 content: "\e072";
2618 content: "\e072";
2619 }
2619 }
2620 .glyphicon-pause:before {
2620 .glyphicon-pause:before {
2621 content: "\e073";
2621 content: "\e073";
2622 }
2622 }
2623 .glyphicon-stop:before {
2623 .glyphicon-stop:before {
2624 content: "\e074";
2624 content: "\e074";
2625 }
2625 }
2626 .glyphicon-forward:before {
2626 .glyphicon-forward:before {
2627 content: "\e075";
2627 content: "\e075";
2628 }
2628 }
2629 .glyphicon-fast-forward:before {
2629 .glyphicon-fast-forward:before {
2630 content: "\e076";
2630 content: "\e076";
2631 }
2631 }
2632 .glyphicon-step-forward:before {
2632 .glyphicon-step-forward:before {
2633 content: "\e077";
2633 content: "\e077";
2634 }
2634 }
2635 .glyphicon-eject:before {
2635 .glyphicon-eject:before {
2636 content: "\e078";
2636 content: "\e078";
2637 }
2637 }
2638 .glyphicon-chevron-left:before {
2638 .glyphicon-chevron-left:before {
2639 content: "\e079";
2639 content: "\e079";
2640 }
2640 }
2641 .glyphicon-chevron-right:before {
2641 .glyphicon-chevron-right:before {
2642 content: "\e080";
2642 content: "\e080";
2643 }
2643 }
2644 .glyphicon-plus-sign:before {
2644 .glyphicon-plus-sign:before {
2645 content: "\e081";
2645 content: "\e081";
2646 }
2646 }
2647 .glyphicon-minus-sign:before {
2647 .glyphicon-minus-sign:before {
2648 content: "\e082";
2648 content: "\e082";
2649 }
2649 }
2650 .glyphicon-remove-sign:before {
2650 .glyphicon-remove-sign:before {
2651 content: "\e083";
2651 content: "\e083";
2652 }
2652 }
2653 .glyphicon-ok-sign:before {
2653 .glyphicon-ok-sign:before {
2654 content: "\e084";
2654 content: "\e084";
2655 }
2655 }
2656 .glyphicon-question-sign:before {
2656 .glyphicon-question-sign:before {
2657 content: "\e085";
2657 content: "\e085";
2658 }
2658 }
2659 .glyphicon-info-sign:before {
2659 .glyphicon-info-sign:before {
2660 content: "\e086";
2660 content: "\e086";
2661 }
2661 }
2662 .glyphicon-screenshot:before {
2662 .glyphicon-screenshot:before {
2663 content: "\e087";
2663 content: "\e087";
2664 }
2664 }
2665 .glyphicon-remove-circle:before {
2665 .glyphicon-remove-circle:before {
2666 content: "\e088";
2666 content: "\e088";
2667 }
2667 }
2668 .glyphicon-ok-circle:before {
2668 .glyphicon-ok-circle:before {
2669 content: "\e089";
2669 content: "\e089";
2670 }
2670 }
2671 .glyphicon-ban-circle:before {
2671 .glyphicon-ban-circle:before {
2672 content: "\e090";
2672 content: "\e090";
2673 }
2673 }
2674 .glyphicon-arrow-left:before {
2674 .glyphicon-arrow-left:before {
2675 content: "\e091";
2675 content: "\e091";
2676 }
2676 }
2677 .glyphicon-arrow-right:before {
2677 .glyphicon-arrow-right:before {
2678 content: "\e092";
2678 content: "\e092";
2679 }
2679 }
2680 .glyphicon-arrow-up:before {
2680 .glyphicon-arrow-up:before {
2681 content: "\e093";
2681 content: "\e093";
2682 }
2682 }
2683 .glyphicon-arrow-down:before {
2683 .glyphicon-arrow-down:before {
2684 content: "\e094";
2684 content: "\e094";
2685 }
2685 }
2686 .glyphicon-share-alt:before {
2686 .glyphicon-share-alt:before {
2687 content: "\e095";
2687 content: "\e095";
2688 }
2688 }
2689 .glyphicon-resize-full:before {
2689 .glyphicon-resize-full:before {
2690 content: "\e096";
2690 content: "\e096";
2691 }
2691 }
2692 .glyphicon-resize-small:before {
2692 .glyphicon-resize-small:before {
2693 content: "\e097";
2693 content: "\e097";
2694 }
2694 }
2695 .glyphicon-exclamation-sign:before {
2695 .glyphicon-exclamation-sign:before {
2696 content: "\e101";
2696 content: "\e101";
2697 }
2697 }
2698 .glyphicon-gift:before {
2698 .glyphicon-gift:before {
2699 content: "\e102";
2699 content: "\e102";
2700 }
2700 }
2701 .glyphicon-leaf:before {
2701 .glyphicon-leaf:before {
2702 content: "\e103";
2702 content: "\e103";
2703 }
2703 }
2704 .glyphicon-fire:before {
2704 .glyphicon-fire:before {
2705 content: "\e104";
2705 content: "\e104";
2706 }
2706 }
2707 .glyphicon-eye-open:before {
2707 .glyphicon-eye-open:before {
2708 content: "\e105";
2708 content: "\e105";
2709 }
2709 }
2710 .glyphicon-eye-close:before {
2710 .glyphicon-eye-close:before {
2711 content: "\e106";
2711 content: "\e106";
2712 }
2712 }
2713 .glyphicon-warning-sign:before {
2713 .glyphicon-warning-sign:before {
2714 content: "\e107";
2714 content: "\e107";
2715 }
2715 }
2716 .glyphicon-plane:before {
2716 .glyphicon-plane:before {
2717 content: "\e108";
2717 content: "\e108";
2718 }
2718 }
2719 .glyphicon-calendar:before {
2719 .glyphicon-calendar:before {
2720 content: "\e109";
2720 content: "\e109";
2721 }
2721 }
2722 .glyphicon-random:before {
2722 .glyphicon-random:before {
2723 content: "\e110";
2723 content: "\e110";
2724 }
2724 }
2725 .glyphicon-comment:before {
2725 .glyphicon-comment:before {
2726 content: "\e111";
2726 content: "\e111";
2727 }
2727 }
2728 .glyphicon-magnet:before {
2728 .glyphicon-magnet:before {
2729 content: "\e112";
2729 content: "\e112";
2730 }
2730 }
2731 .glyphicon-chevron-up:before {
2731 .glyphicon-chevron-up:before {
2732 content: "\e113";
2732 content: "\e113";
2733 }
2733 }
2734 .glyphicon-chevron-down:before {
2734 .glyphicon-chevron-down:before {
2735 content: "\e114";
2735 content: "\e114";
2736 }
2736 }
2737 .glyphicon-retweet:before {
2737 .glyphicon-retweet:before {
2738 content: "\e115";
2738 content: "\e115";
2739 }
2739 }
2740 .glyphicon-shopping-cart:before {
2740 .glyphicon-shopping-cart:before {
2741 content: "\e116";
2741 content: "\e116";
2742 }
2742 }
2743 .glyphicon-folder-close:before {
2743 .glyphicon-folder-close:before {
2744 content: "\e117";
2744 content: "\e117";
2745 }
2745 }
2746 .glyphicon-folder-open:before {
2746 .glyphicon-folder-open:before {
2747 content: "\e118";
2747 content: "\e118";
2748 }
2748 }
2749 .glyphicon-resize-vertical:before {
2749 .glyphicon-resize-vertical:before {
2750 content: "\e119";
2750 content: "\e119";
2751 }
2751 }
2752 .glyphicon-resize-horizontal:before {
2752 .glyphicon-resize-horizontal:before {
2753 content: "\e120";
2753 content: "\e120";
2754 }
2754 }
2755 .glyphicon-hdd:before {
2755 .glyphicon-hdd:before {
2756 content: "\e121";
2756 content: "\e121";
2757 }
2757 }
2758 .glyphicon-bullhorn:before {
2758 .glyphicon-bullhorn:before {
2759 content: "\e122";
2759 content: "\e122";
2760 }
2760 }
2761 .glyphicon-bell:before {
2761 .glyphicon-bell:before {
2762 content: "\e123";
2762 content: "\e123";
2763 }
2763 }
2764 .glyphicon-certificate:before {
2764 .glyphicon-certificate:before {
2765 content: "\e124";
2765 content: "\e124";
2766 }
2766 }
2767 .glyphicon-thumbs-up:before {
2767 .glyphicon-thumbs-up:before {
2768 content: "\e125";
2768 content: "\e125";
2769 }
2769 }
2770 .glyphicon-thumbs-down:before {
2770 .glyphicon-thumbs-down:before {
2771 content: "\e126";
2771 content: "\e126";
2772 }
2772 }
2773 .glyphicon-hand-right:before {
2773 .glyphicon-hand-right:before {
2774 content: "\e127";
2774 content: "\e127";
2775 }
2775 }
2776 .glyphicon-hand-left:before {
2776 .glyphicon-hand-left:before {
2777 content: "\e128";
2777 content: "\e128";
2778 }
2778 }
2779 .glyphicon-hand-up:before {
2779 .glyphicon-hand-up:before {
2780 content: "\e129";
2780 content: "\e129";
2781 }
2781 }
2782 .glyphicon-hand-down:before {
2782 .glyphicon-hand-down:before {
2783 content: "\e130";
2783 content: "\e130";
2784 }
2784 }
2785 .glyphicon-circle-arrow-right:before {
2785 .glyphicon-circle-arrow-right:before {
2786 content: "\e131";
2786 content: "\e131";
2787 }
2787 }
2788 .glyphicon-circle-arrow-left:before {
2788 .glyphicon-circle-arrow-left:before {
2789 content: "\e132";
2789 content: "\e132";
2790 }
2790 }
2791 .glyphicon-circle-arrow-up:before {
2791 .glyphicon-circle-arrow-up:before {
2792 content: "\e133";
2792 content: "\e133";
2793 }
2793 }
2794 .glyphicon-circle-arrow-down:before {
2794 .glyphicon-circle-arrow-down:before {
2795 content: "\e134";
2795 content: "\e134";
2796 }
2796 }
2797 .glyphicon-globe:before {
2797 .glyphicon-globe:before {
2798 content: "\e135";
2798 content: "\e135";
2799 }
2799 }
2800 .glyphicon-wrench:before {
2800 .glyphicon-wrench:before {
2801 content: "\e136";
2801 content: "\e136";
2802 }
2802 }
2803 .glyphicon-tasks:before {
2803 .glyphicon-tasks:before {
2804 content: "\e137";
2804 content: "\e137";
2805 }
2805 }
2806 .glyphicon-filter:before {
2806 .glyphicon-filter:before {
2807 content: "\e138";
2807 content: "\e138";
2808 }
2808 }
2809 .glyphicon-briefcase:before {
2809 .glyphicon-briefcase:before {
2810 content: "\e139";
2810 content: "\e139";
2811 }
2811 }
2812 .glyphicon-fullscreen:before {
2812 .glyphicon-fullscreen:before {
2813 content: "\e140";
2813 content: "\e140";
2814 }
2814 }
2815 .glyphicon-dashboard:before {
2815 .glyphicon-dashboard:before {
2816 content: "\e141";
2816 content: "\e141";
2817 }
2817 }
2818 .glyphicon-paperclip:before {
2818 .glyphicon-paperclip:before {
2819 content: "\e142";
2819 content: "\e142";
2820 }
2820 }
2821 .glyphicon-heart-empty:before {
2821 .glyphicon-heart-empty:before {
2822 content: "\e143";
2822 content: "\e143";
2823 }
2823 }
2824 .glyphicon-link:before {
2824 .glyphicon-link:before {
2825 content: "\e144";
2825 content: "\e144";
2826 }
2826 }
2827 .glyphicon-phone:before {
2827 .glyphicon-phone:before {
2828 content: "\e145";
2828 content: "\e145";
2829 }
2829 }
2830 .glyphicon-pushpin:before {
2830 .glyphicon-pushpin:before {
2831 content: "\e146";
2831 content: "\e146";
2832 }
2832 }
2833 .glyphicon-usd:before {
2833 .glyphicon-usd:before {
2834 content: "\e148";
2834 content: "\e148";
2835 }
2835 }
2836 .glyphicon-gbp:before {
2836 .glyphicon-gbp:before {
2837 content: "\e149";
2837 content: "\e149";
2838 }
2838 }
2839 .glyphicon-sort:before {
2839 .glyphicon-sort:before {
2840 content: "\e150";
2840 content: "\e150";
2841 }
2841 }
2842 .glyphicon-sort-by-alphabet:before {
2842 .glyphicon-sort-by-alphabet:before {
2843 content: "\e151";
2843 content: "\e151";
2844 }
2844 }
2845 .glyphicon-sort-by-alphabet-alt:before {
2845 .glyphicon-sort-by-alphabet-alt:before {
2846 content: "\e152";
2846 content: "\e152";
2847 }
2847 }
2848 .glyphicon-sort-by-order:before {
2848 .glyphicon-sort-by-order:before {
2849 content: "\e153";
2849 content: "\e153";
2850 }
2850 }
2851 .glyphicon-sort-by-order-alt:before {
2851 .glyphicon-sort-by-order-alt:before {
2852 content: "\e154";
2852 content: "\e154";
2853 }
2853 }
2854 .glyphicon-sort-by-attributes:before {
2854 .glyphicon-sort-by-attributes:before {
2855 content: "\e155";
2855 content: "\e155";
2856 }
2856 }
2857 .glyphicon-sort-by-attributes-alt:before {
2857 .glyphicon-sort-by-attributes-alt:before {
2858 content: "\e156";
2858 content: "\e156";
2859 }
2859 }
2860 .glyphicon-unchecked:before {
2860 .glyphicon-unchecked:before {
2861 content: "\e157";
2861 content: "\e157";
2862 }
2862 }
2863 .glyphicon-expand:before {
2863 .glyphicon-expand:before {
2864 content: "\e158";
2864 content: "\e158";
2865 }
2865 }
2866 .glyphicon-collapse-down:before {
2866 .glyphicon-collapse-down:before {
2867 content: "\e159";
2867 content: "\e159";
2868 }
2868 }
2869 .glyphicon-collapse-up:before {
2869 .glyphicon-collapse-up:before {
2870 content: "\e160";
2870 content: "\e160";
2871 }
2871 }
2872 .glyphicon-log-in:before {
2872 .glyphicon-log-in:before {
2873 content: "\e161";
2873 content: "\e161";
2874 }
2874 }
2875 .glyphicon-flash:before {
2875 .glyphicon-flash:before {
2876 content: "\e162";
2876 content: "\e162";
2877 }
2877 }
2878 .glyphicon-log-out:before {
2878 .glyphicon-log-out:before {
2879 content: "\e163";
2879 content: "\e163";
2880 }
2880 }
2881 .glyphicon-new-window:before {
2881 .glyphicon-new-window:before {
2882 content: "\e164";
2882 content: "\e164";
2883 }
2883 }
2884 .glyphicon-record:before {
2884 .glyphicon-record:before {
2885 content: "\e165";
2885 content: "\e165";
2886 }
2886 }
2887 .glyphicon-save:before {
2887 .glyphicon-save:before {
2888 content: "\e166";
2888 content: "\e166";
2889 }
2889 }
2890 .glyphicon-open:before {
2890 .glyphicon-open:before {
2891 content: "\e167";
2891 content: "\e167";
2892 }
2892 }
2893 .glyphicon-saved:before {
2893 .glyphicon-saved:before {
2894 content: "\e168";
2894 content: "\e168";
2895 }
2895 }
2896 .glyphicon-import:before {
2896 .glyphicon-import:before {
2897 content: "\e169";
2897 content: "\e169";
2898 }
2898 }
2899 .glyphicon-export:before {
2899 .glyphicon-export:before {
2900 content: "\e170";
2900 content: "\e170";
2901 }
2901 }
2902 .glyphicon-send:before {
2902 .glyphicon-send:before {
2903 content: "\e171";
2903 content: "\e171";
2904 }
2904 }
2905 .glyphicon-floppy-disk:before {
2905 .glyphicon-floppy-disk:before {
2906 content: "\e172";
2906 content: "\e172";
2907 }
2907 }
2908 .glyphicon-floppy-saved:before {
2908 .glyphicon-floppy-saved:before {
2909 content: "\e173";
2909 content: "\e173";
2910 }
2910 }
2911 .glyphicon-floppy-remove:before {
2911 .glyphicon-floppy-remove:before {
2912 content: "\e174";
2912 content: "\e174";
2913 }
2913 }
2914 .glyphicon-floppy-save:before {
2914 .glyphicon-floppy-save:before {
2915 content: "\e175";
2915 content: "\e175";
2916 }
2916 }
2917 .glyphicon-floppy-open:before {
2917 .glyphicon-floppy-open:before {
2918 content: "\e176";
2918 content: "\e176";
2919 }
2919 }
2920 .glyphicon-credit-card:before {
2920 .glyphicon-credit-card:before {
2921 content: "\e177";
2921 content: "\e177";
2922 }
2922 }
2923 .glyphicon-transfer:before {
2923 .glyphicon-transfer:before {
2924 content: "\e178";
2924 content: "\e178";
2925 }
2925 }
2926 .glyphicon-cutlery:before {
2926 .glyphicon-cutlery:before {
2927 content: "\e179";
2927 content: "\e179";
2928 }
2928 }
2929 .glyphicon-header:before {
2929 .glyphicon-header:before {
2930 content: "\e180";
2930 content: "\e180";
2931 }
2931 }
2932 .glyphicon-compressed:before {
2932 .glyphicon-compressed:before {
2933 content: "\e181";
2933 content: "\e181";
2934 }
2934 }
2935 .glyphicon-earphone:before {
2935 .glyphicon-earphone:before {
2936 content: "\e182";
2936 content: "\e182";
2937 }
2937 }
2938 .glyphicon-phone-alt:before {
2938 .glyphicon-phone-alt:before {
2939 content: "\e183";
2939 content: "\e183";
2940 }
2940 }
2941 .glyphicon-tower:before {
2941 .glyphicon-tower:before {
2942 content: "\e184";
2942 content: "\e184";
2943 }
2943 }
2944 .glyphicon-stats:before {
2944 .glyphicon-stats:before {
2945 content: "\e185";
2945 content: "\e185";
2946 }
2946 }
2947 .glyphicon-sd-video:before {
2947 .glyphicon-sd-video:before {
2948 content: "\e186";
2948 content: "\e186";
2949 }
2949 }
2950 .glyphicon-hd-video:before {
2950 .glyphicon-hd-video:before {
2951 content: "\e187";
2951 content: "\e187";
2952 }
2952 }
2953 .glyphicon-subtitles:before {
2953 .glyphicon-subtitles:before {
2954 content: "\e188";
2954 content: "\e188";
2955 }
2955 }
2956 .glyphicon-sound-stereo:before {
2956 .glyphicon-sound-stereo:before {
2957 content: "\e189";
2957 content: "\e189";
2958 }
2958 }
2959 .glyphicon-sound-dolby:before {
2959 .glyphicon-sound-dolby:before {
2960 content: "\e190";
2960 content: "\e190";
2961 }
2961 }
2962 .glyphicon-sound-5-1:before {
2962 .glyphicon-sound-5-1:before {
2963 content: "\e191";
2963 content: "\e191";
2964 }
2964 }
2965 .glyphicon-sound-6-1:before {
2965 .glyphicon-sound-6-1:before {
2966 content: "\e192";
2966 content: "\e192";
2967 }
2967 }
2968 .glyphicon-sound-7-1:before {
2968 .glyphicon-sound-7-1:before {
2969 content: "\e193";
2969 content: "\e193";
2970 }
2970 }
2971 .glyphicon-copyright-mark:before {
2971 .glyphicon-copyright-mark:before {
2972 content: "\e194";
2972 content: "\e194";
2973 }
2973 }
2974 .glyphicon-registration-mark:before {
2974 .glyphicon-registration-mark:before {
2975 content: "\e195";
2975 content: "\e195";
2976 }
2976 }
2977 .glyphicon-cloud-download:before {
2977 .glyphicon-cloud-download:before {
2978 content: "\e197";
2978 content: "\e197";
2979 }
2979 }
2980 .glyphicon-cloud-upload:before {
2980 .glyphicon-cloud-upload:before {
2981 content: "\e198";
2981 content: "\e198";
2982 }
2982 }
2983 .glyphicon-tree-conifer:before {
2983 .glyphicon-tree-conifer:before {
2984 content: "\e199";
2984 content: "\e199";
2985 }
2985 }
2986 .glyphicon-tree-deciduous:before {
2986 .glyphicon-tree-deciduous:before {
2987 content: "\e200";
2987 content: "\e200";
2988 }
2988 }
2989 .caret {
2989 .caret {
2990 display: inline-block;
2990 display: inline-block;
2991 width: 0;
2991 width: 0;
2992 height: 0;
2992 height: 0;
2993 margin-left: 2px;
2993 margin-left: 2px;
2994 vertical-align: middle;
2994 vertical-align: middle;
2995 border-top: 4px solid;
2995 border-top: 4px solid;
2996 border-right: 4px solid transparent;
2996 border-right: 4px solid transparent;
2997 border-left: 4px solid transparent;
2997 border-left: 4px solid transparent;
2998 }
2998 }
2999 .dropdown {
2999 .dropdown {
3000 position: relative;
3000 position: relative;
3001 }
3001 }
3002 .dropdown-toggle:focus {
3002 .dropdown-toggle:focus {
3003 outline: 0;
3003 outline: 0;
3004 }
3004 }
3005 .dropdown-menu {
3005 .dropdown-menu {
3006 position: absolute;
3006 position: absolute;
3007 top: 100%;
3007 top: 100%;
3008 left: 0;
3008 left: 0;
3009 z-index: 1000;
3009 z-index: 1000;
3010 display: none;
3010 display: none;
3011 float: left;
3011 float: left;
3012 min-width: 160px;
3012 min-width: 160px;
3013 padding: 5px 0;
3013 padding: 5px 0;
3014 margin: 2px 0 0;
3014 margin: 2px 0 0;
3015 list-style: none;
3015 list-style: none;
3016 font-size: 13px;
3016 font-size: 13px;
3017 background-color: #ffffff;
3017 background-color: #ffffff;
3018 border: 1px solid #cccccc;
3018 border: 1px solid #cccccc;
3019 border: 1px solid rgba(0, 0, 0, 0.15);
3019 border: 1px solid rgba(0, 0, 0, 0.15);
3020 border-radius: 4px;
3020 border-radius: 4px;
3021 -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
3021 -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
3022 box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
3022 box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
3023 background-clip: padding-box;
3023 background-clip: padding-box;
3024 }
3024 }
3025 .dropdown-menu.pull-right {
3025 .dropdown-menu.pull-right {
3026 right: 0;
3026 right: 0;
3027 left: auto;
3027 left: auto;
3028 }
3028 }
3029 .dropdown-menu .divider {
3029 .dropdown-menu .divider {
3030 height: 1px;
3030 height: 1px;
3031 margin: 8px 0;
3031 margin: 8px 0;
3032 overflow: hidden;
3032 overflow: hidden;
3033 background-color: #e5e5e5;
3033 background-color: #e5e5e5;
3034 }
3034 }
3035 .dropdown-menu > li > a {
3035 .dropdown-menu > li > a {
3036 display: block;
3036 display: block;
3037 padding: 3px 20px;
3037 padding: 3px 20px;
3038 clear: both;
3038 clear: both;
3039 font-weight: normal;
3039 font-weight: normal;
3040 line-height: 1.42857143;
3040 line-height: 1.42857143;
3041 color: #333333;
3041 color: #333333;
3042 white-space: nowrap;
3042 white-space: nowrap;
3043 }
3043 }
3044 .dropdown-menu > li > a:hover,
3044 .dropdown-menu > li > a:hover,
3045 .dropdown-menu > li > a:focus {
3045 .dropdown-menu > li > a:focus {
3046 text-decoration: none;
3046 text-decoration: none;
3047 color: #262626;
3047 color: #262626;
3048 background-color: #f5f5f5;
3048 background-color: #f5f5f5;
3049 }
3049 }
3050 .dropdown-menu > .active > a,
3050 .dropdown-menu > .active > a,
3051 .dropdown-menu > .active > a:hover,
3051 .dropdown-menu > .active > a:hover,
3052 .dropdown-menu > .active > a:focus {
3052 .dropdown-menu > .active > a:focus {
3053 color: #ffffff;
3053 color: #ffffff;
3054 text-decoration: none;
3054 text-decoration: none;
3055 outline: 0;
3055 outline: 0;
3056 background-color: #428bca;
3056 background-color: #428bca;
3057 }
3057 }
3058 .dropdown-menu > .disabled > a,
3058 .dropdown-menu > .disabled > a,
3059 .dropdown-menu > .disabled > a:hover,
3059 .dropdown-menu > .disabled > a:hover,
3060 .dropdown-menu > .disabled > a:focus {
3060 .dropdown-menu > .disabled > a:focus {
3061 color: #999999;
3061 color: #999999;
3062 }
3062 }
3063 .dropdown-menu > .disabled > a:hover,
3063 .dropdown-menu > .disabled > a:hover,
3064 .dropdown-menu > .disabled > a:focus {
3064 .dropdown-menu > .disabled > a:focus {
3065 text-decoration: none;
3065 text-decoration: none;
3066 background-color: transparent;
3066 background-color: transparent;
3067 background-image: none;
3067 background-image: none;
3068 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
3068 filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
3069 cursor: not-allowed;
3069 cursor: not-allowed;
3070 }
3070 }
3071 .open > .dropdown-menu {
3071 .open > .dropdown-menu {
3072 display: block;
3072 display: block;
3073 }
3073 }
3074 .open > a {
3074 .open > a {
3075 outline: 0;
3075 outline: 0;
3076 }
3076 }
3077 .dropdown-menu-right {
3077 .dropdown-menu-right {
3078 left: auto;
3078 left: auto;
3079 right: 0;
3079 right: 0;
3080 }
3080 }
3081 .dropdown-menu-left {
3081 .dropdown-menu-left {
3082 left: 0;
3082 left: 0;
3083 right: auto;
3083 right: auto;
3084 }
3084 }
3085 .dropdown-header {
3085 .dropdown-header {
3086 display: block;
3086 display: block;
3087 padding: 3px 20px;
3087 padding: 3px 20px;
3088 font-size: 12px;
3088 font-size: 12px;
3089 line-height: 1.42857143;
3089 line-height: 1.42857143;
3090 color: #999999;
3090 color: #999999;
3091 }
3091 }
3092 .dropdown-backdrop {
3092 .dropdown-backdrop {
3093 position: fixed;
3093 position: fixed;
3094 left: 0;
3094 left: 0;
3095 right: 0;
3095 right: 0;
3096 bottom: 0;
3096 bottom: 0;
3097 top: 0;
3097 top: 0;
3098 z-index: 990;
3098 z-index: 990;
3099 }
3099 }
3100 .pull-right > .dropdown-menu {
3100 .pull-right > .dropdown-menu {
3101 right: 0;
3101 right: 0;
3102 left: auto;
3102 left: auto;
3103 }
3103 }
3104 .dropup .caret,
3104 .dropup .caret,
3105 .navbar-fixed-bottom .dropdown .caret {
3105 .navbar-fixed-bottom .dropdown .caret {
3106 border-top: 0;
3106 border-top: 0;
3107 border-bottom: 4px solid;
3107 border-bottom: 4px solid;
3108 content: "";
3108 content: "";
3109 }
3109 }
3110 .dropup .dropdown-menu,
3110 .dropup .dropdown-menu,
3111 .navbar-fixed-bottom .dropdown .dropdown-menu {
3111 .navbar-fixed-bottom .dropdown .dropdown-menu {
3112 top: auto;
3112 top: auto;
3113 bottom: 100%;
3113 bottom: 100%;
3114 margin-bottom: 1px;
3114 margin-bottom: 1px;
3115 }
3115 }
3116 @media (min-width: 768px) {
3116 @media (min-width: 768px) {
3117 .navbar-right .dropdown-menu {
3117 .navbar-right .dropdown-menu {
3118 left: auto;
3118 left: auto;
3119 right: 0;
3119 right: 0;
3120 }
3120 }
3121 .navbar-right .dropdown-menu-left {
3121 .navbar-right .dropdown-menu-left {
3122 left: 0;
3122 left: 0;
3123 right: auto;
3123 right: auto;
3124 }
3124 }
3125 }
3125 }
3126 .btn-group,
3126 .btn-group,
3127 .btn-group-vertical {
3127 .btn-group-vertical {
3128 position: relative;
3128 position: relative;
3129 display: inline-block;
3129 display: inline-block;
3130 vertical-align: middle;
3130 vertical-align: middle;
3131 }
3131 }
3132 .btn-group > .btn,
3132 .btn-group > .btn,
3133 .btn-group-vertical > .btn {
3133 .btn-group-vertical > .btn {
3134 position: relative;
3134 position: relative;
3135 float: left;
3135 float: left;
3136 }
3136 }
3137 .btn-group > .btn:hover,
3137 .btn-group > .btn:hover,
3138 .btn-group-vertical > .btn:hover,
3138 .btn-group-vertical > .btn:hover,
3139 .btn-group > .btn:focus,
3139 .btn-group > .btn:focus,
3140 .btn-group-vertical > .btn:focus,
3140 .btn-group-vertical > .btn:focus,
3141 .btn-group > .btn:active,
3141 .btn-group > .btn:active,
3142 .btn-group-vertical > .btn:active,
3142 .btn-group-vertical > .btn:active,
3143 .btn-group > .btn.active,
3143 .btn-group > .btn.active,
3144 .btn-group-vertical > .btn.active {
3144 .btn-group-vertical > .btn.active {
3145 z-index: 2;
3145 z-index: 2;
3146 }
3146 }
3147 .btn-group > .btn:focus,
3147 .btn-group > .btn:focus,
3148 .btn-group-vertical > .btn:focus {
3148 .btn-group-vertical > .btn:focus {
3149 outline: none;
3149 outline: none;
3150 }
3150 }
3151 .btn-group .btn + .btn,
3151 .btn-group .btn + .btn,
3152 .btn-group .btn + .btn-group,
3152 .btn-group .btn + .btn-group,
3153 .btn-group .btn-group + .btn,
3153 .btn-group .btn-group + .btn,
3154 .btn-group .btn-group + .btn-group {
3154 .btn-group .btn-group + .btn-group {
3155 margin-left: -1px;
3155 margin-left: -1px;
3156 }
3156 }
3157 .btn-toolbar {
3157 .btn-toolbar {
3158 margin-left: -5px;
3158 margin-left: -5px;
3159 }
3159 }
3160 .btn-toolbar .btn-group,
3160 .btn-toolbar .btn-group,
3161 .btn-toolbar .input-group {
3161 .btn-toolbar .input-group {
3162 float: left;
3162 float: left;
3163 }
3163 }
3164 .btn-toolbar > .btn,
3164 .btn-toolbar > .btn,
3165 .btn-toolbar > .btn-group,
3165 .btn-toolbar > .btn-group,
3166 .btn-toolbar > .input-group {
3166 .btn-toolbar > .input-group {
3167 margin-left: 5px;
3167 margin-left: 5px;
3168 }
3168 }
3169 .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
3169 .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
3170 border-radius: 0;
3170 border-radius: 0;
3171 }
3171 }
3172 .btn-group > .btn:first-child {
3172 .btn-group > .btn:first-child {
3173 margin-left: 0;
3173 margin-left: 0;
3174 }
3174 }
3175 .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
3175 .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
3176 border-bottom-right-radius: 0;
3176 border-bottom-right-radius: 0;
3177 border-top-right-radius: 0;
3177 border-top-right-radius: 0;
3178 }
3178 }
3179 .btn-group > .btn:last-child:not(:first-child),
3179 .btn-group > .btn:last-child:not(:first-child),
3180 .btn-group > .dropdown-toggle:not(:first-child) {
3180 .btn-group > .dropdown-toggle:not(:first-child) {
3181 border-bottom-left-radius: 0;
3181 border-bottom-left-radius: 0;
3182 border-top-left-radius: 0;
3182 border-top-left-radius: 0;
3183 }
3183 }
3184 .btn-group > .btn-group {
3184 .btn-group > .btn-group {
3185 float: left;
3185 float: left;
3186 }
3186 }
3187 .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
3187 .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
3188 border-radius: 0;
3188 border-radius: 0;
3189 }
3189 }
3190 .btn-group > .btn-group:first-child > .btn:last-child,
3190 .btn-group > .btn-group:first-child > .btn:last-child,
3191 .btn-group > .btn-group:first-child > .dropdown-toggle {
3191 .btn-group > .btn-group:first-child > .dropdown-toggle {
3192 border-bottom-right-radius: 0;
3192 border-bottom-right-radius: 0;
3193 border-top-right-radius: 0;
3193 border-top-right-radius: 0;
3194 }
3194 }
3195 .btn-group > .btn-group:last-child > .btn:first-child {
3195 .btn-group > .btn-group:last-child > .btn:first-child {
3196 border-bottom-left-radius: 0;
3196 border-bottom-left-radius: 0;
3197 border-top-left-radius: 0;
3197 border-top-left-radius: 0;
3198 }
3198 }
3199 .btn-group .dropdown-toggle:active,
3199 .btn-group .dropdown-toggle:active,
3200 .btn-group.open .dropdown-toggle {
3200 .btn-group.open .dropdown-toggle {
3201 outline: 0;
3201 outline: 0;
3202 }
3202 }
3203 .btn-group > .btn + .dropdown-toggle {
3203 .btn-group > .btn + .dropdown-toggle {
3204 padding-left: 8px;
3204 padding-left: 8px;
3205 padding-right: 8px;
3205 padding-right: 8px;
3206 }
3206 }
3207 .btn-group > .btn-lg + .dropdown-toggle {
3207 .btn-group > .btn-lg + .dropdown-toggle {
3208 padding-left: 12px;
3208 padding-left: 12px;
3209 padding-right: 12px;
3209 padding-right: 12px;
3210 }
3210 }
3211 .btn-group.open .dropdown-toggle {
3211 .btn-group.open .dropdown-toggle {
3212 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
3212 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
3213 box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
3213 box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
3214 }
3214 }
3215 .btn-group.open .dropdown-toggle.btn-link {
3215 .btn-group.open .dropdown-toggle.btn-link {
3216 -webkit-box-shadow: none;
3216 -webkit-box-shadow: none;
3217 box-shadow: none;
3217 box-shadow: none;
3218 }
3218 }
3219 .btn .caret {
3219 .btn .caret {
3220 margin-left: 0;
3220 margin-left: 0;
3221 }
3221 }
3222 .btn-lg .caret {
3222 .btn-lg .caret {
3223 border-width: 5px 5px 0;
3223 border-width: 5px 5px 0;
3224 border-bottom-width: 0;
3224 border-bottom-width: 0;
3225 }
3225 }
3226 .dropup .btn-lg .caret {
3226 .dropup .btn-lg .caret {
3227 border-width: 0 5px 5px;
3227 border-width: 0 5px 5px;
3228 }
3228 }
3229 .btn-group-vertical > .btn,
3229 .btn-group-vertical > .btn,
3230 .btn-group-vertical > .btn-group,
3230 .btn-group-vertical > .btn-group,
3231 .btn-group-vertical > .btn-group > .btn {
3231 .btn-group-vertical > .btn-group > .btn {
3232 display: block;
3232 display: block;
3233 float: none;
3233 float: none;
3234 width: 100%;
3234 width: 100%;
3235 max-width: 100%;
3235 max-width: 100%;
3236 }
3236 }
3237 .btn-group-vertical > .btn-group > .btn {
3237 .btn-group-vertical > .btn-group > .btn {
3238 float: none;
3238 float: none;
3239 }
3239 }
3240 .btn-group-vertical > .btn + .btn,
3240 .btn-group-vertical > .btn + .btn,
3241 .btn-group-vertical > .btn + .btn-group,
3241 .btn-group-vertical > .btn + .btn-group,
3242 .btn-group-vertical > .btn-group + .btn,
3242 .btn-group-vertical > .btn-group + .btn,
3243 .btn-group-vertical > .btn-group + .btn-group {
3243 .btn-group-vertical > .btn-group + .btn-group {
3244 margin-top: -1px;
3244 margin-top: -1px;
3245 margin-left: 0;
3245 margin-left: 0;
3246 }
3246 }
3247 .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
3247 .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
3248 border-radius: 0;
3248 border-radius: 0;
3249 }
3249 }
3250 .btn-group-vertical > .btn:first-child:not(:last-child) {
3250 .btn-group-vertical > .btn:first-child:not(:last-child) {
3251 border-top-right-radius: 4px;
3251 border-top-right-radius: 4px;
3252 border-bottom-right-radius: 0;
3252 border-bottom-right-radius: 0;
3253 border-bottom-left-radius: 0;
3253 border-bottom-left-radius: 0;
3254 }
3254 }
3255 .btn-group-vertical > .btn:last-child:not(:first-child) {
3255 .btn-group-vertical > .btn:last-child:not(:first-child) {
3256 border-bottom-left-radius: 4px;
3256 border-bottom-left-radius: 4px;
3257 border-top-right-radius: 0;
3257 border-top-right-radius: 0;
3258 border-top-left-radius: 0;
3258 border-top-left-radius: 0;
3259 }
3259 }
3260 .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
3260 .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
3261 border-radius: 0;
3261 border-radius: 0;
3262 }
3262 }
3263 .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
3263 .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
3264 .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
3264 .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
3265 border-bottom-right-radius: 0;
3265 border-bottom-right-radius: 0;
3266 border-bottom-left-radius: 0;
3266 border-bottom-left-radius: 0;
3267 }
3267 }
3268 .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
3268 .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
3269 border-top-right-radius: 0;
3269 border-top-right-radius: 0;
3270 border-top-left-radius: 0;
3270 border-top-left-radius: 0;
3271 }
3271 }
3272 .btn-group-justified {
3272 .btn-group-justified {
3273 display: table;
3273 display: table;
3274 width: 100%;
3274 width: 100%;
3275 table-layout: fixed;
3275 table-layout: fixed;
3276 border-collapse: separate;
3276 border-collapse: separate;
3277 }
3277 }
3278 .btn-group-justified > .btn,
3278 .btn-group-justified > .btn,
3279 .btn-group-justified > .btn-group {
3279 .btn-group-justified > .btn-group {
3280 float: none;
3280 float: none;
3281 display: table-cell;
3281 display: table-cell;
3282 width: 1%;
3282 width: 1%;
3283 }
3283 }
3284 .btn-group-justified > .btn-group .btn {
3284 .btn-group-justified > .btn-group .btn {
3285 width: 100%;
3285 width: 100%;
3286 }
3286 }
3287 [data-toggle="buttons"] > .btn > input[type="radio"],
3287 [data-toggle="buttons"] > .btn > input[type="radio"],
3288 [data-toggle="buttons"] > .btn > input[type="checkbox"] {
3288 [data-toggle="buttons"] > .btn > input[type="checkbox"] {
3289 display: none;
3289 display: none;
3290 }
3290 }
3291 .input-group {
3291 .input-group {
3292 position: relative;
3292 position: relative;
3293 display: table;
3293 display: table;
3294 border-collapse: separate;
3294 border-collapse: separate;
3295 }
3295 }
3296 .input-group[class*="col-"] {
3296 .input-group[class*="col-"] {
3297 float: none;
3297 float: none;
3298 padding-left: 0;
3298 padding-left: 0;
3299 padding-right: 0;
3299 padding-right: 0;
3300 }
3300 }
3301 .input-group .form-control {
3301 .input-group .form-control {
3302 position: relative;
3302 position: relative;
3303 z-index: 2;
3303 z-index: 2;
3304 float: left;
3304 float: left;
3305 width: 100%;
3305 width: 100%;
3306 margin-bottom: 0;
3306 margin-bottom: 0;
3307 }
3307 }
3308 .input-group-lg > .form-control,
3308 .input-group-lg > .form-control,
3309 .input-group-lg > .input-group-addon,
3309 .input-group-lg > .input-group-addon,
3310 .input-group-lg > .input-group-btn > .btn {
3310 .input-group-lg > .input-group-btn > .btn {
3311 height: 45px;
3311 height: 45px;
3312 padding: 10px 16px;
3312 padding: 10px 16px;
3313 font-size: 17px;
3313 font-size: 17px;
3314 line-height: 1.33;
3314 line-height: 1.33;
3315 border-radius: 6px;
3315 border-radius: 6px;
3316 }
3316 }
3317 select.input-group-lg > .form-control,
3317 select.input-group-lg > .form-control,
3318 select.input-group-lg > .input-group-addon,
3318 select.input-group-lg > .input-group-addon,
3319 select.input-group-lg > .input-group-btn > .btn {
3319 select.input-group-lg > .input-group-btn > .btn {
3320 height: 45px;
3320 height: 45px;
3321 line-height: 45px;
3321 line-height: 45px;
3322 }
3322 }
3323 textarea.input-group-lg > .form-control,
3323 textarea.input-group-lg > .form-control,
3324 textarea.input-group-lg > .input-group-addon,
3324 textarea.input-group-lg > .input-group-addon,
3325 textarea.input-group-lg > .input-group-btn > .btn,
3325 textarea.input-group-lg > .input-group-btn > .btn,
3326 select[multiple].input-group-lg > .form-control,
3326 select[multiple].input-group-lg > .form-control,
3327 select[multiple].input-group-lg > .input-group-addon,
3327 select[multiple].input-group-lg > .input-group-addon,
3328 select[multiple].input-group-lg > .input-group-btn > .btn {
3328 select[multiple].input-group-lg > .input-group-btn > .btn {
3329 height: auto;
3329 height: auto;
3330 }
3330 }
3331 .input-group-sm > .form-control,
3331 .input-group-sm > .form-control,
3332 .input-group-sm > .input-group-addon,
3332 .input-group-sm > .input-group-addon,
3333 .input-group-sm > .input-group-btn > .btn {
3333 .input-group-sm > .input-group-btn > .btn {
3334 height: 30px;
3334 height: 30px;
3335 padding: 5px 10px;
3335 padding: 5px 10px;
3336 font-size: 12px;
3336 font-size: 12px;
3337 line-height: 1.5;
3337 line-height: 1.5;
3338 border-radius: 3px;
3338 border-radius: 3px;
3339 }
3339 }
3340 select.input-group-sm > .form-control,
3340 select.input-group-sm > .form-control,
3341 select.input-group-sm > .input-group-addon,
3341 select.input-group-sm > .input-group-addon,
3342 select.input-group-sm > .input-group-btn > .btn {
3342 select.input-group-sm > .input-group-btn > .btn {
3343 height: 30px;
3343 height: 30px;
3344 line-height: 30px;
3344 line-height: 30px;
3345 }
3345 }
3346 textarea.input-group-sm > .form-control,
3346 textarea.input-group-sm > .form-control,
3347 textarea.input-group-sm > .input-group-addon,
3347 textarea.input-group-sm > .input-group-addon,
3348 textarea.input-group-sm > .input-group-btn > .btn,
3348 textarea.input-group-sm > .input-group-btn > .btn,
3349 select[multiple].input-group-sm > .form-control,
3349 select[multiple].input-group-sm > .form-control,
3350 select[multiple].input-group-sm > .input-group-addon,
3350 select[multiple].input-group-sm > .input-group-addon,
3351 select[multiple].input-group-sm > .input-group-btn > .btn {
3351 select[multiple].input-group-sm > .input-group-btn > .btn {
3352 height: auto;
3352 height: auto;
3353 }
3353 }
3354 .input-group-addon,
3354 .input-group-addon,
3355 .input-group-btn,
3355 .input-group-btn,
3356 .input-group .form-control {
3356 .input-group .form-control {
3357 display: table-cell;
3357 display: table-cell;
3358 }
3358 }
3359 .input-group-addon:not(:first-child):not(:last-child),
3359 .input-group-addon:not(:first-child):not(:last-child),
3360 .input-group-btn:not(:first-child):not(:last-child),
3360 .input-group-btn:not(:first-child):not(:last-child),
3361 .input-group .form-control:not(:first-child):not(:last-child) {
3361 .input-group .form-control:not(:first-child):not(:last-child) {
3362 border-radius: 0;
3362 border-radius: 0;
3363 }
3363 }
3364 .input-group-addon,
3364 .input-group-addon,
3365 .input-group-btn {
3365 .input-group-btn {
3366 width: 1%;
3366 width: 1%;
3367 white-space: nowrap;
3367 white-space: nowrap;
3368 vertical-align: middle;
3368 vertical-align: middle;
3369 }
3369 }
3370 .input-group-addon {
3370 .input-group-addon {
3371 padding: 6px 12px;
3371 padding: 6px 12px;
3372 font-size: 13px;
3372 font-size: 13px;
3373 font-weight: normal;
3373 font-weight: normal;
3374 line-height: 1;
3374 line-height: 1;
3375 color: #555555;
3375 color: #555555;
3376 text-align: center;
3376 text-align: center;
3377 background-color: #eeeeee;
3377 background-color: #eeeeee;
3378 border: 1px solid #cccccc;
3378 border: 1px solid #cccccc;
3379 border-radius: 4px;
3379 border-radius: 4px;
3380 }
3380 }
3381 .input-group-addon.input-sm {
3381 .input-group-addon.input-sm {
3382 padding: 5px 10px;
3382 padding: 5px 10px;
3383 font-size: 12px;
3383 font-size: 12px;
3384 border-radius: 3px;
3384 border-radius: 3px;
3385 }
3385 }
3386 .input-group-addon.input-lg {
3386 .input-group-addon.input-lg {
3387 padding: 10px 16px;
3387 padding: 10px 16px;
3388 font-size: 17px;
3388 font-size: 17px;
3389 border-radius: 6px;
3389 border-radius: 6px;
3390 }
3390 }
3391 .input-group-addon input[type="radio"],
3391 .input-group-addon input[type="radio"],
3392 .input-group-addon input[type="checkbox"] {
3392 .input-group-addon input[type="checkbox"] {
3393 margin-top: 0;
3393 margin-top: 0;
3394 }
3394 }
3395 .input-group .form-control:first-child,
3395 .input-group .form-control:first-child,
3396 .input-group-addon:first-child,
3396 .input-group-addon:first-child,
3397 .input-group-btn:first-child > .btn,
3397 .input-group-btn:first-child > .btn,
3398 .input-group-btn:first-child > .btn-group > .btn,
3398 .input-group-btn:first-child > .btn-group > .btn,
3399 .input-group-btn:first-child > .dropdown-toggle,
3399 .input-group-btn:first-child > .dropdown-toggle,
3400 .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
3400 .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
3401 .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
3401 .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
3402 border-bottom-right-radius: 0;
3402 border-bottom-right-radius: 0;
3403 border-top-right-radius: 0;
3403 border-top-right-radius: 0;
3404 }
3404 }
3405 .input-group-addon:first-child {
3405 .input-group-addon:first-child {
3406 border-right: 0;
3406 border-right: 0;
3407 }
3407 }
3408 .input-group .form-control:last-child,
3408 .input-group .form-control:last-child,
3409 .input-group-addon:last-child,
3409 .input-group-addon:last-child,
3410 .input-group-btn:last-child > .btn,
3410 .input-group-btn:last-child > .btn,
3411 .input-group-btn:last-child > .btn-group > .btn,
3411 .input-group-btn:last-child > .btn-group > .btn,
3412 .input-group-btn:last-child > .dropdown-toggle,
3412 .input-group-btn:last-child > .dropdown-toggle,
3413 .input-group-btn:first-child > .btn:not(:first-child),
3413 .input-group-btn:first-child > .btn:not(:first-child),
3414 .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
3414 .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
3415 border-bottom-left-radius: 0;
3415 border-bottom-left-radius: 0;
3416 border-top-left-radius: 0;
3416 border-top-left-radius: 0;
3417 }
3417 }
3418 .input-group-addon:last-child {
3418 .input-group-addon:last-child {
3419 border-left: 0;
3419 border-left: 0;
3420 }
3420 }
3421 .input-group-btn {
3421 .input-group-btn {
3422 position: relative;
3422 position: relative;
3423 font-size: 0;
3423 font-size: 0;
3424 white-space: nowrap;
3424 white-space: nowrap;
3425 }
3425 }
3426 .input-group-btn > .btn {
3426 .input-group-btn > .btn {
3427 position: relative;
3427 position: relative;
3428 }
3428 }
3429 .input-group-btn > .btn + .btn {
3429 .input-group-btn > .btn + .btn {
3430 margin-left: -1px;
3430 margin-left: -1px;
3431 }
3431 }
3432 .input-group-btn > .btn:hover,
3432 .input-group-btn > .btn:hover,
3433 .input-group-btn > .btn:focus,
3433 .input-group-btn > .btn:focus,
3434 .input-group-btn > .btn:active {
3434 .input-group-btn > .btn:active {
3435 z-index: 2;
3435 z-index: 2;
3436 }
3436 }
3437 .input-group-btn:first-child > .btn,
3437 .input-group-btn:first-child > .btn,
3438 .input-group-btn:first-child > .btn-group {
3438 .input-group-btn:first-child > .btn-group {
3439 margin-right: -1px;
3439 margin-right: -1px;
3440 }
3440 }
3441 .input-group-btn:last-child > .btn,
3441 .input-group-btn:last-child > .btn,
3442 .input-group-btn:last-child > .btn-group {
3442 .input-group-btn:last-child > .btn-group {
3443 margin-left: -1px;
3443 margin-left: -1px;
3444 }
3444 }
3445 .nav {
3445 .nav {
3446 margin-bottom: 0;
3446 margin-bottom: 0;
3447 padding-left: 0;
3447 padding-left: 0;
3448 list-style: none;
3448 list-style: none;
3449 }
3449 }
3450 .nav > li {
3450 .nav > li {
3451 position: relative;
3451 position: relative;
3452 display: block;
3452 display: block;
3453 }
3453 }
3454 .nav > li > a {
3454 .nav > li > a {
3455 position: relative;
3455 position: relative;
3456 display: block;
3456 display: block;
3457 padding: 10px 15px;
3457 padding: 10px 15px;
3458 }
3458 }
3459 .nav > li > a:hover,
3459 .nav > li > a:hover,
3460 .nav > li > a:focus {
3460 .nav > li > a:focus {
3461 text-decoration: none;
3461 text-decoration: none;
3462 background-color: #eeeeee;
3462 background-color: #eeeeee;
3463 }
3463 }
3464 .nav > li.disabled > a {
3464 .nav > li.disabled > a {
3465 color: #999999;
3465 color: #999999;
3466 }
3466 }
3467 .nav > li.disabled > a:hover,
3467 .nav > li.disabled > a:hover,
3468 .nav > li.disabled > a:focus {
3468 .nav > li.disabled > a:focus {
3469 color: #999999;
3469 color: #999999;
3470 text-decoration: none;
3470 text-decoration: none;
3471 background-color: transparent;
3471 background-color: transparent;
3472 cursor: not-allowed;
3472 cursor: not-allowed;
3473 }
3473 }
3474 .nav .open > a,
3474 .nav .open > a,
3475 .nav .open > a:hover,
3475 .nav .open > a:hover,
3476 .nav .open > a:focus {
3476 .nav .open > a:focus {
3477 background-color: #eeeeee;
3477 background-color: #eeeeee;
3478 border-color: #428bca;
3478 border-color: #428bca;
3479 }
3479 }
3480 .nav .nav-divider {
3480 .nav .nav-divider {
3481 height: 1px;
3481 height: 1px;
3482 margin: 8px 0;
3482 margin: 8px 0;
3483 overflow: hidden;
3483 overflow: hidden;
3484 background-color: #e5e5e5;
3484 background-color: #e5e5e5;
3485 }
3485 }
3486 .nav > li > a > img {
3486 .nav > li > a > img {
3487 max-width: none;
3487 max-width: none;
3488 }
3488 }
3489 .nav-tabs {
3489 .nav-tabs {
3490 border-bottom: 1px solid #dddddd;
3490 border-bottom: 1px solid #dddddd;
3491 }
3491 }
3492 .nav-tabs > li {
3492 .nav-tabs > li {
3493 float: left;
3493 float: left;
3494 margin-bottom: -1px;
3494 margin-bottom: -1px;
3495 }
3495 }
3496 .nav-tabs > li > a {
3496 .nav-tabs > li > a {
3497 margin-right: 2px;
3497 margin-right: 2px;
3498 line-height: 1.42857143;
3498 line-height: 1.42857143;
3499 border: 1px solid transparent;
3499 border: 1px solid transparent;
3500 border-radius: 4px 4px 0 0;
3500 border-radius: 4px 4px 0 0;
3501 }
3501 }
3502 .nav-tabs > li > a:hover {
3502 .nav-tabs > li > a:hover {
3503 border-color: #eeeeee #eeeeee #dddddd;
3503 border-color: #eeeeee #eeeeee #dddddd;
3504 }
3504 }
3505 .nav-tabs > li.active > a,
3505 .nav-tabs > li.active > a,
3506 .nav-tabs > li.active > a:hover,
3506 .nav-tabs > li.active > a:hover,
3507 .nav-tabs > li.active > a:focus {
3507 .nav-tabs > li.active > a:focus {
3508 color: #555555;
3508 color: #555555;
3509 background-color: #ffffff;
3509 background-color: #ffffff;
3510 border: 1px solid #dddddd;
3510 border: 1px solid #dddddd;
3511 border-bottom-color: transparent;
3511 border-bottom-color: transparent;
3512 cursor: default;
3512 cursor: default;
3513 }
3513 }
3514 .nav-tabs.nav-justified {
3514 .nav-tabs.nav-justified {
3515 width: 100%;
3515 width: 100%;
3516 border-bottom: 0;
3516 border-bottom: 0;
3517 }
3517 }
3518 .nav-tabs.nav-justified > li {
3518 .nav-tabs.nav-justified > li {
3519 float: none;
3519 float: none;
3520 }
3520 }
3521 .nav-tabs.nav-justified > li > a {
3521 .nav-tabs.nav-justified > li > a {
3522 text-align: center;
3522 text-align: center;
3523 margin-bottom: 5px;
3523 margin-bottom: 5px;
3524 }
3524 }
3525 .nav-tabs.nav-justified > .dropdown .dropdown-menu {
3525 .nav-tabs.nav-justified > .dropdown .dropdown-menu {
3526 top: auto;
3526 top: auto;
3527 left: auto;
3527 left: auto;
3528 }
3528 }
3529 @media (min-width: 768px) {
3529 @media (min-width: 768px) {
3530 .nav-tabs.nav-justified > li {
3530 .nav-tabs.nav-justified > li {
3531 display: table-cell;
3531 display: table-cell;
3532 width: 1%;
3532 width: 1%;
3533 }
3533 }
3534 .nav-tabs.nav-justified > li > a {
3534 .nav-tabs.nav-justified > li > a {
3535 margin-bottom: 0;
3535 margin-bottom: 0;
3536 }
3536 }
3537 }
3537 }
3538 .nav-tabs.nav-justified > li > a {
3538 .nav-tabs.nav-justified > li > a {
3539 margin-right: 0;
3539 margin-right: 0;
3540 border-radius: 4px;
3540 border-radius: 4px;
3541 }
3541 }
3542 .nav-tabs.nav-justified > .active > a,
3542 .nav-tabs.nav-justified > .active > a,
3543 .nav-tabs.nav-justified > .active > a:hover,
3543 .nav-tabs.nav-justified > .active > a:hover,
3544 .nav-tabs.nav-justified > .active > a:focus {
3544 .nav-tabs.nav-justified > .active > a:focus {
3545 border: 1px solid #dddddd;
3545 border: 1px solid #dddddd;
3546 }
3546 }
3547 @media (min-width: 768px) {
3547 @media (min-width: 768px) {
3548 .nav-tabs.nav-justified > li > a {
3548 .nav-tabs.nav-justified > li > a {
3549 border-bottom: 1px solid #dddddd;
3549 border-bottom: 1px solid #dddddd;
3550 border-radius: 4px 4px 0 0;
3550 border-radius: 4px 4px 0 0;
3551 }
3551 }
3552 .nav-tabs.nav-justified > .active > a,
3552 .nav-tabs.nav-justified > .active > a,
3553 .nav-tabs.nav-justified > .active > a:hover,
3553 .nav-tabs.nav-justified > .active > a:hover,
3554 .nav-tabs.nav-justified > .active > a:focus {
3554 .nav-tabs.nav-justified > .active > a:focus {
3555 border-bottom-color: #ffffff;
3555 border-bottom-color: #ffffff;
3556 }
3556 }
3557 }
3557 }
3558 .nav-pills > li {
3558 .nav-pills > li {
3559 float: left;
3559 float: left;
3560 }
3560 }
3561 .nav-pills > li > a {
3561 .nav-pills > li > a {
3562 border-radius: 4px;
3562 border-radius: 4px;
3563 }
3563 }
3564 .nav-pills > li + li {
3564 .nav-pills > li + li {
3565 margin-left: 2px;
3565 margin-left: 2px;
3566 }
3566 }
3567 .nav-pills > li.active > a,
3567 .nav-pills > li.active > a,
3568 .nav-pills > li.active > a:hover,
3568 .nav-pills > li.active > a:hover,
3569 .nav-pills > li.active > a:focus {
3569 .nav-pills > li.active > a:focus {
3570 color: #ffffff;
3570 color: #ffffff;
3571 background-color: #428bca;
3571 background-color: #428bca;
3572 }
3572 }
3573 .nav-stacked > li {
3573 .nav-stacked > li {
3574 float: none;
3574 float: none;
3575 }
3575 }
3576 .nav-stacked > li + li {
3576 .nav-stacked > li + li {
3577 margin-top: 2px;
3577 margin-top: 2px;
3578 margin-left: 0;
3578 margin-left: 0;
3579 }
3579 }
3580 .nav-justified {
3580 .nav-justified {
3581 width: 100%;
3581 width: 100%;
3582 }
3582 }
3583 .nav-justified > li {
3583 .nav-justified > li {
3584 float: none;
3584 float: none;
3585 }
3585 }
3586 .nav-justified > li > a {
3586 .nav-justified > li > a {
3587 text-align: center;
3587 text-align: center;
3588 margin-bottom: 5px;
3588 margin-bottom: 5px;
3589 }
3589 }
3590 .nav-justified > .dropdown .dropdown-menu {
3590 .nav-justified > .dropdown .dropdown-menu {
3591 top: auto;
3591 top: auto;
3592 left: auto;
3592 left: auto;
3593 }
3593 }
3594 @media (min-width: 768px) {
3594 @media (min-width: 768px) {
3595 .nav-justified > li {
3595 .nav-justified > li {
3596 display: table-cell;
3596 display: table-cell;
3597 width: 1%;
3597 width: 1%;
3598 }
3598 }
3599 .nav-justified > li > a {
3599 .nav-justified > li > a {
3600 margin-bottom: 0;
3600 margin-bottom: 0;
3601 }
3601 }
3602 }
3602 }
3603 .nav-tabs-justified {
3603 .nav-tabs-justified {
3604 border-bottom: 0;
3604 border-bottom: 0;
3605 }
3605 }
3606 .nav-tabs-justified > li > a {
3606 .nav-tabs-justified > li > a {
3607 margin-right: 0;
3607 margin-right: 0;
3608 border-radius: 4px;
3608 border-radius: 4px;
3609 }
3609 }
3610 .nav-tabs-justified > .active > a,
3610 .nav-tabs-justified > .active > a,
3611 .nav-tabs-justified > .active > a:hover,
3611 .nav-tabs-justified > .active > a:hover,
3612 .nav-tabs-justified > .active > a:focus {
3612 .nav-tabs-justified > .active > a:focus {
3613 border: 1px solid #dddddd;
3613 border: 1px solid #dddddd;
3614 }
3614 }
3615 @media (min-width: 768px) {
3615 @media (min-width: 768px) {
3616 .nav-tabs-justified > li > a {
3616 .nav-tabs-justified > li > a {
3617 border-bottom: 1px solid #dddddd;
3617 border-bottom: 1px solid #dddddd;
3618 border-radius: 4px 4px 0 0;
3618 border-radius: 4px 4px 0 0;
3619 }
3619 }
3620 .nav-tabs-justified > .active > a,
3620 .nav-tabs-justified > .active > a,
3621 .nav-tabs-justified > .active > a:hover,
3621 .nav-tabs-justified > .active > a:hover,
3622 .nav-tabs-justified > .active > a:focus {
3622 .nav-tabs-justified > .active > a:focus {
3623 border-bottom-color: #ffffff;
3623 border-bottom-color: #ffffff;
3624 }
3624 }
3625 }
3625 }
3626 .tab-content > .tab-pane {
3626 .tab-content > .tab-pane {
3627 display: none;
3627 display: none;
3628 }
3628 }
3629 .tab-content > .active {
3629 .tab-content > .active {
3630 display: block;
3630 display: block;
3631 }
3631 }
3632 .nav-tabs .dropdown-menu {
3632 .nav-tabs .dropdown-menu {
3633 margin-top: -1px;
3633 margin-top: -1px;
3634 border-top-right-radius: 0;
3634 border-top-right-radius: 0;
3635 border-top-left-radius: 0;
3635 border-top-left-radius: 0;
3636 }
3636 }
3637 .navbar {
3637 .navbar {
3638 position: relative;
3638 position: relative;
3639 min-height: 36px;
3639 min-height: 36px;
3640 margin-bottom: 18px;
3640 margin-bottom: 18px;
3641 border: 1px solid transparent;
3641 border: 1px solid transparent;
3642 }
3642 }
3643 @media (min-width: 768px) {
3643 @media (min-width: 768px) {
3644 .navbar {
3644 .navbar {
3645 border-radius: 4px;
3645 border-radius: 4px;
3646 }
3646 }
3647 }
3647 }
3648 @media (min-width: 768px) {
3648 @media (min-width: 768px) {
3649 .navbar-header {
3649 .navbar-header {
3650 float: left;
3650 float: left;
3651 }
3651 }
3652 }
3652 }
3653 .navbar-collapse {
3653 .navbar-collapse {
3654 max-height: 340px;
3654 max-height: 340px;
3655 overflow-x: visible;
3655 overflow-x: visible;
3656 padding-right: 15px;
3656 padding-right: 15px;
3657 padding-left: 15px;
3657 padding-left: 15px;
3658 border-top: 1px solid transparent;
3658 border-top: 1px solid transparent;
3659 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
3659 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
3660 -webkit-overflow-scrolling: touch;
3660 -webkit-overflow-scrolling: touch;
3661 }
3661 }
3662 .navbar-collapse.in {
3662 .navbar-collapse.in {
3663 overflow-y: auto;
3663 overflow-y: auto;
3664 }
3664 }
3665 @media (min-width: 768px) {
3665 @media (min-width: 768px) {
3666 .navbar-collapse {
3666 .navbar-collapse {
3667 width: auto;
3667 width: auto;
3668 border-top: 0;
3668 border-top: 0;
3669 box-shadow: none;
3669 box-shadow: none;
3670 }
3670 }
3671 .navbar-collapse.collapse {
3671 .navbar-collapse.collapse {
3672 display: block !important;
3672 display: block !important;
3673 height: auto !important;
3673 height: auto !important;
3674 padding-bottom: 0;
3674 padding-bottom: 0;
3675 overflow: visible !important;
3675 overflow: visible !important;
3676 }
3676 }
3677 .navbar-collapse.in {
3677 .navbar-collapse.in {
3678 overflow-y: visible;
3678 overflow-y: visible;
3679 }
3679 }
3680 .navbar-fixed-top .navbar-collapse,
3680 .navbar-fixed-top .navbar-collapse,
3681 .navbar-static-top .navbar-collapse,
3681 .navbar-static-top .navbar-collapse,
3682 .navbar-fixed-bottom .navbar-collapse {
3682 .navbar-fixed-bottom .navbar-collapse {
3683 padding-left: 0;
3683 padding-left: 0;
3684 padding-right: 0;
3684 padding-right: 0;
3685 }
3685 }
3686 }
3686 }
3687 .container > .navbar-header,
3687 .container > .navbar-header,
3688 .container-fluid > .navbar-header,
3688 .container-fluid > .navbar-header,
3689 .container > .navbar-collapse,
3689 .container > .navbar-collapse,
3690 .container-fluid > .navbar-collapse {
3690 .container-fluid > .navbar-collapse {
3691 margin-right: -15px;
3691 margin-right: -15px;
3692 margin-left: -15px;
3692 margin-left: -15px;
3693 }
3693 }
3694 @media (min-width: 768px) {
3694 @media (min-width: 768px) {
3695 .container > .navbar-header,
3695 .container > .navbar-header,
3696 .container-fluid > .navbar-header,
3696 .container-fluid > .navbar-header,
3697 .container > .navbar-collapse,
3697 .container > .navbar-collapse,
3698 .container-fluid > .navbar-collapse {
3698 .container-fluid > .navbar-collapse {
3699 margin-right: 0;
3699 margin-right: 0;
3700 margin-left: 0;
3700 margin-left: 0;
3701 }
3701 }
3702 }
3702 }
3703 .navbar-static-top {
3703 .navbar-static-top {
3704 z-index: 1000;
3704 z-index: 1000;
3705 border-width: 0 0 1px;
3705 border-width: 0 0 1px;
3706 }
3706 }
3707 @media (min-width: 768px) {
3707 @media (min-width: 768px) {
3708 .navbar-static-top {
3708 .navbar-static-top {
3709 border-radius: 0;
3709 border-radius: 0;
3710 }
3710 }
3711 }
3711 }
3712 .navbar-fixed-top,
3712 .navbar-fixed-top,
3713 .navbar-fixed-bottom {
3713 .navbar-fixed-bottom {
3714 position: fixed;
3714 position: fixed;
3715 right: 0;
3715 right: 0;
3716 left: 0;
3716 left: 0;
3717 z-index: 1030;
3717 z-index: 1030;
3718 }
3718 }
3719 @media (min-width: 768px) {
3719 @media (min-width: 768px) {
3720 .navbar-fixed-top,
3720 .navbar-fixed-top,
3721 .navbar-fixed-bottom {
3721 .navbar-fixed-bottom {
3722 border-radius: 0;
3722 border-radius: 0;
3723 }
3723 }
3724 }
3724 }
3725 .navbar-fixed-top {
3725 .navbar-fixed-top {
3726 top: 0;
3726 top: 0;
3727 border-width: 0 0 1px;
3727 border-width: 0 0 1px;
3728 }
3728 }
3729 .navbar-fixed-bottom {
3729 .navbar-fixed-bottom {
3730 bottom: 0;
3730 bottom: 0;
3731 margin-bottom: 0;
3731 margin-bottom: 0;
3732 border-width: 1px 0 0;
3732 border-width: 1px 0 0;
3733 }
3733 }
3734 .navbar-brand {
3734 .navbar-brand {
3735 float: left;
3735 float: left;
3736 padding: 9px 15px;
3736 padding: 9px 15px;
3737 font-size: 17px;
3737 font-size: 17px;
3738 line-height: 18px;
3738 line-height: 18px;
3739 height: 36px;
3739 height: 36px;
3740 }
3740 }
3741 .navbar-brand:hover,
3741 .navbar-brand:hover,
3742 .navbar-brand:focus {
3742 .navbar-brand:focus {
3743 text-decoration: none;
3743 text-decoration: none;
3744 }
3744 }
3745 @media (min-width: 768px) {
3745 @media (min-width: 768px) {
3746 .navbar > .container .navbar-brand,
3746 .navbar > .container .navbar-brand,
3747 .navbar > .container-fluid .navbar-brand {
3747 .navbar > .container-fluid .navbar-brand {
3748 margin-left: -15px;
3748 margin-left: -15px;
3749 }
3749 }
3750 }
3750 }
3751 .navbar-toggle {
3751 .navbar-toggle {
3752 position: relative;
3752 position: relative;
3753 float: right;
3753 float: right;
3754 margin-right: 15px;
3754 margin-right: 15px;
3755 padding: 9px 10px;
3755 padding: 9px 10px;
3756 margin-top: 1px;
3756 margin-top: 1px;
3757 margin-bottom: 1px;
3757 margin-bottom: 1px;
3758 background-color: transparent;
3758 background-color: transparent;
3759 background-image: none;
3759 background-image: none;
3760 border: 1px solid transparent;
3760 border: 1px solid transparent;
3761 border-radius: 4px;
3761 border-radius: 4px;
3762 }
3762 }
3763 .navbar-toggle:focus {
3763 .navbar-toggle:focus {
3764 outline: none;
3764 outline: none;
3765 }
3765 }
3766 .navbar-toggle .icon-bar {
3766 .navbar-toggle .icon-bar {
3767 display: block;
3767 display: block;
3768 width: 22px;
3768 width: 22px;
3769 height: 2px;
3769 height: 2px;
3770 border-radius: 1px;
3770 border-radius: 1px;
3771 }
3771 }
3772 .navbar-toggle .icon-bar + .icon-bar {
3772 .navbar-toggle .icon-bar + .icon-bar {
3773 margin-top: 4px;
3773 margin-top: 4px;
3774 }
3774 }
3775 @media (min-width: 768px) {
3775 @media (min-width: 768px) {
3776 .navbar-toggle {
3776 .navbar-toggle {
3777 display: none;
3777 display: none;
3778 }
3778 }
3779 }
3779 }
3780 .navbar-nav {
3780 .navbar-nav {
3781 margin: 4.5px -15px;
3781 margin: 4.5px -15px;
3782 }
3782 }
3783 .navbar-nav > li > a {
3783 .navbar-nav > li > a {
3784 padding-top: 10px;
3784 padding-top: 10px;
3785 padding-bottom: 10px;
3785 padding-bottom: 10px;
3786 line-height: 18px;
3786 line-height: 18px;
3787 }
3787 }
3788 @media (max-width: 767px) {
3788 @media (max-width: 767px) {
3789 .navbar-nav .open .dropdown-menu {
3789 .navbar-nav .open .dropdown-menu {
3790 position: static;
3790 position: static;
3791 float: none;
3791 float: none;
3792 width: auto;
3792 width: auto;
3793 margin-top: 0;
3793 margin-top: 0;
3794 background-color: transparent;
3794 background-color: transparent;
3795 border: 0;
3795 border: 0;
3796 box-shadow: none;
3796 box-shadow: none;
3797 }
3797 }
3798 .navbar-nav .open .dropdown-menu > li > a,
3798 .navbar-nav .open .dropdown-menu > li > a,
3799 .navbar-nav .open .dropdown-menu .dropdown-header {
3799 .navbar-nav .open .dropdown-menu .dropdown-header {
3800 padding: 5px 15px 5px 25px;
3800 padding: 5px 15px 5px 25px;
3801 }
3801 }
3802 .navbar-nav .open .dropdown-menu > li > a {
3802 .navbar-nav .open .dropdown-menu > li > a {
3803 line-height: 18px;
3803 line-height: 18px;
3804 }
3804 }
3805 .navbar-nav .open .dropdown-menu > li > a:hover,
3805 .navbar-nav .open .dropdown-menu > li > a:hover,
3806 .navbar-nav .open .dropdown-menu > li > a:focus {
3806 .navbar-nav .open .dropdown-menu > li > a:focus {
3807 background-image: none;
3807 background-image: none;
3808 }
3808 }
3809 }
3809 }
3810 @media (min-width: 768px) {
3810 @media (min-width: 768px) {
3811 .navbar-nav {
3811 .navbar-nav {
3812 float: left;
3812 float: left;
3813 margin: 0;
3813 margin: 0;
3814 }
3814 }
3815 .navbar-nav > li {
3815 .navbar-nav > li {
3816 float: left;
3816 float: left;
3817 }
3817 }
3818 .navbar-nav > li > a {
3818 .navbar-nav > li > a {
3819 padding-top: 9px;
3819 padding-top: 9px;
3820 padding-bottom: 9px;
3820 padding-bottom: 9px;
3821 }
3821 }
3822 .navbar-nav.navbar-right:last-child {
3822 .navbar-nav.navbar-right:last-child {
3823 margin-right: -15px;
3823 margin-right: -15px;
3824 }
3824 }
3825 }
3825 }
3826 @media (min-width: 768px) {
3826 @media (min-width: 768px) {
3827 .navbar-left {
3827 .navbar-left {
3828 float: left !important;
3828 float: left !important;
3829 float: left;
3829 float: left;
3830 }
3830 }
3831 .navbar-right {
3831 .navbar-right {
3832 float: right !important;
3832 float: right !important;
3833 float: right;
3833 float: right;
3834 }
3834 }
3835 }
3835 }
3836 .navbar-form {
3836 .navbar-form {
3837 margin-left: -15px;
3837 margin-left: -15px;
3838 margin-right: -15px;
3838 margin-right: -15px;
3839 padding: 10px 15px;
3839 padding: 10px 15px;
3840 border-top: 1px solid transparent;
3840 border-top: 1px solid transparent;
3841 border-bottom: 1px solid transparent;
3841 border-bottom: 1px solid transparent;
3842 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
3842 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
3843 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
3843 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
3844 margin-top: 2px;
3844 margin-top: 2px;
3845 margin-bottom: 2px;
3845 margin-bottom: 2px;
3846 }
3846 }
3847 @media (min-width: 768px) {
3847 @media (min-width: 768px) {
3848 .navbar-form .form-group {
3848 .navbar-form .form-group {
3849 display: inline-block;
3849 display: inline-block;
3850 margin-bottom: 0;
3850 margin-bottom: 0;
3851 vertical-align: middle;
3851 vertical-align: middle;
3852 }
3852 }
3853 .navbar-form .form-control {
3853 .navbar-form .form-control {
3854 display: inline-block;
3854 display: inline-block;
3855 width: auto;
3855 width: auto;
3856 vertical-align: middle;
3856 vertical-align: middle;
3857 }
3857 }
3858 .navbar-form .input-group > .form-control {
3858 .navbar-form .input-group > .form-control {
3859 width: 100%;
3859 width: 100%;
3860 }
3860 }
3861 .navbar-form .control-label {
3861 .navbar-form .control-label {
3862 margin-bottom: 0;
3862 margin-bottom: 0;
3863 vertical-align: middle;
3863 vertical-align: middle;
3864 }
3864 }
3865 .navbar-form .radio,
3865 .navbar-form .radio,
3866 .navbar-form .checkbox {
3866 .navbar-form .checkbox {
3867 display: inline-block;
3867 display: inline-block;
3868 margin-top: 0;
3868 margin-top: 0;
3869 margin-bottom: 0;
3869 margin-bottom: 0;
3870 padding-left: 0;
3870 padding-left: 0;
3871 vertical-align: middle;
3871 vertical-align: middle;
3872 }
3872 }
3873 .navbar-form .radio input[type="radio"],
3873 .navbar-form .radio input[type="radio"],
3874 .navbar-form .checkbox input[type="checkbox"] {
3874 .navbar-form .checkbox input[type="checkbox"] {
3875 float: none;
3875 float: none;
3876 margin-left: 0;
3876 margin-left: 0;
3877 }
3877 }
3878 .navbar-form .has-feedback .form-control-feedback {
3878 .navbar-form .has-feedback .form-control-feedback {
3879 top: 0;
3879 top: 0;
3880 }
3880 }
3881 }
3881 }
3882 @media (max-width: 767px) {
3882 @media (max-width: 767px) {
3883 .navbar-form .form-group {
3883 .navbar-form .form-group {
3884 margin-bottom: 5px;
3884 margin-bottom: 5px;
3885 }
3885 }
3886 }
3886 }
3887 @media (min-width: 768px) {
3887 @media (min-width: 768px) {
3888 .navbar-form {
3888 .navbar-form {
3889 width: auto;
3889 width: auto;
3890 border: 0;
3890 border: 0;
3891 margin-left: 0;
3891 margin-left: 0;
3892 margin-right: 0;
3892 margin-right: 0;
3893 padding-top: 0;
3893 padding-top: 0;
3894 padding-bottom: 0;
3894 padding-bottom: 0;
3895 -webkit-box-shadow: none;
3895 -webkit-box-shadow: none;
3896 box-shadow: none;
3896 box-shadow: none;
3897 }
3897 }
3898 .navbar-form.navbar-right:last-child {
3898 .navbar-form.navbar-right:last-child {
3899 margin-right: -15px;
3899 margin-right: -15px;
3900 }
3900 }
3901 }
3901 }
3902 .navbar-nav > li > .dropdown-menu {
3902 .navbar-nav > li > .dropdown-menu {
3903 margin-top: 0;
3903 margin-top: 0;
3904 border-top-right-radius: 0;
3904 border-top-right-radius: 0;
3905 border-top-left-radius: 0;
3905 border-top-left-radius: 0;
3906 }
3906 }
3907 .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
3907 .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
3908 border-bottom-right-radius: 0;
3908 border-bottom-right-radius: 0;
3909 border-bottom-left-radius: 0;
3909 border-bottom-left-radius: 0;
3910 }
3910 }
3911 .navbar-btn {
3911 .navbar-btn {
3912 margin-top: 2px;
3912 margin-top: 2px;
3913 margin-bottom: 2px;
3913 margin-bottom: 2px;
3914 }
3914 }
3915 .navbar-btn.btn-sm {
3915 .navbar-btn.btn-sm {
3916 margin-top: 3px;
3916 margin-top: 3px;
3917 margin-bottom: 3px;
3917 margin-bottom: 3px;
3918 }
3918 }
3919 .navbar-btn.btn-xs {
3919 .navbar-btn.btn-xs {
3920 margin-top: 7px;
3920 margin-top: 7px;
3921 margin-bottom: 7px;
3921 margin-bottom: 7px;
3922 }
3922 }
3923 .navbar-text {
3923 .navbar-text {
3924 margin-top: 9px;
3924 margin-top: 9px;
3925 margin-bottom: 9px;
3925 margin-bottom: 9px;
3926 }
3926 }
3927 @media (min-width: 768px) {
3927 @media (min-width: 768px) {
3928 .navbar-text {
3928 .navbar-text {
3929 float: left;
3929 float: left;
3930 margin-left: 15px;
3930 margin-left: 15px;
3931 margin-right: 15px;
3931 margin-right: 15px;
3932 }
3932 }
3933 .navbar-text.navbar-right:last-child {
3933 .navbar-text.navbar-right:last-child {
3934 margin-right: 0;
3934 margin-right: 0;
3935 }
3935 }
3936 }
3936 }
3937 .navbar-default {
3937 .navbar-default {
3938 background-color: #f8f8f8;
3938 background-color: #f8f8f8;
3939 border-color: #e7e7e7;
3939 border-color: #e7e7e7;
3940 }
3940 }
3941 .navbar-default .navbar-brand {
3941 .navbar-default .navbar-brand {
3942 color: #777777;
3942 color: #777777;
3943 }
3943 }
3944 .navbar-default .navbar-brand:hover,
3944 .navbar-default .navbar-brand:hover,
3945 .navbar-default .navbar-brand:focus {
3945 .navbar-default .navbar-brand:focus {
3946 color: #5e5e5e;
3946 color: #5e5e5e;
3947 background-color: transparent;
3947 background-color: transparent;
3948 }
3948 }
3949 .navbar-default .navbar-text {
3949 .navbar-default .navbar-text {
3950 color: #777777;
3950 color: #777777;
3951 }
3951 }
3952 .navbar-default .navbar-nav > li > a {
3952 .navbar-default .navbar-nav > li > a {
3953 color: #777777;
3953 color: #777777;
3954 }
3954 }
3955 .navbar-default .navbar-nav > li > a:hover,
3955 .navbar-default .navbar-nav > li > a:hover,
3956 .navbar-default .navbar-nav > li > a:focus {
3956 .navbar-default .navbar-nav > li > a:focus {
3957 color: #333333;
3957 color: #333333;
3958 background-color: transparent;
3958 background-color: transparent;
3959 }
3959 }
3960 .navbar-default .navbar-nav > .active > a,
3960 .navbar-default .navbar-nav > .active > a,
3961 .navbar-default .navbar-nav > .active > a:hover,
3961 .navbar-default .navbar-nav > .active > a:hover,
3962 .navbar-default .navbar-nav > .active > a:focus {
3962 .navbar-default .navbar-nav > .active > a:focus {
3963 color: #555555;
3963 color: #555555;
3964 background-color: #e7e7e7;
3964 background-color: #e7e7e7;
3965 }
3965 }
3966 .navbar-default .navbar-nav > .disabled > a,
3966 .navbar-default .navbar-nav > .disabled > a,
3967 .navbar-default .navbar-nav > .disabled > a:hover,
3967 .navbar-default .navbar-nav > .disabled > a:hover,
3968 .navbar-default .navbar-nav > .disabled > a:focus {
3968 .navbar-default .navbar-nav > .disabled > a:focus {
3969 color: #cccccc;
3969 color: #cccccc;
3970 background-color: transparent;
3970 background-color: transparent;
3971 }
3971 }
3972 .navbar-default .navbar-toggle {
3972 .navbar-default .navbar-toggle {
3973 border-color: #dddddd;
3973 border-color: #dddddd;
3974 }
3974 }
3975 .navbar-default .navbar-toggle:hover,
3975 .navbar-default .navbar-toggle:hover,
3976 .navbar-default .navbar-toggle:focus {
3976 .navbar-default .navbar-toggle:focus {
3977 background-color: #dddddd;
3977 background-color: #dddddd;
3978 }
3978 }
3979 .navbar-default .navbar-toggle .icon-bar {
3979 .navbar-default .navbar-toggle .icon-bar {
3980 background-color: #888888;
3980 background-color: #888888;
3981 }
3981 }
3982 .navbar-default .navbar-collapse,
3982 .navbar-default .navbar-collapse,
3983 .navbar-default .navbar-form {
3983 .navbar-default .navbar-form {
3984 border-color: #e7e7e7;
3984 border-color: #e7e7e7;
3985 }
3985 }
3986 .navbar-default .navbar-nav > .open > a,
3986 .navbar-default .navbar-nav > .open > a,
3987 .navbar-default .navbar-nav > .open > a:hover,
3987 .navbar-default .navbar-nav > .open > a:hover,
3988 .navbar-default .navbar-nav > .open > a:focus {
3988 .navbar-default .navbar-nav > .open > a:focus {
3989 background-color: #e7e7e7;
3989 background-color: #e7e7e7;
3990 color: #555555;
3990 color: #555555;
3991 }
3991 }
3992 @media (max-width: 767px) {
3992 @media (max-width: 767px) {
3993 .navbar-default .navbar-nav .open .dropdown-menu > li > a {
3993 .navbar-default .navbar-nav .open .dropdown-menu > li > a {
3994 color: #777777;
3994 color: #777777;
3995 }
3995 }
3996 .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
3996 .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
3997 .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
3997 .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
3998 color: #333333;
3998 color: #333333;
3999 background-color: transparent;
3999 background-color: transparent;
4000 }
4000 }
4001 .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
4001 .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
4002 .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
4002 .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
4003 .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
4003 .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
4004 color: #555555;
4004 color: #555555;
4005 background-color: #e7e7e7;
4005 background-color: #e7e7e7;
4006 }
4006 }
4007 .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
4007 .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
4008 .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
4008 .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
4009 .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
4009 .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
4010 color: #cccccc;
4010 color: #cccccc;
4011 background-color: transparent;
4011 background-color: transparent;
4012 }
4012 }
4013 }
4013 }
4014 .navbar-default .navbar-link {
4014 .navbar-default .navbar-link {
4015 color: #777777;
4015 color: #777777;
4016 }
4016 }
4017 .navbar-default .navbar-link:hover {
4017 .navbar-default .navbar-link:hover {
4018 color: #333333;
4018 color: #333333;
4019 }
4019 }
4020 .navbar-inverse {
4020 .navbar-inverse {
4021 background-color: #222222;
4021 background-color: #222222;
4022 border-color: #080808;
4022 border-color: #080808;
4023 }
4023 }
4024 .navbar-inverse .navbar-brand {
4024 .navbar-inverse .navbar-brand {
4025 color: #999999;
4025 color: #999999;
4026 }
4026 }
4027 .navbar-inverse .navbar-brand:hover,
4027 .navbar-inverse .navbar-brand:hover,
4028 .navbar-inverse .navbar-brand:focus {
4028 .navbar-inverse .navbar-brand:focus {
4029 color: #ffffff;
4029 color: #ffffff;
4030 background-color: transparent;
4030 background-color: transparent;
4031 }
4031 }
4032 .navbar-inverse .navbar-text {
4032 .navbar-inverse .navbar-text {
4033 color: #999999;
4033 color: #999999;
4034 }
4034 }
4035 .navbar-inverse .navbar-nav > li > a {
4035 .navbar-inverse .navbar-nav > li > a {
4036 color: #999999;
4036 color: #999999;
4037 }
4037 }
4038 .navbar-inverse .navbar-nav > li > a:hover,
4038 .navbar-inverse .navbar-nav > li > a:hover,
4039 .navbar-inverse .navbar-nav > li > a:focus {
4039 .navbar-inverse .navbar-nav > li > a:focus {
4040 color: #ffffff;
4040 color: #ffffff;
4041 background-color: transparent;
4041 background-color: transparent;
4042 }
4042 }
4043 .navbar-inverse .navbar-nav > .active > a,
4043 .navbar-inverse .navbar-nav > .active > a,
4044 .navbar-inverse .navbar-nav > .active > a:hover,
4044 .navbar-inverse .navbar-nav > .active > a:hover,
4045 .navbar-inverse .navbar-nav > .active > a:focus {
4045 .navbar-inverse .navbar-nav > .active > a:focus {
4046 color: #ffffff;
4046 color: #ffffff;
4047 background-color: #080808;
4047 background-color: #080808;
4048 }
4048 }
4049 .navbar-inverse .navbar-nav > .disabled > a,
4049 .navbar-inverse .navbar-nav > .disabled > a,
4050 .navbar-inverse .navbar-nav > .disabled > a:hover,
4050 .navbar-inverse .navbar-nav > .disabled > a:hover,
4051 .navbar-inverse .navbar-nav > .disabled > a:focus {
4051 .navbar-inverse .navbar-nav > .disabled > a:focus {
4052 color: #444444;
4052 color: #444444;
4053 background-color: transparent;
4053 background-color: transparent;
4054 }
4054 }
4055 .navbar-inverse .navbar-toggle {
4055 .navbar-inverse .navbar-toggle {
4056 border-color: #333333;
4056 border-color: #333333;
4057 }
4057 }
4058 .navbar-inverse .navbar-toggle:hover,
4058 .navbar-inverse .navbar-toggle:hover,
4059 .navbar-inverse .navbar-toggle:focus {
4059 .navbar-inverse .navbar-toggle:focus {
4060 background-color: #333333;
4060 background-color: #333333;
4061 }
4061 }
4062 .navbar-inverse .navbar-toggle .icon-bar {
4062 .navbar-inverse .navbar-toggle .icon-bar {
4063 background-color: #ffffff;
4063 background-color: #ffffff;
4064 }
4064 }
4065 .navbar-inverse .navbar-collapse,
4065 .navbar-inverse .navbar-collapse,
4066 .navbar-inverse .navbar-form {
4066 .navbar-inverse .navbar-form {
4067 border-color: #101010;
4067 border-color: #101010;
4068 }
4068 }
4069 .navbar-inverse .navbar-nav > .open > a,
4069 .navbar-inverse .navbar-nav > .open > a,
4070 .navbar-inverse .navbar-nav > .open > a:hover,
4070 .navbar-inverse .navbar-nav > .open > a:hover,
4071 .navbar-inverse .navbar-nav > .open > a:focus {
4071 .navbar-inverse .navbar-nav > .open > a:focus {
4072 background-color: #080808;
4072 background-color: #080808;
4073 color: #ffffff;
4073 color: #ffffff;
4074 }
4074 }
4075 @media (max-width: 767px) {
4075 @media (max-width: 767px) {
4076 .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
4076 .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
4077 border-color: #080808;
4077 border-color: #080808;
4078 }
4078 }
4079 .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
4079 .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
4080 background-color: #080808;
4080 background-color: #080808;
4081 }
4081 }
4082 .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
4082 .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
4083 color: #999999;
4083 color: #999999;
4084 }
4084 }
4085 .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
4085 .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
4086 .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
4086 .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
4087 color: #ffffff;
4087 color: #ffffff;
4088 background-color: transparent;
4088 background-color: transparent;
4089 }
4089 }
4090 .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
4090 .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
4091 .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
4091 .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
4092 .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
4092 .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
4093 color: #ffffff;
4093 color: #ffffff;
4094 background-color: #080808;
4094 background-color: #080808;
4095 }
4095 }
4096 .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
4096 .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
4097 .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
4097 .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
4098 .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
4098 .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
4099 color: #444444;
4099 color: #444444;
4100 background-color: transparent;
4100 background-color: transparent;
4101 }
4101 }
4102 }
4102 }
4103 .navbar-inverse .navbar-link {
4103 .navbar-inverse .navbar-link {
4104 color: #999999;
4104 color: #999999;
4105 }
4105 }
4106 .navbar-inverse .navbar-link:hover {
4106 .navbar-inverse .navbar-link:hover {
4107 color: #ffffff;
4107 color: #ffffff;
4108 }
4108 }
4109 .breadcrumb {
4109 .breadcrumb {
4110 padding: 8px 15px;
4110 padding: 8px 15px;
4111 margin-bottom: 18px;
4111 margin-bottom: 18px;
4112 list-style: none;
4112 list-style: none;
4113 background-color: #f5f5f5;
4113 background-color: #f5f5f5;
4114 border-radius: 4px;
4114 border-radius: 4px;
4115 }
4115 }
4116 .breadcrumb > li {
4116 .breadcrumb > li {
4117 display: inline-block;
4117 display: inline-block;
4118 }
4118 }
4119 .breadcrumb > li + li:before {
4119 .breadcrumb > li + li:before {
4120 content: "/\00a0";
4120 content: "/\00a0";
4121 padding: 0 5px;
4121 padding: 0 5px;
4122 color: #5e5e5e;
4122 color: #5e5e5e;
4123 }
4123 }
4124 .breadcrumb > .active {
4124 .breadcrumb > .active {
4125 color: #999999;
4125 color: #999999;
4126 }
4126 }
4127 .pagination {
4127 .pagination {
4128 display: inline-block;
4128 display: inline-block;
4129 padding-left: 0;
4129 padding-left: 0;
4130 margin: 18px 0;
4130 margin: 18px 0;
4131 border-radius: 4px;
4131 border-radius: 4px;
4132 }
4132 }
4133 .pagination > li {
4133 .pagination > li {
4134 display: inline;
4134 display: inline;
4135 }
4135 }
4136 .pagination > li > a,
4136 .pagination > li > a,
4137 .pagination > li > span {
4137 .pagination > li > span {
4138 position: relative;
4138 position: relative;
4139 float: left;
4139 float: left;
4140 padding: 6px 12px;
4140 padding: 6px 12px;
4141 line-height: 1.42857143;
4141 line-height: 1.42857143;
4142 text-decoration: none;
4142 text-decoration: none;
4143 color: #428bca;
4143 color: #428bca;
4144 background-color: #ffffff;
4144 background-color: #ffffff;
4145 border: 1px solid #dddddd;
4145 border: 1px solid #dddddd;
4146 margin-left: -1px;
4146 margin-left: -1px;
4147 }
4147 }
4148 .pagination > li:first-child > a,
4148 .pagination > li:first-child > a,
4149 .pagination > li:first-child > span {
4149 .pagination > li:first-child > span {
4150 margin-left: 0;
4150 margin-left: 0;
4151 border-bottom-left-radius: 4px;
4151 border-bottom-left-radius: 4px;
4152 border-top-left-radius: 4px;
4152 border-top-left-radius: 4px;
4153 }
4153 }
4154 .pagination > li:last-child > a,
4154 .pagination > li:last-child > a,
4155 .pagination > li:last-child > span {
4155 .pagination > li:last-child > span {
4156 border-bottom-right-radius: 4px;
4156 border-bottom-right-radius: 4px;
4157 border-top-right-radius: 4px;
4157 border-top-right-radius: 4px;
4158 }
4158 }
4159 .pagination > li > a:hover,
4159 .pagination > li > a:hover,
4160 .pagination > li > span:hover,
4160 .pagination > li > span:hover,
4161 .pagination > li > a:focus,
4161 .pagination > li > a:focus,
4162 .pagination > li > span:focus {
4162 .pagination > li > span:focus {
4163 color: #2a6496;
4163 color: #2a6496;
4164 background-color: #eeeeee;
4164 background-color: #eeeeee;
4165 border-color: #dddddd;
4165 border-color: #dddddd;
4166 }
4166 }
4167 .pagination > .active > a,
4167 .pagination > .active > a,
4168 .pagination > .active > span,
4168 .pagination > .active > span,
4169 .pagination > .active > a:hover,
4169 .pagination > .active > a:hover,
4170 .pagination > .active > span:hover,
4170 .pagination > .active > span:hover,
4171 .pagination > .active > a:focus,
4171 .pagination > .active > a:focus,
4172 .pagination > .active > span:focus {
4172 .pagination > .active > span:focus {
4173 z-index: 2;
4173 z-index: 2;
4174 color: #ffffff;
4174 color: #ffffff;
4175 background-color: #428bca;
4175 background-color: #428bca;
4176 border-color: #428bca;
4176 border-color: #428bca;
4177 cursor: default;
4177 cursor: default;
4178 }
4178 }
4179 .pagination > .disabled > span,
4179 .pagination > .disabled > span,
4180 .pagination > .disabled > span:hover,
4180 .pagination > .disabled > span:hover,
4181 .pagination > .disabled > span:focus,
4181 .pagination > .disabled > span:focus,
4182 .pagination > .disabled > a,
4182 .pagination > .disabled > a,
4183 .pagination > .disabled > a:hover,
4183 .pagination > .disabled > a:hover,
4184 .pagination > .disabled > a:focus {
4184 .pagination > .disabled > a:focus {
4185 color: #999999;
4185 color: #999999;
4186 background-color: #ffffff;
4186 background-color: #ffffff;
4187 border-color: #dddddd;
4187 border-color: #dddddd;
4188 cursor: not-allowed;
4188 cursor: not-allowed;
4189 }
4189 }
4190 .pagination-lg > li > a,
4190 .pagination-lg > li > a,
4191 .pagination-lg > li > span {
4191 .pagination-lg > li > span {
4192 padding: 10px 16px;
4192 padding: 10px 16px;
4193 font-size: 17px;
4193 font-size: 17px;
4194 }
4194 }
4195 .pagination-lg > li:first-child > a,
4195 .pagination-lg > li:first-child > a,
4196 .pagination-lg > li:first-child > span {
4196 .pagination-lg > li:first-child > span {
4197 border-bottom-left-radius: 6px;
4197 border-bottom-left-radius: 6px;
4198 border-top-left-radius: 6px;
4198 border-top-left-radius: 6px;
4199 }
4199 }
4200 .pagination-lg > li:last-child > a,
4200 .pagination-lg > li:last-child > a,
4201 .pagination-lg > li:last-child > span {
4201 .pagination-lg > li:last-child > span {
4202 border-bottom-right-radius: 6px;
4202 border-bottom-right-radius: 6px;
4203 border-top-right-radius: 6px;
4203 border-top-right-radius: 6px;
4204 }
4204 }
4205 .pagination-sm > li > a,
4205 .pagination-sm > li > a,
4206 .pagination-sm > li > span {
4206 .pagination-sm > li > span {
4207 padding: 5px 10px;
4207 padding: 5px 10px;
4208 font-size: 12px;
4208 font-size: 12px;
4209 }
4209 }
4210 .pagination-sm > li:first-child > a,
4210 .pagination-sm > li:first-child > a,
4211 .pagination-sm > li:first-child > span {
4211 .pagination-sm > li:first-child > span {
4212 border-bottom-left-radius: 3px;
4212 border-bottom-left-radius: 3px;
4213 border-top-left-radius: 3px;
4213 border-top-left-radius: 3px;
4214 }
4214 }
4215 .pagination-sm > li:last-child > a,
4215 .pagination-sm > li:last-child > a,
4216 .pagination-sm > li:last-child > span {
4216 .pagination-sm > li:last-child > span {
4217 border-bottom-right-radius: 3px;
4217 border-bottom-right-radius: 3px;
4218 border-top-right-radius: 3px;
4218 border-top-right-radius: 3px;
4219 }
4219 }
4220 .pager {
4220 .pager {
4221 padding-left: 0;
4221 padding-left: 0;
4222 margin: 18px 0;
4222 margin: 18px 0;
4223 list-style: none;
4223 list-style: none;
4224 text-align: center;
4224 text-align: center;
4225 }
4225 }
4226 .pager li {
4226 .pager li {
4227 display: inline;
4227 display: inline;
4228 }
4228 }
4229 .pager li > a,
4229 .pager li > a,
4230 .pager li > span {
4230 .pager li > span {
4231 display: inline-block;
4231 display: inline-block;
4232 padding: 5px 14px;
4232 padding: 5px 14px;
4233 background-color: #ffffff;
4233 background-color: #ffffff;
4234 border: 1px solid #dddddd;
4234 border: 1px solid #dddddd;
4235 border-radius: 15px;
4235 border-radius: 15px;
4236 }
4236 }
4237 .pager li > a:hover,
4237 .pager li > a:hover,
4238 .pager li > a:focus {
4238 .pager li > a:focus {
4239 text-decoration: none;
4239 text-decoration: none;
4240 background-color: #eeeeee;
4240 background-color: #eeeeee;
4241 }
4241 }
4242 .pager .next > a,
4242 .pager .next > a,
4243 .pager .next > span {
4243 .pager .next > span {
4244 float: right;
4244 float: right;
4245 }
4245 }
4246 .pager .previous > a,
4246 .pager .previous > a,
4247 .pager .previous > span {
4247 .pager .previous > span {
4248 float: left;
4248 float: left;
4249 }
4249 }
4250 .pager .disabled > a,
4250 .pager .disabled > a,
4251 .pager .disabled > a:hover,
4251 .pager .disabled > a:hover,
4252 .pager .disabled > a:focus,
4252 .pager .disabled > a:focus,
4253 .pager .disabled > span {
4253 .pager .disabled > span {
4254 color: #999999;
4254 color: #999999;
4255 background-color: #ffffff;
4255 background-color: #ffffff;
4256 cursor: not-allowed;
4256 cursor: not-allowed;
4257 }
4257 }
4258 .label {
4258 .label {
4259 display: inline;
4259 display: inline;
4260 padding: .2em .6em .3em;
4260 padding: .2em .6em .3em;
4261 font-size: 75%;
4261 font-size: 75%;
4262 font-weight: bold;
4262 font-weight: bold;
4263 line-height: 1;
4263 line-height: 1;
4264 color: #ffffff;
4264 color: #ffffff;
4265 text-align: center;
4265 text-align: center;
4266 white-space: nowrap;
4266 white-space: nowrap;
4267 vertical-align: baseline;
4267 vertical-align: baseline;
4268 border-radius: .25em;
4268 border-radius: .25em;
4269 }
4269 }
4270 .label[href]:hover,
4270 .label[href]:hover,
4271 .label[href]:focus {
4271 .label[href]:focus {
4272 color: #ffffff;
4272 color: #ffffff;
4273 text-decoration: none;
4273 text-decoration: none;
4274 cursor: pointer;
4274 cursor: pointer;
4275 }
4275 }
4276 .label:empty {
4276 .label:empty {
4277 display: none;
4277 display: none;
4278 }
4278 }
4279 .btn .label {
4279 .btn .label {
4280 position: relative;
4280 position: relative;
4281 top: -1px;
4281 top: -1px;
4282 }
4282 }
4283 .label-default {
4283 .label-default {
4284 background-color: #999999;
4284 background-color: #999999;
4285 }
4285 }
4286 .label-default[href]:hover,
4286 .label-default[href]:hover,
4287 .label-default[href]:focus {
4287 .label-default[href]:focus {
4288 background-color: #808080;
4288 background-color: #808080;
4289 }
4289 }
4290 .label-primary {
4290 .label-primary {
4291 background-color: #428bca;
4291 background-color: #428bca;
4292 }
4292 }
4293 .label-primary[href]:hover,
4293 .label-primary[href]:hover,
4294 .label-primary[href]:focus {
4294 .label-primary[href]:focus {
4295 background-color: #3071a9;
4295 background-color: #3071a9;
4296 }
4296 }
4297 .label-success {
4297 .label-success {
4298 background-color: #5cb85c;
4298 background-color: #5cb85c;
4299 }
4299 }
4300 .label-success[href]:hover,
4300 .label-success[href]:hover,
4301 .label-success[href]:focus {
4301 .label-success[href]:focus {
4302 background-color: #449d44;
4302 background-color: #449d44;
4303 }
4303 }
4304 .label-info {
4304 .label-info {
4305 background-color: #5bc0de;
4305 background-color: #5bc0de;
4306 }
4306 }
4307 .label-info[href]:hover,
4307 .label-info[href]:hover,
4308 .label-info[href]:focus {
4308 .label-info[href]:focus {
4309 background-color: #31b0d5;
4309 background-color: #31b0d5;
4310 }
4310 }
4311 .label-warning {
4311 .label-warning {
4312 background-color: #f0ad4e;
4312 background-color: #f0ad4e;
4313 }
4313 }
4314 .label-warning[href]:hover,
4314 .label-warning[href]:hover,
4315 .label-warning[href]:focus {
4315 .label-warning[href]:focus {
4316 background-color: #ec971f;
4316 background-color: #ec971f;
4317 }
4317 }
4318 .label-danger {
4318 .label-danger {
4319 background-color: #d9534f;
4319 background-color: #d9534f;
4320 }
4320 }
4321 .label-danger[href]:hover,
4321 .label-danger[href]:hover,
4322 .label-danger[href]:focus {
4322 .label-danger[href]:focus {
4323 background-color: #c9302c;
4323 background-color: #c9302c;
4324 }
4324 }
4325 .badge {
4325 .badge {
4326 display: inline-block;
4326 display: inline-block;
4327 min-width: 10px;
4327 min-width: 10px;
4328 padding: 3px 7px;
4328 padding: 3px 7px;
4329 font-size: 12px;
4329 font-size: 12px;
4330 font-weight: bold;
4330 font-weight: bold;
4331 color: #ffffff;
4331 color: #ffffff;
4332 line-height: 1;
4332 line-height: 1;
4333 vertical-align: baseline;
4333 vertical-align: baseline;
4334 white-space: nowrap;
4334 white-space: nowrap;
4335 text-align: center;
4335 text-align: center;
4336 background-color: #999999;
4336 background-color: #999999;
4337 border-radius: 10px;
4337 border-radius: 10px;
4338 }
4338 }
4339 .badge:empty {
4339 .badge:empty {
4340 display: none;
4340 display: none;
4341 }
4341 }
4342 .btn .badge {
4342 .btn .badge {
4343 position: relative;
4343 position: relative;
4344 top: -1px;
4344 top: -1px;
4345 }
4345 }
4346 .btn-xs .badge {
4346 .btn-xs .badge {
4347 top: 0;
4347 top: 0;
4348 padding: 1px 5px;
4348 padding: 1px 5px;
4349 }
4349 }
4350 a.badge:hover,
4350 a.badge:hover,
4351 a.badge:focus {
4351 a.badge:focus {
4352 color: #ffffff;
4352 color: #ffffff;
4353 text-decoration: none;
4353 text-decoration: none;
4354 cursor: pointer;
4354 cursor: pointer;
4355 }
4355 }
4356 a.list-group-item.active > .badge,
4356 a.list-group-item.active > .badge,
4357 .nav-pills > .active > a > .badge {
4357 .nav-pills > .active > a > .badge {
4358 color: #428bca;
4358 color: #428bca;
4359 background-color: #ffffff;
4359 background-color: #ffffff;
4360 }
4360 }
4361 .nav-pills > li > a > .badge {
4361 .nav-pills > li > a > .badge {
4362 margin-left: 3px;
4362 margin-left: 3px;
4363 }
4363 }
4364 .jumbotron {
4364 .jumbotron {
4365 padding: 30px;
4365 padding: 30px;
4366 margin-bottom: 30px;
4366 margin-bottom: 30px;
4367 color: inherit;
4367 color: inherit;
4368 background-color: #eeeeee;
4368 background-color: #eeeeee;
4369 }
4369 }
4370 .jumbotron h1,
4370 .jumbotron h1,
4371 .jumbotron .h1 {
4371 .jumbotron .h1 {
4372 color: inherit;
4372 color: inherit;
4373 }
4373 }
4374 .jumbotron p {
4374 .jumbotron p {
4375 margin-bottom: 15px;
4375 margin-bottom: 15px;
4376 font-size: 20px;
4376 font-size: 20px;
4377 font-weight: 200;
4377 font-weight: 200;
4378 }
4378 }
4379 .container .jumbotron {
4379 .container .jumbotron {
4380 border-radius: 6px;
4380 border-radius: 6px;
4381 }
4381 }
4382 .jumbotron .container {
4382 .jumbotron .container {
4383 max-width: 100%;
4383 max-width: 100%;
4384 }
4384 }
4385 @media screen and (min-width: 768px) {
4385 @media screen and (min-width: 768px) {
4386 .jumbotron {
4386 .jumbotron {
4387 padding-top: 48px;
4387 padding-top: 48px;
4388 padding-bottom: 48px;
4388 padding-bottom: 48px;
4389 }
4389 }
4390 .container .jumbotron {
4390 .container .jumbotron {
4391 padding-left: 60px;
4391 padding-left: 60px;
4392 padding-right: 60px;
4392 padding-right: 60px;
4393 }
4393 }
4394 .jumbotron h1,
4394 .jumbotron h1,
4395 .jumbotron .h1 {
4395 .jumbotron .h1 {
4396 font-size: 58.5px;
4396 font-size: 58.5px;
4397 }
4397 }
4398 }
4398 }
4399 .thumbnail {
4399 .thumbnail {
4400 display: block;
4400 display: block;
4401 padding: 4px;
4401 padding: 4px;
4402 margin-bottom: 18px;
4402 margin-bottom: 18px;
4403 line-height: 1.42857143;
4403 line-height: 1.42857143;
4404 background-color: #ffffff;
4404 background-color: #ffffff;
4405 border: 1px solid #dddddd;
4405 border: 1px solid #dddddd;
4406 border-radius: 4px;
4406 border-radius: 4px;
4407 -webkit-transition: all 0.2s ease-in-out;
4407 -webkit-transition: all 0.2s ease-in-out;
4408 transition: all 0.2s ease-in-out;
4408 transition: all 0.2s ease-in-out;
4409 }
4409 }
4410 .thumbnail > img,
4410 .thumbnail > img,
4411 .thumbnail a > img {
4411 .thumbnail a > img {
4412 margin-left: auto;
4412 margin-left: auto;
4413 margin-right: auto;
4413 margin-right: auto;
4414 }
4414 }
4415 a.thumbnail:hover,
4415 a.thumbnail:hover,
4416 a.thumbnail:focus,
4416 a.thumbnail:focus,
4417 a.thumbnail.active {
4417 a.thumbnail.active {
4418 border-color: #428bca;
4418 border-color: #428bca;
4419 }
4419 }
4420 .thumbnail .caption {
4420 .thumbnail .caption {
4421 padding: 9px;
4421 padding: 9px;
4422 color: #000000;
4422 color: #000000;
4423 }
4423 }
4424 .alert {
4424 .alert {
4425 padding: 15px;
4425 padding: 15px;
4426 margin-bottom: 18px;
4426 margin-bottom: 18px;
4427 border: 1px solid transparent;
4427 border: 1px solid transparent;
4428 border-radius: 4px;
4428 border-radius: 4px;
4429 }
4429 }
4430 .alert h4 {
4430 .alert h4 {
4431 margin-top: 0;
4431 margin-top: 0;
4432 color: inherit;
4432 color: inherit;
4433 }
4433 }
4434 .alert .alert-link {
4434 .alert .alert-link {
4435 font-weight: bold;
4435 font-weight: bold;
4436 }
4436 }
4437 .alert > p,
4437 .alert > p,
4438 .alert > ul {
4438 .alert > ul {
4439 margin-bottom: 0;
4439 margin-bottom: 0;
4440 }
4440 }
4441 .alert > p + p {
4441 .alert > p + p {
4442 margin-top: 5px;
4442 margin-top: 5px;
4443 }
4443 }
4444 .alert-dismissable {
4444 .alert-dismissable {
4445 padding-right: 35px;
4445 padding-right: 35px;
4446 }
4446 }
4447 .alert-dismissable .close {
4447 .alert-dismissable .close {
4448 position: relative;
4448 position: relative;
4449 top: -2px;
4449 top: -2px;
4450 right: -21px;
4450 right: -21px;
4451 color: inherit;
4451 color: inherit;
4452 }
4452 }
4453 .alert-success {
4453 .alert-success {
4454 background-color: #dff0d8;
4454 background-color: #dff0d8;
4455 border-color: #d6e9c6;
4455 border-color: #d6e9c6;
4456 color: #3c763d;
4456 color: #3c763d;
4457 }
4457 }
4458 .alert-success hr {
4458 .alert-success hr {
4459 border-top-color: #c9e2b3;
4459 border-top-color: #c9e2b3;
4460 }
4460 }
4461 .alert-success .alert-link {
4461 .alert-success .alert-link {
4462 color: #2b542c;
4462 color: #2b542c;
4463 }
4463 }
4464 .alert-info {
4464 .alert-info {
4465 background-color: #d9edf7;
4465 background-color: #d9edf7;
4466 border-color: #bce8f1;
4466 border-color: #bce8f1;
4467 color: #31708f;
4467 color: #31708f;
4468 }
4468 }
4469 .alert-info hr {
4469 .alert-info hr {
4470 border-top-color: #a6e1ec;
4470 border-top-color: #a6e1ec;
4471 }
4471 }
4472 .alert-info .alert-link {
4472 .alert-info .alert-link {
4473 color: #245269;
4473 color: #245269;
4474 }
4474 }
4475 .alert-warning {
4475 .alert-warning {
4476 background-color: #fcf8e3;
4476 background-color: #fcf8e3;
4477 border-color: #faebcc;
4477 border-color: #faebcc;
4478 color: #8a6d3b;
4478 color: #8a6d3b;
4479 }
4479 }
4480 .alert-warning hr {
4480 .alert-warning hr {
4481 border-top-color: #f7e1b5;
4481 border-top-color: #f7e1b5;
4482 }
4482 }
4483 .alert-warning .alert-link {
4483 .alert-warning .alert-link {
4484 color: #66512c;
4484 color: #66512c;
4485 }
4485 }
4486 .alert-danger {
4486 .alert-danger {
4487 background-color: #f2dede;
4487 background-color: #f2dede;
4488 border-color: #ebccd1;
4488 border-color: #ebccd1;
4489 color: #a94442;
4489 color: #a94442;
4490 }
4490 }
4491 .alert-danger hr {
4491 .alert-danger hr {
4492 border-top-color: #e4b9c0;
4492 border-top-color: #e4b9c0;
4493 }
4493 }
4494 .alert-danger .alert-link {
4494 .alert-danger .alert-link {
4495 color: #843534;
4495 color: #843534;
4496 }
4496 }
4497 @-webkit-keyframes progress-bar-stripes {
4497 @-webkit-keyframes progress-bar-stripes {
4498 from {
4498 from {
4499 background-position: 40px 0;
4499 background-position: 40px 0;
4500 }
4500 }
4501 to {
4501 to {
4502 background-position: 0 0;
4502 background-position: 0 0;
4503 }
4503 }
4504 }
4504 }
4505 @keyframes progress-bar-stripes {
4505 @keyframes progress-bar-stripes {
4506 from {
4506 from {
4507 background-position: 40px 0;
4507 background-position: 40px 0;
4508 }
4508 }
4509 to {
4509 to {
4510 background-position: 0 0;
4510 background-position: 0 0;
4511 }
4511 }
4512 }
4512 }
4513 .progress {
4513 .progress {
4514 overflow: hidden;
4514 overflow: hidden;
4515 height: 18px;
4515 height: 18px;
4516 margin-bottom: 18px;
4516 margin-bottom: 18px;
4517 background-color: #f5f5f5;
4517 background-color: #f5f5f5;
4518 border-radius: 4px;
4518 border-radius: 4px;
4519 -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
4519 -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
4520 box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
4520 box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
4521 }
4521 }
4522 .progress-bar {
4522 .progress-bar {
4523 float: left;
4523 float: left;
4524 width: 0%;
4524 width: 0%;
4525 height: 100%;
4525 height: 100%;
4526 font-size: 12px;
4526 font-size: 12px;
4527 line-height: 18px;
4527 line-height: 18px;
4528 color: #ffffff;
4528 color: #ffffff;
4529 text-align: center;
4529 text-align: center;
4530 background-color: #428bca;
4530 background-color: #428bca;
4531 -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
4531 -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
4532 box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
4532 box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
4533 -webkit-transition: width 0.6s ease;
4533 -webkit-transition: width 0.6s ease;
4534 transition: width 0.6s ease;
4534 transition: width 0.6s ease;
4535 }
4535 }
4536 .progress-striped .progress-bar {
4536 .progress-striped .progress-bar {
4537 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4537 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4538 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4538 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4539 background-size: 40px 40px;
4539 background-size: 40px 40px;
4540 }
4540 }
4541 .progress.active .progress-bar {
4541 .progress.active .progress-bar {
4542 -webkit-animation: progress-bar-stripes 2s linear infinite;
4542 -webkit-animation: progress-bar-stripes 2s linear infinite;
4543 animation: progress-bar-stripes 2s linear infinite;
4543 animation: progress-bar-stripes 2s linear infinite;
4544 }
4544 }
4545 .progress-bar-success {
4545 .progress-bar-success {
4546 background-color: #5cb85c;
4546 background-color: #5cb85c;
4547 }
4547 }
4548 .progress-striped .progress-bar-success {
4548 .progress-striped .progress-bar-success {
4549 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4549 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4550 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4550 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4551 }
4551 }
4552 .progress-bar-info {
4552 .progress-bar-info {
4553 background-color: #5bc0de;
4553 background-color: #5bc0de;
4554 }
4554 }
4555 .progress-striped .progress-bar-info {
4555 .progress-striped .progress-bar-info {
4556 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4556 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4557 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4557 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4558 }
4558 }
4559 .progress-bar-warning {
4559 .progress-bar-warning {
4560 background-color: #f0ad4e;
4560 background-color: #f0ad4e;
4561 }
4561 }
4562 .progress-striped .progress-bar-warning {
4562 .progress-striped .progress-bar-warning {
4563 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4563 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4564 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4564 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4565 }
4565 }
4566 .progress-bar-danger {
4566 .progress-bar-danger {
4567 background-color: #d9534f;
4567 background-color: #d9534f;
4568 }
4568 }
4569 .progress-striped .progress-bar-danger {
4569 .progress-striped .progress-bar-danger {
4570 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4570 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4571 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4571 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4572 }
4572 }
4573 .media,
4573 .media,
4574 .media-body {
4574 .media-body {
4575 overflow: hidden;
4575 overflow: hidden;
4576 zoom: 1;
4576 zoom: 1;
4577 }
4577 }
4578 .media,
4578 .media,
4579 .media .media {
4579 .media .media {
4580 margin-top: 15px;
4580 margin-top: 15px;
4581 }
4581 }
4582 .media:first-child {
4582 .media:first-child {
4583 margin-top: 0;
4583 margin-top: 0;
4584 }
4584 }
4585 .media-object {
4585 .media-object {
4586 display: block;
4586 display: block;
4587 }
4587 }
4588 .media-heading {
4588 .media-heading {
4589 margin: 0 0 5px;
4589 margin: 0 0 5px;
4590 }
4590 }
4591 .media > .pull-left {
4591 .media > .pull-left {
4592 margin-right: 10px;
4592 margin-right: 10px;
4593 }
4593 }
4594 .media > .pull-right {
4594 .media > .pull-right {
4595 margin-left: 10px;
4595 margin-left: 10px;
4596 }
4596 }
4597 .media-list {
4597 .media-list {
4598 padding-left: 0;
4598 padding-left: 0;
4599 list-style: none;
4599 list-style: none;
4600 }
4600 }
4601 .list-group {
4601 .list-group {
4602 margin-bottom: 20px;
4602 margin-bottom: 20px;
4603 padding-left: 0;
4603 padding-left: 0;
4604 }
4604 }
4605 .list-group-item {
4605 .list-group-item {
4606 position: relative;
4606 position: relative;
4607 display: block;
4607 display: block;
4608 padding: 10px 15px;
4608 padding: 10px 15px;
4609 margin-bottom: -1px;
4609 margin-bottom: -1px;
4610 background-color: #ffffff;
4610 background-color: #ffffff;
4611 border: 1px solid #dddddd;
4611 border: 1px solid #dddddd;
4612 }
4612 }
4613 .list-group-item:first-child {
4613 .list-group-item:first-child {
4614 border-top-right-radius: 4px;
4614 border-top-right-radius: 4px;
4615 border-top-left-radius: 4px;
4615 border-top-left-radius: 4px;
4616 }
4616 }
4617 .list-group-item:last-child {
4617 .list-group-item:last-child {
4618 margin-bottom: 0;
4618 margin-bottom: 0;
4619 border-bottom-right-radius: 4px;
4619 border-bottom-right-radius: 4px;
4620 border-bottom-left-radius: 4px;
4620 border-bottom-left-radius: 4px;
4621 }
4621 }
4622 .list-group-item > .badge {
4622 .list-group-item > .badge {
4623 float: right;
4623 float: right;
4624 }
4624 }
4625 .list-group-item > .badge + .badge {
4625 .list-group-item > .badge + .badge {
4626 margin-right: 5px;
4626 margin-right: 5px;
4627 }
4627 }
4628 a.list-group-item {
4628 a.list-group-item {
4629 color: #555555;
4629 color: #555555;
4630 }
4630 }
4631 a.list-group-item .list-group-item-heading {
4631 a.list-group-item .list-group-item-heading {
4632 color: #333333;
4632 color: #333333;
4633 }
4633 }
4634 a.list-group-item:hover,
4634 a.list-group-item:hover,
4635 a.list-group-item:focus {
4635 a.list-group-item:focus {
4636 text-decoration: none;
4636 text-decoration: none;
4637 background-color: #f5f5f5;
4637 background-color: #f5f5f5;
4638 }
4638 }
4639 a.list-group-item.active,
4639 a.list-group-item.active,
4640 a.list-group-item.active:hover,
4640 a.list-group-item.active:hover,
4641 a.list-group-item.active:focus {
4641 a.list-group-item.active:focus {
4642 z-index: 2;
4642 z-index: 2;
4643 color: #ffffff;
4643 color: #ffffff;
4644 background-color: #428bca;
4644 background-color: #428bca;
4645 border-color: #428bca;
4645 border-color: #428bca;
4646 }
4646 }
4647 a.list-group-item.active .list-group-item-heading,
4647 a.list-group-item.active .list-group-item-heading,
4648 a.list-group-item.active:hover .list-group-item-heading,
4648 a.list-group-item.active:hover .list-group-item-heading,
4649 a.list-group-item.active:focus .list-group-item-heading {
4649 a.list-group-item.active:focus .list-group-item-heading {
4650 color: inherit;
4650 color: inherit;
4651 }
4651 }
4652 a.list-group-item.active .list-group-item-text,
4652 a.list-group-item.active .list-group-item-text,
4653 a.list-group-item.active:hover .list-group-item-text,
4653 a.list-group-item.active:hover .list-group-item-text,
4654 a.list-group-item.active:focus .list-group-item-text {
4654 a.list-group-item.active:focus .list-group-item-text {
4655 color: #e1edf7;
4655 color: #e1edf7;
4656 }
4656 }
4657 .list-group-item-success {
4657 .list-group-item-success {
4658 color: #3c763d;
4658 color: #3c763d;
4659 background-color: #dff0d8;
4659 background-color: #dff0d8;
4660 }
4660 }
4661 a.list-group-item-success {
4661 a.list-group-item-success {
4662 color: #3c763d;
4662 color: #3c763d;
4663 }
4663 }
4664 a.list-group-item-success .list-group-item-heading {
4664 a.list-group-item-success .list-group-item-heading {
4665 color: inherit;
4665 color: inherit;
4666 }
4666 }
4667 a.list-group-item-success:hover,
4667 a.list-group-item-success:hover,
4668 a.list-group-item-success:focus {
4668 a.list-group-item-success:focus {
4669 color: #3c763d;
4669 color: #3c763d;
4670 background-color: #d0e9c6;
4670 background-color: #d0e9c6;
4671 }
4671 }
4672 a.list-group-item-success.active,
4672 a.list-group-item-success.active,
4673 a.list-group-item-success.active:hover,
4673 a.list-group-item-success.active:hover,
4674 a.list-group-item-success.active:focus {
4674 a.list-group-item-success.active:focus {
4675 color: #fff;
4675 color: #fff;
4676 background-color: #3c763d;
4676 background-color: #3c763d;
4677 border-color: #3c763d;
4677 border-color: #3c763d;
4678 }
4678 }
4679 .list-group-item-info {
4679 .list-group-item-info {
4680 color: #31708f;
4680 color: #31708f;
4681 background-color: #d9edf7;
4681 background-color: #d9edf7;
4682 }
4682 }
4683 a.list-group-item-info {
4683 a.list-group-item-info {
4684 color: #31708f;
4684 color: #31708f;
4685 }
4685 }
4686 a.list-group-item-info .list-group-item-heading {
4686 a.list-group-item-info .list-group-item-heading {
4687 color: inherit;
4687 color: inherit;
4688 }
4688 }
4689 a.list-group-item-info:hover,
4689 a.list-group-item-info:hover,
4690 a.list-group-item-info:focus {
4690 a.list-group-item-info:focus {
4691 color: #31708f;
4691 color: #31708f;
4692 background-color: #c4e3f3;
4692 background-color: #c4e3f3;
4693 }
4693 }
4694 a.list-group-item-info.active,
4694 a.list-group-item-info.active,
4695 a.list-group-item-info.active:hover,
4695 a.list-group-item-info.active:hover,
4696 a.list-group-item-info.active:focus {
4696 a.list-group-item-info.active:focus {
4697 color: #fff;
4697 color: #fff;
4698 background-color: #31708f;
4698 background-color: #31708f;
4699 border-color: #31708f;
4699 border-color: #31708f;
4700 }
4700 }
4701 .list-group-item-warning {
4701 .list-group-item-warning {
4702 color: #8a6d3b;
4702 color: #8a6d3b;
4703 background-color: #fcf8e3;
4703 background-color: #fcf8e3;
4704 }
4704 }
4705 a.list-group-item-warning {
4705 a.list-group-item-warning {
4706 color: #8a6d3b;
4706 color: #8a6d3b;
4707 }
4707 }
4708 a.list-group-item-warning .list-group-item-heading {
4708 a.list-group-item-warning .list-group-item-heading {
4709 color: inherit;
4709 color: inherit;
4710 }
4710 }
4711 a.list-group-item-warning:hover,
4711 a.list-group-item-warning:hover,
4712 a.list-group-item-warning:focus {
4712 a.list-group-item-warning:focus {
4713 color: #8a6d3b;
4713 color: #8a6d3b;
4714 background-color: #faf2cc;
4714 background-color: #faf2cc;
4715 }
4715 }
4716 a.list-group-item-warning.active,
4716 a.list-group-item-warning.active,
4717 a.list-group-item-warning.active:hover,
4717 a.list-group-item-warning.active:hover,
4718 a.list-group-item-warning.active:focus {
4718 a.list-group-item-warning.active:focus {
4719 color: #fff;
4719 color: #fff;
4720 background-color: #8a6d3b;
4720 background-color: #8a6d3b;
4721 border-color: #8a6d3b;
4721 border-color: #8a6d3b;
4722 }
4722 }
4723 .list-group-item-danger {
4723 .list-group-item-danger {
4724 color: #a94442;
4724 color: #a94442;
4725 background-color: #f2dede;
4725 background-color: #f2dede;
4726 }
4726 }
4727 a.list-group-item-danger {
4727 a.list-group-item-danger {
4728 color: #a94442;
4728 color: #a94442;
4729 }
4729 }
4730 a.list-group-item-danger .list-group-item-heading {
4730 a.list-group-item-danger .list-group-item-heading {
4731 color: inherit;
4731 color: inherit;
4732 }
4732 }
4733 a.list-group-item-danger:hover,
4733 a.list-group-item-danger:hover,
4734 a.list-group-item-danger:focus {
4734 a.list-group-item-danger:focus {
4735 color: #a94442;
4735 color: #a94442;
4736 background-color: #ebcccc;
4736 background-color: #ebcccc;
4737 }
4737 }
4738 a.list-group-item-danger.active,
4738 a.list-group-item-danger.active,
4739 a.list-group-item-danger.active:hover,
4739 a.list-group-item-danger.active:hover,
4740 a.list-group-item-danger.active:focus {
4740 a.list-group-item-danger.active:focus {
4741 color: #fff;
4741 color: #fff;
4742 background-color: #a94442;
4742 background-color: #a94442;
4743 border-color: #a94442;
4743 border-color: #a94442;
4744 }
4744 }
4745 .list-group-item-heading {
4745 .list-group-item-heading {
4746 margin-top: 0;
4746 margin-top: 0;
4747 margin-bottom: 5px;
4747 margin-bottom: 5px;
4748 }
4748 }
4749 .list-group-item-text {
4749 .list-group-item-text {
4750 margin-bottom: 0;
4750 margin-bottom: 0;
4751 line-height: 1.3;
4751 line-height: 1.3;
4752 }
4752 }
4753 .panel {
4753 .panel {
4754 margin-bottom: 18px;
4754 margin-bottom: 18px;
4755 background-color: #ffffff;
4755 background-color: #ffffff;
4756 border: 1px solid transparent;
4756 border: 1px solid transparent;
4757 border-radius: 4px;
4757 border-radius: 4px;
4758 -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
4758 -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
4759 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
4759 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
4760 }
4760 }
4761 .panel-body {
4761 .panel-body {
4762 padding: 15px;
4762 padding: 15px;
4763 }
4763 }
4764 .panel-heading {
4764 .panel-heading {
4765 padding: 10px 15px;
4765 padding: 10px 15px;
4766 border-bottom: 1px solid transparent;
4766 border-bottom: 1px solid transparent;
4767 border-top-right-radius: 3px;
4767 border-top-right-radius: 3px;
4768 border-top-left-radius: 3px;
4768 border-top-left-radius: 3px;
4769 }
4769 }
4770 .panel-heading > .dropdown .dropdown-toggle {
4770 .panel-heading > .dropdown .dropdown-toggle {
4771 color: inherit;
4771 color: inherit;
4772 }
4772 }
4773 .panel-title {
4773 .panel-title {
4774 margin-top: 0;
4774 margin-top: 0;
4775 margin-bottom: 0;
4775 margin-bottom: 0;
4776 font-size: 15px;
4776 font-size: 15px;
4777 color: inherit;
4777 color: inherit;
4778 }
4778 }
4779 .panel-title > a {
4779 .panel-title > a {
4780 color: inherit;
4780 color: inherit;
4781 }
4781 }
4782 .panel-footer {
4782 .panel-footer {
4783 padding: 10px 15px;
4783 padding: 10px 15px;
4784 background-color: #f5f5f5;
4784 background-color: #f5f5f5;
4785 border-top: 1px solid #dddddd;
4785 border-top: 1px solid #dddddd;
4786 border-bottom-right-radius: 3px;
4786 border-bottom-right-radius: 3px;
4787 border-bottom-left-radius: 3px;
4787 border-bottom-left-radius: 3px;
4788 }
4788 }
4789 .panel > .list-group {
4789 .panel > .list-group {
4790 margin-bottom: 0;
4790 margin-bottom: 0;
4791 }
4791 }
4792 .panel > .list-group .list-group-item {
4792 .panel > .list-group .list-group-item {
4793 border-width: 1px 0;
4793 border-width: 1px 0;
4794 border-radius: 0;
4794 border-radius: 0;
4795 }
4795 }
4796 .panel > .list-group:first-child .list-group-item:first-child {
4796 .panel > .list-group:first-child .list-group-item:first-child {
4797 border-top: 0;
4797 border-top: 0;
4798 border-top-right-radius: 3px;
4798 border-top-right-radius: 3px;
4799 border-top-left-radius: 3px;
4799 border-top-left-radius: 3px;
4800 }
4800 }
4801 .panel > .list-group:last-child .list-group-item:last-child {
4801 .panel > .list-group:last-child .list-group-item:last-child {
4802 border-bottom: 0;
4802 border-bottom: 0;
4803 border-bottom-right-radius: 3px;
4803 border-bottom-right-radius: 3px;
4804 border-bottom-left-radius: 3px;
4804 border-bottom-left-radius: 3px;
4805 }
4805 }
4806 .panel-heading + .list-group .list-group-item:first-child {
4806 .panel-heading + .list-group .list-group-item:first-child {
4807 border-top-width: 0;
4807 border-top-width: 0;
4808 }
4808 }
4809 .panel > .table,
4809 .panel > .table,
4810 .panel > .table-responsive > .table {
4810 .panel > .table-responsive > .table {
4811 margin-bottom: 0;
4811 margin-bottom: 0;
4812 }
4812 }
4813 .panel > .table:first-child,
4813 .panel > .table:first-child,
4814 .panel > .table-responsive:first-child > .table:first-child {
4814 .panel > .table-responsive:first-child > .table:first-child {
4815 border-top-right-radius: 3px;
4815 border-top-right-radius: 3px;
4816 border-top-left-radius: 3px;
4816 border-top-left-radius: 3px;
4817 }
4817 }
4818 .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
4818 .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
4819 .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
4819 .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
4820 .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
4820 .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
4821 .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
4821 .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
4822 .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
4822 .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
4823 .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
4823 .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
4824 .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
4824 .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
4825 .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
4825 .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
4826 border-top-left-radius: 3px;
4826 border-top-left-radius: 3px;
4827 }
4827 }
4828 .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
4828 .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
4829 .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
4829 .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
4830 .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
4830 .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
4831 .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
4831 .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
4832 .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
4832 .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
4833 .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
4833 .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
4834 .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
4834 .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
4835 .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
4835 .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
4836 border-top-right-radius: 3px;
4836 border-top-right-radius: 3px;
4837 }
4837 }
4838 .panel > .table:last-child,
4838 .panel > .table:last-child,
4839 .panel > .table-responsive:last-child > .table:last-child {
4839 .panel > .table-responsive:last-child > .table:last-child {
4840 border-bottom-right-radius: 3px;
4840 border-bottom-right-radius: 3px;
4841 border-bottom-left-radius: 3px;
4841 border-bottom-left-radius: 3px;
4842 }
4842 }
4843 .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
4843 .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
4844 .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
4844 .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
4845 .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
4845 .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
4846 .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
4846 .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
4847 .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
4847 .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
4848 .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
4848 .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
4849 .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
4849 .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
4850 .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
4850 .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
4851 border-bottom-left-radius: 3px;
4851 border-bottom-left-radius: 3px;
4852 }
4852 }
4853 .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
4853 .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
4854 .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
4854 .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
4855 .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
4855 .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
4856 .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
4856 .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
4857 .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
4857 .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
4858 .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
4858 .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
4859 .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
4859 .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
4860 .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
4860 .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
4861 border-bottom-right-radius: 3px;
4861 border-bottom-right-radius: 3px;
4862 }
4862 }
4863 .panel > .panel-body + .table,
4863 .panel > .panel-body + .table,
4864 .panel > .panel-body + .table-responsive {
4864 .panel > .panel-body + .table-responsive {
4865 border-top: 1px solid #dddddd;
4865 border-top: 1px solid #dddddd;
4866 }
4866 }
4867 .panel > .table > tbody:first-child > tr:first-child th,
4867 .panel > .table > tbody:first-child > tr:first-child th,
4868 .panel > .table > tbody:first-child > tr:first-child td {
4868 .panel > .table > tbody:first-child > tr:first-child td {
4869 border-top: 0;
4869 border-top: 0;
4870 }
4870 }
4871 .panel > .table-bordered,
4871 .panel > .table-bordered,
4872 .panel > .table-responsive > .table-bordered {
4872 .panel > .table-responsive > .table-bordered {
4873 border: 0;
4873 border: 0;
4874 }
4874 }
4875 .panel > .table-bordered > thead > tr > th:first-child,
4875 .panel > .table-bordered > thead > tr > th:first-child,
4876 .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
4876 .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
4877 .panel > .table-bordered > tbody > tr > th:first-child,
4877 .panel > .table-bordered > tbody > tr > th:first-child,
4878 .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
4878 .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
4879 .panel > .table-bordered > tfoot > tr > th:first-child,
4879 .panel > .table-bordered > tfoot > tr > th:first-child,
4880 .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
4880 .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
4881 .panel > .table-bordered > thead > tr > td:first-child,
4881 .panel > .table-bordered > thead > tr > td:first-child,
4882 .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
4882 .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
4883 .panel > .table-bordered > tbody > tr > td:first-child,
4883 .panel > .table-bordered > tbody > tr > td:first-child,
4884 .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
4884 .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
4885 .panel > .table-bordered > tfoot > tr > td:first-child,
4885 .panel > .table-bordered > tfoot > tr > td:first-child,
4886 .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
4886 .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
4887 border-left: 0;
4887 border-left: 0;
4888 }
4888 }
4889 .panel > .table-bordered > thead > tr > th:last-child,
4889 .panel > .table-bordered > thead > tr > th:last-child,
4890 .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
4890 .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
4891 .panel > .table-bordered > tbody > tr > th:last-child,
4891 .panel > .table-bordered > tbody > tr > th:last-child,
4892 .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
4892 .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
4893 .panel > .table-bordered > tfoot > tr > th:last-child,
4893 .panel > .table-bordered > tfoot > tr > th:last-child,
4894 .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
4894 .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
4895 .panel > .table-bordered > thead > tr > td:last-child,
4895 .panel > .table-bordered > thead > tr > td:last-child,
4896 .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
4896 .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
4897 .panel > .table-bordered > tbody > tr > td:last-child,
4897 .panel > .table-bordered > tbody > tr > td:last-child,
4898 .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
4898 .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
4899 .panel > .table-bordered > tfoot > tr > td:last-child,
4899 .panel > .table-bordered > tfoot > tr > td:last-child,
4900 .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
4900 .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
4901 border-right: 0;
4901 border-right: 0;
4902 }
4902 }
4903 .panel > .table-bordered > thead > tr:first-child > td,
4903 .panel > .table-bordered > thead > tr:first-child > td,
4904 .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
4904 .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
4905 .panel > .table-bordered > tbody > tr:first-child > td,
4905 .panel > .table-bordered > tbody > tr:first-child > td,
4906 .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
4906 .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
4907 .panel > .table-bordered > thead > tr:first-child > th,
4907 .panel > .table-bordered > thead > tr:first-child > th,
4908 .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
4908 .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
4909 .panel > .table-bordered > tbody > tr:first-child > th,
4909 .panel > .table-bordered > tbody > tr:first-child > th,
4910 .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
4910 .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
4911 border-bottom: 0;
4911 border-bottom: 0;
4912 }
4912 }
4913 .panel > .table-bordered > tbody > tr:last-child > td,
4913 .panel > .table-bordered > tbody > tr:last-child > td,
4914 .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
4914 .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
4915 .panel > .table-bordered > tfoot > tr:last-child > td,
4915 .panel > .table-bordered > tfoot > tr:last-child > td,
4916 .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
4916 .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
4917 .panel > .table-bordered > tbody > tr:last-child > th,
4917 .panel > .table-bordered > tbody > tr:last-child > th,
4918 .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
4918 .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
4919 .panel > .table-bordered > tfoot > tr:last-child > th,
4919 .panel > .table-bordered > tfoot > tr:last-child > th,
4920 .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
4920 .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
4921 border-bottom: 0;
4921 border-bottom: 0;
4922 }
4922 }
4923 .panel > .table-responsive {
4923 .panel > .table-responsive {
4924 border: 0;
4924 border: 0;
4925 margin-bottom: 0;
4925 margin-bottom: 0;
4926 }
4926 }
4927 .panel-group {
4927 .panel-group {
4928 margin-bottom: 18px;
4928 margin-bottom: 18px;
4929 }
4929 }
4930 .panel-group .panel {
4930 .panel-group .panel {
4931 margin-bottom: 0;
4931 margin-bottom: 0;
4932 border-radius: 4px;
4932 border-radius: 4px;
4933 overflow: hidden;
4933 overflow: hidden;
4934 }
4934 }
4935 .panel-group .panel + .panel {
4935 .panel-group .panel + .panel {
4936 margin-top: 5px;
4936 margin-top: 5px;
4937 }
4937 }
4938 .panel-group .panel-heading {
4938 .panel-group .panel-heading {
4939 border-bottom: 0;
4939 border-bottom: 0;
4940 }
4940 }
4941 .panel-group .panel-heading + .panel-collapse .panel-body {
4941 .panel-group .panel-heading + .panel-collapse .panel-body {
4942 border-top: 1px solid #dddddd;
4942 border-top: 1px solid #dddddd;
4943 }
4943 }
4944 .panel-group .panel-footer {
4944 .panel-group .panel-footer {
4945 border-top: 0;
4945 border-top: 0;
4946 }
4946 }
4947 .panel-group .panel-footer + .panel-collapse .panel-body {
4947 .panel-group .panel-footer + .panel-collapse .panel-body {
4948 border-bottom: 1px solid #dddddd;
4948 border-bottom: 1px solid #dddddd;
4949 }
4949 }
4950 .panel-default {
4950 .panel-default {
4951 border-color: #dddddd;
4951 border-color: #dddddd;
4952 }
4952 }
4953 .panel-default > .panel-heading {
4953 .panel-default > .panel-heading {
4954 color: #333333;
4954 color: #333333;
4955 background-color: #f5f5f5;
4955 background-color: #f5f5f5;
4956 border-color: #dddddd;
4956 border-color: #dddddd;
4957 }
4957 }
4958 .panel-default > .panel-heading + .panel-collapse .panel-body {
4958 .panel-default > .panel-heading + .panel-collapse .panel-body {
4959 border-top-color: #dddddd;
4959 border-top-color: #dddddd;
4960 }
4960 }
4961 .panel-default > .panel-footer + .panel-collapse .panel-body {
4961 .panel-default > .panel-footer + .panel-collapse .panel-body {
4962 border-bottom-color: #dddddd;
4962 border-bottom-color: #dddddd;
4963 }
4963 }
4964 .panel-primary {
4964 .panel-primary {
4965 border-color: #428bca;
4965 border-color: #428bca;
4966 }
4966 }
4967 .panel-primary > .panel-heading {
4967 .panel-primary > .panel-heading {
4968 color: #ffffff;
4968 color: #ffffff;
4969 background-color: #428bca;
4969 background-color: #428bca;
4970 border-color: #428bca;
4970 border-color: #428bca;
4971 }
4971 }
4972 .panel-primary > .panel-heading + .panel-collapse .panel-body {
4972 .panel-primary > .panel-heading + .panel-collapse .panel-body {
4973 border-top-color: #428bca;
4973 border-top-color: #428bca;
4974 }
4974 }
4975 .panel-primary > .panel-footer + .panel-collapse .panel-body {
4975 .panel-primary > .panel-footer + .panel-collapse .panel-body {
4976 border-bottom-color: #428bca;
4976 border-bottom-color: #428bca;
4977 }
4977 }
4978 .panel-success {
4978 .panel-success {
4979 border-color: #d6e9c6;
4979 border-color: #d6e9c6;
4980 }
4980 }
4981 .panel-success > .panel-heading {
4981 .panel-success > .panel-heading {
4982 color: #3c763d;
4982 color: #3c763d;
4983 background-color: #dff0d8;
4983 background-color: #dff0d8;
4984 border-color: #d6e9c6;
4984 border-color: #d6e9c6;
4985 }
4985 }
4986 .panel-success > .panel-heading + .panel-collapse .panel-body {
4986 .panel-success > .panel-heading + .panel-collapse .panel-body {
4987 border-top-color: #d6e9c6;
4987 border-top-color: #d6e9c6;
4988 }
4988 }
4989 .panel-success > .panel-footer + .panel-collapse .panel-body {
4989 .panel-success > .panel-footer + .panel-collapse .panel-body {
4990 border-bottom-color: #d6e9c6;
4990 border-bottom-color: #d6e9c6;
4991 }
4991 }
4992 .panel-info {
4992 .panel-info {
4993 border-color: #bce8f1;
4993 border-color: #bce8f1;
4994 }
4994 }
4995 .panel-info > .panel-heading {
4995 .panel-info > .panel-heading {
4996 color: #31708f;
4996 color: #31708f;
4997 background-color: #d9edf7;
4997 background-color: #d9edf7;
4998 border-color: #bce8f1;
4998 border-color: #bce8f1;
4999 }
4999 }
5000 .panel-info > .panel-heading + .panel-collapse .panel-body {
5000 .panel-info > .panel-heading + .panel-collapse .panel-body {
5001 border-top-color: #bce8f1;
5001 border-top-color: #bce8f1;
5002 }
5002 }
5003 .panel-info > .panel-footer + .panel-collapse .panel-body {
5003 .panel-info > .panel-footer + .panel-collapse .panel-body {
5004 border-bottom-color: #bce8f1;
5004 border-bottom-color: #bce8f1;
5005 }
5005 }
5006 .panel-warning {
5006 .panel-warning {
5007 border-color: #faebcc;
5007 border-color: #faebcc;
5008 }
5008 }
5009 .panel-warning > .panel-heading {
5009 .panel-warning > .panel-heading {
5010 color: #8a6d3b;
5010 color: #8a6d3b;
5011 background-color: #fcf8e3;
5011 background-color: #fcf8e3;
5012 border-color: #faebcc;
5012 border-color: #faebcc;
5013 }
5013 }
5014 .panel-warning > .panel-heading + .panel-collapse .panel-body {
5014 .panel-warning > .panel-heading + .panel-collapse .panel-body {
5015 border-top-color: #faebcc;
5015 border-top-color: #faebcc;
5016 }
5016 }
5017 .panel-warning > .panel-footer + .panel-collapse .panel-body {
5017 .panel-warning > .panel-footer + .panel-collapse .panel-body {
5018 border-bottom-color: #faebcc;
5018 border-bottom-color: #faebcc;
5019 }
5019 }
5020 .panel-danger {
5020 .panel-danger {
5021 border-color: #ebccd1;
5021 border-color: #ebccd1;
5022 }
5022 }
5023 .panel-danger > .panel-heading {
5023 .panel-danger > .panel-heading {
5024 color: #a94442;
5024 color: #a94442;
5025 background-color: #f2dede;
5025 background-color: #f2dede;
5026 border-color: #ebccd1;
5026 border-color: #ebccd1;
5027 }
5027 }
5028 .panel-danger > .panel-heading + .panel-collapse .panel-body {
5028 .panel-danger > .panel-heading + .panel-collapse .panel-body {
5029 border-top-color: #ebccd1;
5029 border-top-color: #ebccd1;
5030 }
5030 }
5031 .panel-danger > .panel-footer + .panel-collapse .panel-body {
5031 .panel-danger > .panel-footer + .panel-collapse .panel-body {
5032 border-bottom-color: #ebccd1;
5032 border-bottom-color: #ebccd1;
5033 }
5033 }
5034 .well {
5034 .well {
5035 min-height: 20px;
5035 min-height: 20px;
5036 padding: 19px;
5036 padding: 19px;
5037 margin-bottom: 20px;
5037 margin-bottom: 20px;
5038 background-color: #f5f5f5;
5038 background-color: #f5f5f5;
5039 border: 1px solid #e3e3e3;
5039 border: 1px solid #e3e3e3;
5040 border-radius: 4px;
5040 border-radius: 4px;
5041 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
5041 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
5042 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
5042 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
5043 }
5043 }
5044 .well blockquote {
5044 .well blockquote {
5045 border-color: #ddd;
5045 border-color: #ddd;
5046 border-color: rgba(0, 0, 0, 0.15);
5046 border-color: rgba(0, 0, 0, 0.15);
5047 }
5047 }
5048 .well-lg {
5048 .well-lg {
5049 padding: 24px;
5049 padding: 24px;
5050 border-radius: 6px;
5050 border-radius: 6px;
5051 }
5051 }
5052 .well-sm {
5052 .well-sm {
5053 padding: 9px;
5053 padding: 9px;
5054 border-radius: 3px;
5054 border-radius: 3px;
5055 }
5055 }
5056 .close {
5056 .close {
5057 float: right;
5057 float: right;
5058 font-size: 19.5px;
5058 font-size: 19.5px;
5059 font-weight: bold;
5059 font-weight: bold;
5060 line-height: 1;
5060 line-height: 1;
5061 color: #000000;
5061 color: #000000;
5062 text-shadow: 0 1px 0 #ffffff;
5062 text-shadow: 0 1px 0 #ffffff;
5063 opacity: 0.2;
5063 opacity: 0.2;
5064 filter: alpha(opacity=20);
5064 filter: alpha(opacity=20);
5065 }
5065 }
5066 .close:hover,
5066 .close:hover,
5067 .close:focus {
5067 .close:focus {
5068 color: #000000;
5068 color: #000000;
5069 text-decoration: none;
5069 text-decoration: none;
5070 cursor: pointer;
5070 cursor: pointer;
5071 opacity: 0.5;
5071 opacity: 0.5;
5072 filter: alpha(opacity=50);
5072 filter: alpha(opacity=50);
5073 }
5073 }
5074 button.close {
5074 button.close {
5075 padding: 0;
5075 padding: 0;
5076 cursor: pointer;
5076 cursor: pointer;
5077 background: transparent;
5077 background: transparent;
5078 border: 0;
5078 border: 0;
5079 -webkit-appearance: none;
5079 -webkit-appearance: none;
5080 }
5080 }
5081 .modal-open {
5081 .modal-open {
5082 overflow: hidden;
5082 overflow: hidden;
5083 }
5083 }
5084 .modal {
5084 .modal {
5085 display: none;
5085 display: none;
5086 overflow: auto;
5086 overflow: auto;
5087 overflow-y: scroll;
5087 overflow-y: scroll;
5088 position: fixed;
5088 position: fixed;
5089 top: 0;
5089 top: 0;
5090 right: 0;
5090 right: 0;
5091 bottom: 0;
5091 bottom: 0;
5092 left: 0;
5092 left: 0;
5093 z-index: 1050;
5093 z-index: 1050;
5094 -webkit-overflow-scrolling: touch;
5094 -webkit-overflow-scrolling: touch;
5095 outline: 0;
5095 outline: 0;
5096 }
5096 }
5097 .modal.fade .modal-dialog {
5097 .modal.fade .modal-dialog {
5098 -webkit-transform: translate(0, -25%);
5098 -webkit-transform: translate(0, -25%);
5099 -ms-transform: translate(0, -25%);
5099 -ms-transform: translate(0, -25%);
5100 transform: translate(0, -25%);
5100 transform: translate(0, -25%);
5101 -webkit-transition: -webkit-transform 0.3s ease-out;
5101 -webkit-transition: -webkit-transform 0.3s ease-out;
5102 -moz-transition: -moz-transform 0.3s ease-out;
5102 -moz-transition: -moz-transform 0.3s ease-out;
5103 -o-transition: -o-transform 0.3s ease-out;
5103 -o-transition: -o-transform 0.3s ease-out;
5104 transition: transform 0.3s ease-out;
5104 transition: transform 0.3s ease-out;
5105 }
5105 }
5106 .modal.in .modal-dialog {
5106 .modal.in .modal-dialog {
5107 -webkit-transform: translate(0, 0);
5107 -webkit-transform: translate(0, 0);
5108 -ms-transform: translate(0, 0);
5108 -ms-transform: translate(0, 0);
5109 transform: translate(0, 0);
5109 transform: translate(0, 0);
5110 }
5110 }
5111 .modal-dialog {
5111 .modal-dialog {
5112 position: relative;
5112 position: relative;
5113 width: auto;
5113 width: auto;
5114 margin: 10px;
5114 margin: 10px;
5115 }
5115 }
5116 .modal-content {
5116 .modal-content {
5117 position: relative;
5117 position: relative;
5118 background-color: #ffffff;
5118 background-color: #ffffff;
5119 border: 1px solid #999999;
5119 border: 1px solid #999999;
5120 border: 1px solid rgba(0, 0, 0, 0.2);
5120 border: 1px solid rgba(0, 0, 0, 0.2);
5121 border-radius: 6px;
5121 border-radius: 6px;
5122 -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
5122 -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
5123 box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
5123 box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
5124 background-clip: padding-box;
5124 background-clip: padding-box;
5125 outline: none;
5125 outline: none;
5126 }
5126 }
5127 .modal-backdrop {
5127 .modal-backdrop {
5128 position: fixed;
5128 position: fixed;
5129 top: 0;
5129 top: 0;
5130 right: 0;
5130 right: 0;
5131 bottom: 0;
5131 bottom: 0;
5132 left: 0;
5132 left: 0;
5133 z-index: 1040;
5133 z-index: 1040;
5134 background-color: #000000;
5134 background-color: #000000;
5135 }
5135 }
5136 .modal-backdrop.fade {
5136 .modal-backdrop.fade {
5137 opacity: 0;
5137 opacity: 0;
5138 filter: alpha(opacity=0);
5138 filter: alpha(opacity=0);
5139 }
5139 }
5140 .modal-backdrop.in {
5140 .modal-backdrop.in {
5141 opacity: 0.5;
5141 opacity: 0.5;
5142 filter: alpha(opacity=50);
5142 filter: alpha(opacity=50);
5143 }
5143 }
5144 .modal-header {
5144 .modal-header {
5145 padding: 15px;
5145 padding: 15px;
5146 border-bottom: 1px solid #e5e5e5;
5146 border-bottom: 1px solid #e5e5e5;
5147 min-height: 16.42857143px;
5147 min-height: 16.42857143px;
5148 }
5148 }
5149 .modal-header .close {
5149 .modal-header .close {
5150 margin-top: -2px;
5150 margin-top: -2px;
5151 }
5151 }
5152 .modal-title {
5152 .modal-title {
5153 margin: 0;
5153 margin: 0;
5154 line-height: 1.42857143;
5154 line-height: 1.42857143;
5155 }
5155 }
5156 .modal-body {
5156 .modal-body {
5157 position: relative;
5157 position: relative;
5158 padding: 15px;
5158 padding: 15px;
5159 }
5159 }
5160 .modal-footer {
5160 .modal-footer {
5161 margin-top: 15px;
5161 margin-top: 15px;
5162 padding: 14px 15px 15px;
5162 padding: 14px 15px 15px;
5163 text-align: right;
5163 text-align: right;
5164 border-top: 1px solid #e5e5e5;
5164 border-top: 1px solid #e5e5e5;
5165 }
5165 }
5166 .modal-footer .btn + .btn {
5166 .modal-footer .btn + .btn {
5167 margin-left: 5px;
5167 margin-left: 5px;
5168 margin-bottom: 0;
5168 margin-bottom: 0;
5169 }
5169 }
5170 .modal-footer .btn-group .btn + .btn {
5170 .modal-footer .btn-group .btn + .btn {
5171 margin-left: -1px;
5171 margin-left: -1px;
5172 }
5172 }
5173 .modal-footer .btn-block + .btn-block {
5173 .modal-footer .btn-block + .btn-block {
5174 margin-left: 0;
5174 margin-left: 0;
5175 }
5175 }
5176 @media (min-width: 768px) {
5176 @media (min-width: 768px) {
5177 .modal-dialog {
5177 .modal-dialog {
5178 width: 600px;
5178 width: 600px;
5179 margin: 30px auto;
5179 margin: 30px auto;
5180 }
5180 }
5181 .modal-content {
5181 .modal-content {
5182 -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
5182 -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
5183 box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
5183 box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
5184 }
5184 }
5185 .modal-sm {
5185 .modal-sm {
5186 width: 300px;
5186 width: 300px;
5187 }
5187 }
5188 }
5188 }
5189 @media (min-width: 992px) {
5189 @media (min-width: 992px) {
5190 .modal-lg {
5190 .modal-lg {
5191 width: 900px;
5191 width: 900px;
5192 }
5192 }
5193 }
5193 }
5194 .tooltip {
5194 .tooltip {
5195 position: absolute;
5195 position: absolute;
5196 z-index: 1030;
5196 z-index: 1030;
5197 display: block;
5197 display: block;
5198 visibility: visible;
5198 visibility: visible;
5199 font-size: 12px;
5199 font-size: 12px;
5200 line-height: 1.4;
5200 line-height: 1.4;
5201 opacity: 0;
5201 opacity: 0;
5202 filter: alpha(opacity=0);
5202 filter: alpha(opacity=0);
5203 }
5203 }
5204 .tooltip.in {
5204 .tooltip.in {
5205 opacity: 0.9;
5205 opacity: 0.9;
5206 filter: alpha(opacity=90);
5206 filter: alpha(opacity=90);
5207 }
5207 }
5208 .tooltip.top {
5208 .tooltip.top {
5209 margin-top: -3px;
5209 margin-top: -3px;
5210 padding: 5px 0;
5210 padding: 5px 0;
5211 }
5211 }
5212 .tooltip.right {
5212 .tooltip.right {
5213 margin-left: 3px;
5213 margin-left: 3px;
5214 padding: 0 5px;
5214 padding: 0 5px;
5215 }
5215 }
5216 .tooltip.bottom {
5216 .tooltip.bottom {
5217 margin-top: 3px;
5217 margin-top: 3px;
5218 padding: 5px 0;
5218 padding: 5px 0;
5219 }
5219 }
5220 .tooltip.left {
5220 .tooltip.left {
5221 margin-left: -3px;
5221 margin-left: -3px;
5222 padding: 0 5px;
5222 padding: 0 5px;
5223 }
5223 }
5224 .tooltip-inner {
5224 .tooltip-inner {
5225 max-width: 200px;
5225 max-width: 200px;
5226 padding: 3px 8px;
5226 padding: 3px 8px;
5227 color: #ffffff;
5227 color: #ffffff;
5228 text-align: center;
5228 text-align: center;
5229 text-decoration: none;
5229 text-decoration: none;
5230 background-color: #000000;
5230 background-color: #000000;
5231 border-radius: 4px;
5231 border-radius: 4px;
5232 }
5232 }
5233 .tooltip-arrow {
5233 .tooltip-arrow {
5234 position: absolute;
5234 position: absolute;
5235 width: 0;
5235 width: 0;
5236 height: 0;
5236 height: 0;
5237 border-color: transparent;
5237 border-color: transparent;
5238 border-style: solid;
5238 border-style: solid;
5239 }
5239 }
5240 .tooltip.top .tooltip-arrow {
5240 .tooltip.top .tooltip-arrow {
5241 bottom: 0;
5241 bottom: 0;
5242 left: 50%;
5242 left: 50%;
5243 margin-left: -5px;
5243 margin-left: -5px;
5244 border-width: 5px 5px 0;
5244 border-width: 5px 5px 0;
5245 border-top-color: #000000;
5245 border-top-color: #000000;
5246 }
5246 }
5247 .tooltip.top-left .tooltip-arrow {
5247 .tooltip.top-left .tooltip-arrow {
5248 bottom: 0;
5248 bottom: 0;
5249 left: 5px;
5249 left: 5px;
5250 border-width: 5px 5px 0;
5250 border-width: 5px 5px 0;
5251 border-top-color: #000000;
5251 border-top-color: #000000;
5252 }
5252 }
5253 .tooltip.top-right .tooltip-arrow {
5253 .tooltip.top-right .tooltip-arrow {
5254 bottom: 0;
5254 bottom: 0;
5255 right: 5px;
5255 right: 5px;
5256 border-width: 5px 5px 0;
5256 border-width: 5px 5px 0;
5257 border-top-color: #000000;
5257 border-top-color: #000000;
5258 }
5258 }
5259 .tooltip.right .tooltip-arrow {
5259 .tooltip.right .tooltip-arrow {
5260 top: 50%;
5260 top: 50%;
5261 left: 0;
5261 left: 0;
5262 margin-top: -5px;
5262 margin-top: -5px;
5263 border-width: 5px 5px 5px 0;
5263 border-width: 5px 5px 5px 0;
5264 border-right-color: #000000;
5264 border-right-color: #000000;
5265 }
5265 }
5266 .tooltip.left .tooltip-arrow {
5266 .tooltip.left .tooltip-arrow {
5267 top: 50%;
5267 top: 50%;
5268 right: 0;
5268 right: 0;
5269 margin-top: -5px;
5269 margin-top: -5px;
5270 border-width: 5px 0 5px 5px;
5270 border-width: 5px 0 5px 5px;
5271 border-left-color: #000000;
5271 border-left-color: #000000;
5272 }
5272 }
5273 .tooltip.bottom .tooltip-arrow {
5273 .tooltip.bottom .tooltip-arrow {
5274 top: 0;
5274 top: 0;
5275 left: 50%;
5275 left: 50%;
5276 margin-left: -5px;
5276 margin-left: -5px;
5277 border-width: 0 5px 5px;
5277 border-width: 0 5px 5px;
5278 border-bottom-color: #000000;
5278 border-bottom-color: #000000;
5279 }
5279 }
5280 .tooltip.bottom-left .tooltip-arrow {
5280 .tooltip.bottom-left .tooltip-arrow {
5281 top: 0;
5281 top: 0;
5282 left: 5px;
5282 left: 5px;
5283 border-width: 0 5px 5px;
5283 border-width: 0 5px 5px;
5284 border-bottom-color: #000000;
5284 border-bottom-color: #000000;
5285 }
5285 }
5286 .tooltip.bottom-right .tooltip-arrow {
5286 .tooltip.bottom-right .tooltip-arrow {
5287 top: 0;
5287 top: 0;
5288 right: 5px;
5288 right: 5px;
5289 border-width: 0 5px 5px;
5289 border-width: 0 5px 5px;
5290 border-bottom-color: #000000;
5290 border-bottom-color: #000000;
5291 }
5291 }
5292 .popover {
5292 .popover {
5293 position: absolute;
5293 position: absolute;
5294 top: 0;
5294 top: 0;
5295 left: 0;
5295 left: 0;
5296 z-index: 1010;
5296 z-index: 1010;
5297 display: none;
5297 display: none;
5298 max-width: 276px;
5298 max-width: 276px;
5299 padding: 1px;
5299 padding: 1px;
5300 text-align: left;
5300 text-align: left;
5301 background-color: #ffffff;
5301 background-color: #ffffff;
5302 background-clip: padding-box;
5302 background-clip: padding-box;
5303 border: 1px solid #cccccc;
5303 border: 1px solid #cccccc;
5304 border: 1px solid rgba(0, 0, 0, 0.2);
5304 border: 1px solid rgba(0, 0, 0, 0.2);
5305 border-radius: 6px;
5305 border-radius: 6px;
5306 -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
5306 -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
5307 box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
5307 box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
5308 white-space: normal;
5308 white-space: normal;
5309 }
5309 }
5310 .popover.top {
5310 .popover.top {
5311 margin-top: -10px;
5311 margin-top: -10px;
5312 }
5312 }
5313 .popover.right {
5313 .popover.right {
5314 margin-left: 10px;
5314 margin-left: 10px;
5315 }
5315 }
5316 .popover.bottom {
5316 .popover.bottom {
5317 margin-top: 10px;
5317 margin-top: 10px;
5318 }
5318 }
5319 .popover.left {
5319 .popover.left {
5320 margin-left: -10px;
5320 margin-left: -10px;
5321 }
5321 }
5322 .popover-title {
5322 .popover-title {
5323 margin: 0;
5323 margin: 0;
5324 padding: 8px 14px;
5324 padding: 8px 14px;
5325 font-size: 13px;
5325 font-size: 13px;
5326 font-weight: normal;
5326 font-weight: normal;
5327 line-height: 18px;
5327 line-height: 18px;
5328 background-color: #f7f7f7;
5328 background-color: #f7f7f7;
5329 border-bottom: 1px solid #ebebeb;
5329 border-bottom: 1px solid #ebebeb;
5330 border-radius: 5px 5px 0 0;
5330 border-radius: 5px 5px 0 0;
5331 }
5331 }
5332 .popover-content {
5332 .popover-content {
5333 padding: 9px 14px;
5333 padding: 9px 14px;
5334 }
5334 }
5335 .popover > .arrow,
5335 .popover > .arrow,
5336 .popover > .arrow:after {
5336 .popover > .arrow:after {
5337 position: absolute;
5337 position: absolute;
5338 display: block;
5338 display: block;
5339 width: 0;
5339 width: 0;
5340 height: 0;
5340 height: 0;
5341 border-color: transparent;
5341 border-color: transparent;
5342 border-style: solid;
5342 border-style: solid;
5343 }
5343 }
5344 .popover > .arrow {
5344 .popover > .arrow {
5345 border-width: 11px;
5345 border-width: 11px;
5346 }
5346 }
5347 .popover > .arrow:after {
5347 .popover > .arrow:after {
5348 border-width: 10px;
5348 border-width: 10px;
5349 content: "";
5349 content: "";
5350 }
5350 }
5351 .popover.top > .arrow {
5351 .popover.top > .arrow {
5352 left: 50%;
5352 left: 50%;
5353 margin-left: -11px;
5353 margin-left: -11px;
5354 border-bottom-width: 0;
5354 border-bottom-width: 0;
5355 border-top-color: #999999;
5355 border-top-color: #999999;
5356 border-top-color: rgba(0, 0, 0, 0.25);
5356 border-top-color: rgba(0, 0, 0, 0.25);
5357 bottom: -11px;
5357 bottom: -11px;
5358 }
5358 }
5359 .popover.top > .arrow:after {
5359 .popover.top > .arrow:after {
5360 content: " ";
5360 content: " ";
5361 bottom: 1px;
5361 bottom: 1px;
5362 margin-left: -10px;
5362 margin-left: -10px;
5363 border-bottom-width: 0;
5363 border-bottom-width: 0;
5364 border-top-color: #ffffff;
5364 border-top-color: #ffffff;
5365 }
5365 }
5366 .popover.right > .arrow {
5366 .popover.right > .arrow {
5367 top: 50%;
5367 top: 50%;
5368 left: -11px;
5368 left: -11px;
5369 margin-top: -11px;
5369 margin-top: -11px;
5370 border-left-width: 0;
5370 border-left-width: 0;
5371 border-right-color: #999999;
5371 border-right-color: #999999;
5372 border-right-color: rgba(0, 0, 0, 0.25);
5372 border-right-color: rgba(0, 0, 0, 0.25);
5373 }
5373 }
5374 .popover.right > .arrow:after {
5374 .popover.right > .arrow:after {
5375 content: " ";
5375 content: " ";
5376 left: 1px;
5376 left: 1px;
5377 bottom: -10px;
5377 bottom: -10px;
5378 border-left-width: 0;
5378 border-left-width: 0;
5379 border-right-color: #ffffff;
5379 border-right-color: #ffffff;
5380 }
5380 }
5381 .popover.bottom > .arrow {
5381 .popover.bottom > .arrow {
5382 left: 50%;
5382 left: 50%;
5383 margin-left: -11px;
5383 margin-left: -11px;
5384 border-top-width: 0;
5384 border-top-width: 0;
5385 border-bottom-color: #999999;
5385 border-bottom-color: #999999;
5386 border-bottom-color: rgba(0, 0, 0, 0.25);
5386 border-bottom-color: rgba(0, 0, 0, 0.25);
5387 top: -11px;
5387 top: -11px;
5388 }
5388 }
5389 .popover.bottom > .arrow:after {
5389 .popover.bottom > .arrow:after {
5390 content: " ";
5390 content: " ";
5391 top: 1px;
5391 top: 1px;
5392 margin-left: -10px;
5392 margin-left: -10px;
5393 border-top-width: 0;
5393 border-top-width: 0;
5394 border-bottom-color: #ffffff;
5394 border-bottom-color: #ffffff;
5395 }
5395 }
5396 .popover.left > .arrow {
5396 .popover.left > .arrow {
5397 top: 50%;
5397 top: 50%;
5398 right: -11px;
5398 right: -11px;
5399 margin-top: -11px;
5399 margin-top: -11px;
5400 border-right-width: 0;
5400 border-right-width: 0;
5401 border-left-color: #999999;
5401 border-left-color: #999999;
5402 border-left-color: rgba(0, 0, 0, 0.25);
5402 border-left-color: rgba(0, 0, 0, 0.25);
5403 }
5403 }
5404 .popover.left > .arrow:after {
5404 .popover.left > .arrow:after {
5405 content: " ";
5405 content: " ";
5406 right: 1px;
5406 right: 1px;
5407 border-right-width: 0;
5407 border-right-width: 0;
5408 border-left-color: #ffffff;
5408 border-left-color: #ffffff;
5409 bottom: -10px;
5409 bottom: -10px;
5410 }
5410 }
5411 .carousel {
5411 .carousel {
5412 position: relative;
5412 position: relative;
5413 }
5413 }
5414 .carousel-inner {
5414 .carousel-inner {
5415 position: relative;
5415 position: relative;
5416 overflow: hidden;
5416 overflow: hidden;
5417 width: 100%;
5417 width: 100%;
5418 }
5418 }
5419 .carousel-inner > .item {
5419 .carousel-inner > .item {
5420 display: none;
5420 display: none;
5421 position: relative;
5421 position: relative;
5422 -webkit-transition: 0.6s ease-in-out left;
5422 -webkit-transition: 0.6s ease-in-out left;
5423 transition: 0.6s ease-in-out left;
5423 transition: 0.6s ease-in-out left;
5424 }
5424 }
5425 .carousel-inner > .item > img,
5425 .carousel-inner > .item > img,
5426 .carousel-inner > .item > a > img {
5426 .carousel-inner > .item > a > img {
5427 line-height: 1;
5427 line-height: 1;
5428 }
5428 }
5429 .carousel-inner > .active,
5429 .carousel-inner > .active,
5430 .carousel-inner > .next,
5430 .carousel-inner > .next,
5431 .carousel-inner > .prev {
5431 .carousel-inner > .prev {
5432 display: block;
5432 display: block;
5433 }
5433 }
5434 .carousel-inner > .active {
5434 .carousel-inner > .active {
5435 left: 0;
5435 left: 0;
5436 }
5436 }
5437 .carousel-inner > .next,
5437 .carousel-inner > .next,
5438 .carousel-inner > .prev {
5438 .carousel-inner > .prev {
5439 position: absolute;
5439 position: absolute;
5440 top: 0;
5440 top: 0;
5441 width: 100%;
5441 width: 100%;
5442 }
5442 }
5443 .carousel-inner > .next {
5443 .carousel-inner > .next {
5444 left: 100%;
5444 left: 100%;
5445 }
5445 }
5446 .carousel-inner > .prev {
5446 .carousel-inner > .prev {
5447 left: -100%;
5447 left: -100%;
5448 }
5448 }
5449 .carousel-inner > .next.left,
5449 .carousel-inner > .next.left,
5450 .carousel-inner > .prev.right {
5450 .carousel-inner > .prev.right {
5451 left: 0;
5451 left: 0;
5452 }
5452 }
5453 .carousel-inner > .active.left {
5453 .carousel-inner > .active.left {
5454 left: -100%;
5454 left: -100%;
5455 }
5455 }
5456 .carousel-inner > .active.right {
5456 .carousel-inner > .active.right {
5457 left: 100%;
5457 left: 100%;
5458 }
5458 }
5459 .carousel-control {
5459 .carousel-control {
5460 position: absolute;
5460 position: absolute;
5461 top: 0;
5461 top: 0;
5462 left: 0;
5462 left: 0;
5463 bottom: 0;
5463 bottom: 0;
5464 width: 15%;
5464 width: 15%;
5465 opacity: 0.5;
5465 opacity: 0.5;
5466 filter: alpha(opacity=50);
5466 filter: alpha(opacity=50);
5467 font-size: 20px;
5467 font-size: 20px;
5468 color: #ffffff;
5468 color: #ffffff;
5469 text-align: center;
5469 text-align: center;
5470 text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
5470 text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
5471 }
5471 }
5472 .carousel-control.left {
5472 .carousel-control.left {
5473 background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%));
5473 background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%));
5474 background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
5474 background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
5475 background-repeat: repeat-x;
5475 background-repeat: repeat-x;
5476 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
5476 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
5477 }
5477 }
5478 .carousel-control.right {
5478 .carousel-control.right {
5479 left: auto;
5479 left: auto;
5480 right: 0;
5480 right: 0;
5481 background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%));
5481 background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%));
5482 background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
5482 background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
5483 background-repeat: repeat-x;
5483 background-repeat: repeat-x;
5484 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
5484 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
5485 }
5485 }
5486 .carousel-control:hover,
5486 .carousel-control:hover,
5487 .carousel-control:focus {
5487 .carousel-control:focus {
5488 outline: none;
5488 outline: none;
5489 color: #ffffff;
5489 color: #ffffff;
5490 text-decoration: none;
5490 text-decoration: none;
5491 opacity: 0.9;
5491 opacity: 0.9;
5492 filter: alpha(opacity=90);
5492 filter: alpha(opacity=90);
5493 }
5493 }
5494 .carousel-control .icon-prev,
5494 .carousel-control .icon-prev,
5495 .carousel-control .icon-next,
5495 .carousel-control .icon-next,
5496 .carousel-control .glyphicon-chevron-left,
5496 .carousel-control .glyphicon-chevron-left,
5497 .carousel-control .glyphicon-chevron-right {
5497 .carousel-control .glyphicon-chevron-right {
5498 position: absolute;
5498 position: absolute;
5499 top: 50%;
5499 top: 50%;
5500 z-index: 5;
5500 z-index: 5;
5501 display: inline-block;
5501 display: inline-block;
5502 }
5502 }
5503 .carousel-control .icon-prev,
5503 .carousel-control .icon-prev,
5504 .carousel-control .glyphicon-chevron-left {
5504 .carousel-control .glyphicon-chevron-left {
5505 left: 50%;
5505 left: 50%;
5506 }
5506 }
5507 .carousel-control .icon-next,
5507 .carousel-control .icon-next,
5508 .carousel-control .glyphicon-chevron-right {
5508 .carousel-control .glyphicon-chevron-right {
5509 right: 50%;
5509 right: 50%;
5510 }
5510 }
5511 .carousel-control .icon-prev,
5511 .carousel-control .icon-prev,
5512 .carousel-control .icon-next {
5512 .carousel-control .icon-next {
5513 width: 20px;
5513 width: 20px;
5514 height: 20px;
5514 height: 20px;
5515 margin-top: -10px;
5515 margin-top: -10px;
5516 margin-left: -10px;
5516 margin-left: -10px;
5517 font-family: serif;
5517 font-family: serif;
5518 }
5518 }
5519 .carousel-control .icon-prev:before {
5519 .carousel-control .icon-prev:before {
5520 content: '\2039';
5520 content: '\2039';
5521 }
5521 }
5522 .carousel-control .icon-next:before {
5522 .carousel-control .icon-next:before {
5523 content: '\203a';
5523 content: '\203a';
5524 }
5524 }
5525 .carousel-indicators {
5525 .carousel-indicators {
5526 position: absolute;
5526 position: absolute;
5527 bottom: 10px;
5527 bottom: 10px;
5528 left: 50%;
5528 left: 50%;
5529 z-index: 15;
5529 z-index: 15;
5530 width: 60%;
5530 width: 60%;
5531 margin-left: -30%;
5531 margin-left: -30%;
5532 padding-left: 0;
5532 padding-left: 0;
5533 list-style: none;
5533 list-style: none;
5534 text-align: center;
5534 text-align: center;
5535 }
5535 }
5536 .carousel-indicators li {
5536 .carousel-indicators li {
5537 display: inline-block;
5537 display: inline-block;
5538 width: 10px;
5538 width: 10px;
5539 height: 10px;
5539 height: 10px;
5540 margin: 1px;
5540 margin: 1px;
5541 text-indent: -999px;
5541 text-indent: -999px;
5542 border: 1px solid #ffffff;
5542 border: 1px solid #ffffff;
5543 border-radius: 10px;
5543 border-radius: 10px;
5544 cursor: pointer;
5544 cursor: pointer;
5545 background-color: #000 \9;
5545 background-color: #000 \9;
5546 background-color: rgba(0, 0, 0, 0);
5546 background-color: rgba(0, 0, 0, 0);
5547 }
5547 }
5548 .carousel-indicators .active {
5548 .carousel-indicators .active {
5549 margin: 0;
5549 margin: 0;
5550 width: 12px;
5550 width: 12px;
5551 height: 12px;
5551 height: 12px;
5552 background-color: #ffffff;
5552 background-color: #ffffff;
5553 }
5553 }
5554 .carousel-caption {
5554 .carousel-caption {
5555 position: absolute;
5555 position: absolute;
5556 left: 15%;
5556 left: 15%;
5557 right: 15%;
5557 right: 15%;
5558 bottom: 20px;
5558 bottom: 20px;
5559 z-index: 10;
5559 z-index: 10;
5560 padding-top: 20px;
5560 padding-top: 20px;
5561 padding-bottom: 20px;
5561 padding-bottom: 20px;
5562 color: #ffffff;
5562 color: #ffffff;
5563 text-align: center;
5563 text-align: center;
5564 text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
5564 text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
5565 }
5565 }
5566 .carousel-caption .btn {
5566 .carousel-caption .btn {
5567 text-shadow: none;
5567 text-shadow: none;
5568 }
5568 }
5569 @media screen and (min-width: 768px) {
5569 @media screen and (min-width: 768px) {
5570 .carousel-control .glyphicon-chevron-left,
5570 .carousel-control .glyphicon-chevron-left,
5571 .carousel-control .glyphicon-chevron-right,
5571 .carousel-control .glyphicon-chevron-right,
5572 .carousel-control .icon-prev,
5572 .carousel-control .icon-prev,
5573 .carousel-control .icon-next {
5573 .carousel-control .icon-next {
5574 width: 30px;
5574 width: 30px;
5575 height: 30px;
5575 height: 30px;
5576 margin-top: -15px;
5576 margin-top: -15px;
5577 margin-left: -15px;
5577 margin-left: -15px;
5578 font-size: 30px;
5578 font-size: 30px;
5579 }
5579 }
5580 .carousel-caption {
5580 .carousel-caption {
5581 left: 20%;
5581 left: 20%;
5582 right: 20%;
5582 right: 20%;
5583 padding-bottom: 30px;
5583 padding-bottom: 30px;
5584 }
5584 }
5585 .carousel-indicators {
5585 .carousel-indicators {
5586 bottom: 20px;
5586 bottom: 20px;
5587 }
5587 }
5588 }
5588 }
5589 .clearfix:before,
5589 .clearfix:before,
5590 .clearfix:after,
5590 .clearfix:after,
5591 .container:before,
5591 .container:before,
5592 .container:after,
5592 .container:after,
5593 .container-fluid:before,
5593 .container-fluid:before,
5594 .container-fluid:after,
5594 .container-fluid:after,
5595 .row:before,
5595 .row:before,
5596 .row:after,
5596 .row:after,
5597 .form-horizontal .form-group:before,
5597 .form-horizontal .form-group:before,
5598 .form-horizontal .form-group:after,
5598 .form-horizontal .form-group:after,
5599 .btn-toolbar:before,
5599 .btn-toolbar:before,
5600 .btn-toolbar:after,
5600 .btn-toolbar:after,
5601 .btn-group-vertical > .btn-group:before,
5601 .btn-group-vertical > .btn-group:before,
5602 .btn-group-vertical > .btn-group:after,
5602 .btn-group-vertical > .btn-group:after,
5603 .nav:before,
5603 .nav:before,
5604 .nav:after,
5604 .nav:after,
5605 .navbar:before,
5605 .navbar:before,
5606 .navbar:after,
5606 .navbar:after,
5607 .navbar-header:before,
5607 .navbar-header:before,
5608 .navbar-header:after,
5608 .navbar-header:after,
5609 .navbar-collapse:before,
5609 .navbar-collapse:before,
5610 .navbar-collapse:after,
5610 .navbar-collapse:after,
5611 .pager:before,
5611 .pager:before,
5612 .pager:after,
5612 .pager:after,
5613 .panel-body:before,
5613 .panel-body:before,
5614 .panel-body:after,
5614 .panel-body:after,
5615 .modal-footer:before,
5615 .modal-footer:before,
5616 .modal-footer:after {
5616 .modal-footer:after {
5617 content: " ";
5617 content: " ";
5618 display: table;
5618 display: table;
5619 }
5619 }
5620 .clearfix:after,
5620 .clearfix:after,
5621 .container:after,
5621 .container:after,
5622 .container-fluid:after,
5622 .container-fluid:after,
5623 .row:after,
5623 .row:after,
5624 .form-horizontal .form-group:after,
5624 .form-horizontal .form-group:after,
5625 .btn-toolbar:after,
5625 .btn-toolbar:after,
5626 .btn-group-vertical > .btn-group:after,
5626 .btn-group-vertical > .btn-group:after,
5627 .nav:after,
5627 .nav:after,
5628 .navbar:after,
5628 .navbar:after,
5629 .navbar-header:after,
5629 .navbar-header:after,
5630 .navbar-collapse:after,
5630 .navbar-collapse:after,
5631 .pager:after,
5631 .pager:after,
5632 .panel-body:after,
5632 .panel-body:after,
5633 .modal-footer:after {
5633 .modal-footer:after {
5634 clear: both;
5634 clear: both;
5635 }
5635 }
5636 .center-block {
5636 .center-block {
5637 display: block;
5637 display: block;
5638 margin-left: auto;
5638 margin-left: auto;
5639 margin-right: auto;
5639 margin-right: auto;
5640 }
5640 }
5641 .pull-right {
5641 .pull-right {
5642 float: right !important;
5642 float: right !important;
5643 }
5643 }
5644 .pull-left {
5644 .pull-left {
5645 float: left !important;
5645 float: left !important;
5646 }
5646 }
5647 .hide {
5647 .hide {
5648 display: none !important;
5648 display: none !important;
5649 }
5649 }
5650 .show {
5650 .show {
5651 display: block !important;
5651 display: block !important;
5652 }
5652 }
5653 .invisible {
5653 .invisible {
5654 visibility: hidden;
5654 visibility: hidden;
5655 }
5655 }
5656 .text-hide {
5656 .text-hide {
5657 font: 0/0 a;
5657 font: 0/0 a;
5658 color: transparent;
5658 color: transparent;
5659 text-shadow: none;
5659 text-shadow: none;
5660 background-color: transparent;
5660 background-color: transparent;
5661 border: 0;
5661 border: 0;
5662 }
5662 }
5663 .hidden {
5663 .hidden {
5664 display: none !important;
5664 display: none !important;
5665 visibility: hidden !important;
5665 visibility: hidden !important;
5666 }
5666 }
5667 .affix {
5667 .affix {
5668 position: fixed;
5668 position: fixed;
5669 }
5669 }
5670 @-ms-viewport {
5670 @-ms-viewport {
5671 width: device-width;
5671 width: device-width;
5672 }
5672 }
5673 .visible-xs,
5673 .visible-xs,
5674 .visible-sm,
5674 .visible-sm,
5675 .visible-md,
5675 .visible-md,
5676 .visible-lg {
5676 .visible-lg {
5677 display: none !important;
5677 display: none !important;
5678 }
5678 }
5679 @media (max-width: 767px) {
5679 @media (max-width: 767px) {
5680 .visible-xs {
5680 .visible-xs {
5681 display: block !important;
5681 display: block !important;
5682 }
5682 }
5683 table.visible-xs {
5683 table.visible-xs {
5684 display: table;
5684 display: table;
5685 }
5685 }
5686 tr.visible-xs {
5686 tr.visible-xs {
5687 display: table-row !important;
5687 display: table-row !important;
5688 }
5688 }
5689 th.visible-xs,
5689 th.visible-xs,
5690 td.visible-xs {
5690 td.visible-xs {
5691 display: table-cell !important;
5691 display: table-cell !important;
5692 }
5692 }
5693 }
5693 }
5694 @media (min-width: 768px) and (max-width: 991px) {
5694 @media (min-width: 768px) and (max-width: 991px) {
5695 .visible-sm {
5695 .visible-sm {
5696 display: block !important;
5696 display: block !important;
5697 }
5697 }
5698 table.visible-sm {
5698 table.visible-sm {
5699 display: table;
5699 display: table;
5700 }
5700 }
5701 tr.visible-sm {
5701 tr.visible-sm {
5702 display: table-row !important;
5702 display: table-row !important;
5703 }
5703 }
5704 th.visible-sm,
5704 th.visible-sm,
5705 td.visible-sm {
5705 td.visible-sm {
5706 display: table-cell !important;
5706 display: table-cell !important;
5707 }
5707 }
5708 }
5708 }
5709 @media (min-width: 992px) and (max-width: 1199px) {
5709 @media (min-width: 992px) and (max-width: 1199px) {
5710 .visible-md {
5710 .visible-md {
5711 display: block !important;
5711 display: block !important;
5712 }
5712 }
5713 table.visible-md {
5713 table.visible-md {
5714 display: table;
5714 display: table;
5715 }
5715 }
5716 tr.visible-md {
5716 tr.visible-md {
5717 display: table-row !important;
5717 display: table-row !important;
5718 }
5718 }
5719 th.visible-md,
5719 th.visible-md,
5720 td.visible-md {
5720 td.visible-md {
5721 display: table-cell !important;
5721 display: table-cell !important;
5722 }
5722 }
5723 }
5723 }
5724 @media (min-width: 1200px) {
5724 @media (min-width: 1200px) {
5725 .visible-lg {
5725 .visible-lg {
5726 display: block !important;
5726 display: block !important;
5727 }
5727 }
5728 table.visible-lg {
5728 table.visible-lg {
5729 display: table;
5729 display: table;
5730 }
5730 }
5731 tr.visible-lg {
5731 tr.visible-lg {
5732 display: table-row !important;
5732 display: table-row !important;
5733 }
5733 }
5734 th.visible-lg,
5734 th.visible-lg,
5735 td.visible-lg {
5735 td.visible-lg {
5736 display: table-cell !important;
5736 display: table-cell !important;
5737 }
5737 }
5738 }
5738 }
5739 @media (max-width: 767px) {
5739 @media (max-width: 767px) {
5740 .hidden-xs {
5740 .hidden-xs {
5741 display: none !important;
5741 display: none !important;
5742 }
5742 }
5743 }
5743 }
5744 @media (min-width: 768px) and (max-width: 991px) {
5744 @media (min-width: 768px) and (max-width: 991px) {
5745 .hidden-sm {
5745 .hidden-sm {
5746 display: none !important;
5746 display: none !important;
5747 }
5747 }
5748 }
5748 }
5749 @media (min-width: 992px) and (max-width: 1199px) {
5749 @media (min-width: 992px) and (max-width: 1199px) {
5750 .hidden-md {
5750 .hidden-md {
5751 display: none !important;
5751 display: none !important;
5752 }
5752 }
5753 }
5753 }
5754 @media (min-width: 1200px) {
5754 @media (min-width: 1200px) {
5755 .hidden-lg {
5755 .hidden-lg {
5756 display: none !important;
5756 display: none !important;
5757 }
5757 }
5758 }
5758 }
5759 .visible-print {
5759 .visible-print {
5760 display: none !important;
5760 display: none !important;
5761 }
5761 }
5762 @media print {
5762 @media print {
5763 .visible-print {
5763 .visible-print {
5764 display: block !important;
5764 display: block !important;
5765 }
5765 }
5766 table.visible-print {
5766 table.visible-print {
5767 display: table;
5767 display: table;
5768 }
5768 }
5769 tr.visible-print {
5769 tr.visible-print {
5770 display: table-row !important;
5770 display: table-row !important;
5771 }
5771 }
5772 th.visible-print,
5772 th.visible-print,
5773 td.visible-print {
5773 td.visible-print {
5774 display: table-cell !important;
5774 display: table-cell !important;
5775 }
5775 }
5776 }
5776 }
5777 @media print {
5777 @media print {
5778 .hidden-print {
5778 .hidden-print {
5779 display: none !important;
5779 display: none !important;
5780 }
5780 }
5781 }
5781 }
5782 /*!
5782 /*!
5783 *
5783 *
5784 * Font Awesome
5784 * Font Awesome
5785 *
5785 *
5786 */
5786 */
5787 /*!
5787 /*!
5788 * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
5788 * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
5789 * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
5789 * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
5790 */
5790 */
5791 /* FONT PATH
5791 /* FONT PATH
5792 * -------------------------- */
5792 * -------------------------- */
5793 @font-face {
5793 @font-face {
5794 font-family: 'FontAwesome';
5794 font-family: 'FontAwesome';
5795 src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.1.0');
5795 src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.1.0');
5796 src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.1.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.1.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');
5796 src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.1.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.1.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');
5797 font-weight: normal;
5797 font-weight: normal;
5798 font-style: normal;
5798 font-style: normal;
5799 }
5799 }
5800 .fa {
5800 .fa {
5801 display: inline-block;
5801 display: inline-block;
5802 font-family: FontAwesome;
5802 font-family: FontAwesome;
5803 font-style: normal;
5803 font-style: normal;
5804 font-weight: normal;
5804 font-weight: normal;
5805 line-height: 1;
5805 line-height: 1;
5806 -webkit-font-smoothing: antialiased;
5806 -webkit-font-smoothing: antialiased;
5807 -moz-osx-font-smoothing: grayscale;
5807 -moz-osx-font-smoothing: grayscale;
5808 }
5808 }
5809 /* makes the font 33% larger relative to the icon container */
5809 /* makes the font 33% larger relative to the icon container */
5810 .fa-lg {
5810 .fa-lg {
5811 font-size: 1.33333333em;
5811 font-size: 1.33333333em;
5812 line-height: 0.75em;
5812 line-height: 0.75em;
5813 vertical-align: -15%;
5813 vertical-align: -15%;
5814 }
5814 }
5815 .fa-2x {
5815 .fa-2x {
5816 font-size: 2em;
5816 font-size: 2em;
5817 }
5817 }
5818 .fa-3x {
5818 .fa-3x {
5819 font-size: 3em;
5819 font-size: 3em;
5820 }
5820 }
5821 .fa-4x {
5821 .fa-4x {
5822 font-size: 4em;
5822 font-size: 4em;
5823 }
5823 }
5824 .fa-5x {
5824 .fa-5x {
5825 font-size: 5em;
5825 font-size: 5em;
5826 }
5826 }
5827 .fa-fw {
5827 .fa-fw {
5828 width: 1.28571429em;
5828 width: 1.28571429em;
5829 text-align: center;
5829 text-align: center;
5830 }
5830 }
5831 .fa-ul {
5831 .fa-ul {
5832 padding-left: 0;
5832 padding-left: 0;
5833 margin-left: 2.14285714em;
5833 margin-left: 2.14285714em;
5834 list-style-type: none;
5834 list-style-type: none;
5835 }
5835 }
5836 .fa-ul > li {
5836 .fa-ul > li {
5837 position: relative;
5837 position: relative;
5838 }
5838 }
5839 .fa-li {
5839 .fa-li {
5840 position: absolute;
5840 position: absolute;
5841 left: -2.14285714em;
5841 left: -2.14285714em;
5842 width: 2.14285714em;
5842 width: 2.14285714em;
5843 top: 0.14285714em;
5843 top: 0.14285714em;
5844 text-align: center;
5844 text-align: center;
5845 }
5845 }
5846 .fa-li.fa-lg {
5846 .fa-li.fa-lg {
5847 left: -1.85714286em;
5847 left: -1.85714286em;
5848 }
5848 }
5849 .fa-border {
5849 .fa-border {
5850 padding: .2em .25em .15em;
5850 padding: .2em .25em .15em;
5851 border: solid 0.08em #eeeeee;
5851 border: solid 0.08em #eeeeee;
5852 border-radius: .1em;
5852 border-radius: .1em;
5853 }
5853 }
5854 .pull-right {
5854 .pull-right {
5855 float: right;
5855 float: right;
5856 }
5856 }
5857 .pull-left {
5857 .pull-left {
5858 float: left;
5858 float: left;
5859 }
5859 }
5860 .fa.pull-left {
5860 .fa.pull-left {
5861 margin-right: .3em;
5861 margin-right: .3em;
5862 }
5862 }
5863 .fa.pull-right {
5863 .fa.pull-right {
5864 margin-left: .3em;
5864 margin-left: .3em;
5865 }
5865 }
5866 .fa-spin {
5866 .fa-spin {
5867 -webkit-animation: spin 2s infinite linear;
5867 -webkit-animation: spin 2s infinite linear;
5868 -moz-animation: spin 2s infinite linear;
5868 -moz-animation: spin 2s infinite linear;
5869 -o-animation: spin 2s infinite linear;
5869 -o-animation: spin 2s infinite linear;
5870 animation: spin 2s infinite linear;
5870 animation: spin 2s infinite linear;
5871 }
5871 }
5872 @-moz-keyframes spin {
5872 @-moz-keyframes spin {
5873 0% {
5873 0% {
5874 -moz-transform: rotate(0deg);
5874 -moz-transform: rotate(0deg);
5875 }
5875 }
5876 100% {
5876 100% {
5877 -moz-transform: rotate(359deg);
5877 -moz-transform: rotate(359deg);
5878 }
5878 }
5879 }
5879 }
5880 @-webkit-keyframes spin {
5880 @-webkit-keyframes spin {
5881 0% {
5881 0% {
5882 -webkit-transform: rotate(0deg);
5882 -webkit-transform: rotate(0deg);
5883 }
5883 }
5884 100% {
5884 100% {
5885 -webkit-transform: rotate(359deg);
5885 -webkit-transform: rotate(359deg);
5886 }
5886 }
5887 }
5887 }
5888 @-o-keyframes spin {
5888 @-o-keyframes spin {
5889 0% {
5889 0% {
5890 -o-transform: rotate(0deg);
5890 -o-transform: rotate(0deg);
5891 }
5891 }
5892 100% {
5892 100% {
5893 -o-transform: rotate(359deg);
5893 -o-transform: rotate(359deg);
5894 }
5894 }
5895 }
5895 }
5896 @keyframes spin {
5896 @keyframes spin {
5897 0% {
5897 0% {
5898 -webkit-transform: rotate(0deg);
5898 -webkit-transform: rotate(0deg);
5899 transform: rotate(0deg);
5899 transform: rotate(0deg);
5900 }
5900 }
5901 100% {
5901 100% {
5902 -webkit-transform: rotate(359deg);
5902 -webkit-transform: rotate(359deg);
5903 transform: rotate(359deg);
5903 transform: rotate(359deg);
5904 }
5904 }
5905 }
5905 }
5906 .fa-rotate-90 {
5906 .fa-rotate-90 {
5907 filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
5907 filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
5908 -webkit-transform: rotate(90deg);
5908 -webkit-transform: rotate(90deg);
5909 -moz-transform: rotate(90deg);
5909 -moz-transform: rotate(90deg);
5910 -ms-transform: rotate(90deg);
5910 -ms-transform: rotate(90deg);
5911 -o-transform: rotate(90deg);
5911 -o-transform: rotate(90deg);
5912 transform: rotate(90deg);
5912 transform: rotate(90deg);
5913 }
5913 }
5914 .fa-rotate-180 {
5914 .fa-rotate-180 {
5915 filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
5915 filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
5916 -webkit-transform: rotate(180deg);
5916 -webkit-transform: rotate(180deg);
5917 -moz-transform: rotate(180deg);
5917 -moz-transform: rotate(180deg);
5918 -ms-transform: rotate(180deg);
5918 -ms-transform: rotate(180deg);
5919 -o-transform: rotate(180deg);
5919 -o-transform: rotate(180deg);
5920 transform: rotate(180deg);
5920 transform: rotate(180deg);
5921 }
5921 }
5922 .fa-rotate-270 {
5922 .fa-rotate-270 {
5923 filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
5923 filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
5924 -webkit-transform: rotate(270deg);
5924 -webkit-transform: rotate(270deg);
5925 -moz-transform: rotate(270deg);
5925 -moz-transform: rotate(270deg);
5926 -ms-transform: rotate(270deg);
5926 -ms-transform: rotate(270deg);
5927 -o-transform: rotate(270deg);
5927 -o-transform: rotate(270deg);
5928 transform: rotate(270deg);
5928 transform: rotate(270deg);
5929 }
5929 }
5930 .fa-flip-horizontal {
5930 .fa-flip-horizontal {
5931 filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
5931 filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
5932 -webkit-transform: scale(-1, 1);
5932 -webkit-transform: scale(-1, 1);
5933 -moz-transform: scale(-1, 1);
5933 -moz-transform: scale(-1, 1);
5934 -ms-transform: scale(-1, 1);
5934 -ms-transform: scale(-1, 1);
5935 -o-transform: scale(-1, 1);
5935 -o-transform: scale(-1, 1);
5936 transform: scale(-1, 1);
5936 transform: scale(-1, 1);
5937 }
5937 }
5938 .fa-flip-vertical {
5938 .fa-flip-vertical {
5939 filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
5939 filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
5940 -webkit-transform: scale(1, -1);
5940 -webkit-transform: scale(1, -1);
5941 -moz-transform: scale(1, -1);
5941 -moz-transform: scale(1, -1);
5942 -ms-transform: scale(1, -1);
5942 -ms-transform: scale(1, -1);
5943 -o-transform: scale(1, -1);
5943 -o-transform: scale(1, -1);
5944 transform: scale(1, -1);
5944 transform: scale(1, -1);
5945 }
5945 }
5946 .fa-stack {
5946 .fa-stack {
5947 position: relative;
5947 position: relative;
5948 display: inline-block;
5948 display: inline-block;
5949 width: 2em;
5949 width: 2em;
5950 height: 2em;
5950 height: 2em;
5951 line-height: 2em;
5951 line-height: 2em;
5952 vertical-align: middle;
5952 vertical-align: middle;
5953 }
5953 }
5954 .fa-stack-1x,
5954 .fa-stack-1x,
5955 .fa-stack-2x {
5955 .fa-stack-2x {
5956 position: absolute;
5956 position: absolute;
5957 left: 0;
5957 left: 0;
5958 width: 100%;
5958 width: 100%;
5959 text-align: center;
5959 text-align: center;
5960 }
5960 }
5961 .fa-stack-1x {
5961 .fa-stack-1x {
5962 line-height: inherit;
5962 line-height: inherit;
5963 }
5963 }
5964 .fa-stack-2x {
5964 .fa-stack-2x {
5965 font-size: 2em;
5965 font-size: 2em;
5966 }
5966 }
5967 .fa-inverse {
5967 .fa-inverse {
5968 color: #ffffff;
5968 color: #ffffff;
5969 }
5969 }
5970 /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
5970 /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
5971 readers do not read off random characters that represent icons */
5971 readers do not read off random characters that represent icons */
5972 .fa-glass:before {
5972 .fa-glass:before {
5973 content: "\f000";
5973 content: "\f000";
5974 }
5974 }
5975 .fa-music:before {
5975 .fa-music:before {
5976 content: "\f001";
5976 content: "\f001";
5977 }
5977 }
5978 .fa-search:before {
5978 .fa-search:before {
5979 content: "\f002";
5979 content: "\f002";
5980 }
5980 }
5981 .fa-envelope-o:before {
5981 .fa-envelope-o:before {
5982 content: "\f003";
5982 content: "\f003";
5983 }
5983 }
5984 .fa-heart:before {
5984 .fa-heart:before {
5985 content: "\f004";
5985 content: "\f004";
5986 }
5986 }
5987 .fa-star:before {
5987 .fa-star:before {
5988 content: "\f005";
5988 content: "\f005";
5989 }
5989 }
5990 .fa-star-o:before {
5990 .fa-star-o:before {
5991 content: "\f006";
5991 content: "\f006";
5992 }
5992 }
5993 .fa-user:before {
5993 .fa-user:before {
5994 content: "\f007";
5994 content: "\f007";
5995 }
5995 }
5996 .fa-film:before {
5996 .fa-film:before {
5997 content: "\f008";
5997 content: "\f008";
5998 }
5998 }
5999 .fa-th-large:before {
5999 .fa-th-large:before {
6000 content: "\f009";
6000 content: "\f009";
6001 }
6001 }
6002 .fa-th:before {
6002 .fa-th:before {
6003 content: "\f00a";
6003 content: "\f00a";
6004 }
6004 }
6005 .fa-th-list:before {
6005 .fa-th-list:before {
6006 content: "\f00b";
6006 content: "\f00b";
6007 }
6007 }
6008 .fa-check:before {
6008 .fa-check:before {
6009 content: "\f00c";
6009 content: "\f00c";
6010 }
6010 }
6011 .fa-times:before {
6011 .fa-times:before {
6012 content: "\f00d";
6012 content: "\f00d";
6013 }
6013 }
6014 .fa-search-plus:before {
6014 .fa-search-plus:before {
6015 content: "\f00e";
6015 content: "\f00e";
6016 }
6016 }
6017 .fa-search-minus:before {
6017 .fa-search-minus:before {
6018 content: "\f010";
6018 content: "\f010";
6019 }
6019 }
6020 .fa-power-off:before {
6020 .fa-power-off:before {
6021 content: "\f011";
6021 content: "\f011";
6022 }
6022 }
6023 .fa-signal:before {
6023 .fa-signal:before {
6024 content: "\f012";
6024 content: "\f012";
6025 }
6025 }
6026 .fa-gear:before,
6026 .fa-gear:before,
6027 .fa-cog:before {
6027 .fa-cog:before {
6028 content: "\f013";
6028 content: "\f013";
6029 }
6029 }
6030 .fa-trash-o:before {
6030 .fa-trash-o:before {
6031 content: "\f014";
6031 content: "\f014";
6032 }
6032 }
6033 .fa-home:before {
6033 .fa-home:before {
6034 content: "\f015";
6034 content: "\f015";
6035 }
6035 }
6036 .fa-file-o:before {
6036 .fa-file-o:before {
6037 content: "\f016";
6037 content: "\f016";
6038 }
6038 }
6039 .fa-clock-o:before {
6039 .fa-clock-o:before {
6040 content: "\f017";
6040 content: "\f017";
6041 }
6041 }
6042 .fa-road:before {
6042 .fa-road:before {
6043 content: "\f018";
6043 content: "\f018";
6044 }
6044 }
6045 .fa-download:before {
6045 .fa-download:before {
6046 content: "\f019";
6046 content: "\f019";
6047 }
6047 }
6048 .fa-arrow-circle-o-down:before {
6048 .fa-arrow-circle-o-down:before {
6049 content: "\f01a";
6049 content: "\f01a";
6050 }
6050 }
6051 .fa-arrow-circle-o-up:before {
6051 .fa-arrow-circle-o-up:before {
6052 content: "\f01b";
6052 content: "\f01b";
6053 }
6053 }
6054 .fa-inbox:before {
6054 .fa-inbox:before {
6055 content: "\f01c";
6055 content: "\f01c";
6056 }
6056 }
6057 .fa-play-circle-o:before {
6057 .fa-play-circle-o:before {
6058 content: "\f01d";
6058 content: "\f01d";
6059 }
6059 }
6060 .fa-rotate-right:before,
6060 .fa-rotate-right:before,
6061 .fa-repeat:before {
6061 .fa-repeat:before {
6062 content: "\f01e";
6062 content: "\f01e";
6063 }
6063 }
6064 .fa-refresh:before {
6064 .fa-refresh:before {
6065 content: "\f021";
6065 content: "\f021";
6066 }
6066 }
6067 .fa-list-alt:before {
6067 .fa-list-alt:before {
6068 content: "\f022";
6068 content: "\f022";
6069 }
6069 }
6070 .fa-lock:before {
6070 .fa-lock:before {
6071 content: "\f023";
6071 content: "\f023";
6072 }
6072 }
6073 .fa-flag:before {
6073 .fa-flag:before {
6074 content: "\f024";
6074 content: "\f024";
6075 }
6075 }
6076 .fa-headphones:before {
6076 .fa-headphones:before {
6077 content: "\f025";
6077 content: "\f025";
6078 }
6078 }
6079 .fa-volume-off:before {
6079 .fa-volume-off:before {
6080 content: "\f026";
6080 content: "\f026";
6081 }
6081 }
6082 .fa-volume-down:before {
6082 .fa-volume-down:before {
6083 content: "\f027";
6083 content: "\f027";
6084 }
6084 }
6085 .fa-volume-up:before {
6085 .fa-volume-up:before {
6086 content: "\f028";
6086 content: "\f028";
6087 }
6087 }
6088 .fa-qrcode:before {
6088 .fa-qrcode:before {
6089 content: "\f029";
6089 content: "\f029";
6090 }
6090 }
6091 .fa-barcode:before {
6091 .fa-barcode:before {
6092 content: "\f02a";
6092 content: "\f02a";
6093 }
6093 }
6094 .fa-tag:before {
6094 .fa-tag:before {
6095 content: "\f02b";
6095 content: "\f02b";
6096 }
6096 }
6097 .fa-tags:before {
6097 .fa-tags:before {
6098 content: "\f02c";
6098 content: "\f02c";
6099 }
6099 }
6100 .fa-book:before {
6100 .fa-book:before {
6101 content: "\f02d";
6101 content: "\f02d";
6102 }
6102 }
6103 .fa-bookmark:before {
6103 .fa-bookmark:before {
6104 content: "\f02e";
6104 content: "\f02e";
6105 }
6105 }
6106 .fa-print:before {
6106 .fa-print:before {
6107 content: "\f02f";
6107 content: "\f02f";
6108 }
6108 }
6109 .fa-camera:before {
6109 .fa-camera:before {
6110 content: "\f030";
6110 content: "\f030";
6111 }
6111 }
6112 .fa-font:before {
6112 .fa-font:before {
6113 content: "\f031";
6113 content: "\f031";
6114 }
6114 }
6115 .fa-bold:before {
6115 .fa-bold:before {
6116 content: "\f032";
6116 content: "\f032";
6117 }
6117 }
6118 .fa-italic:before {
6118 .fa-italic:before {
6119 content: "\f033";
6119 content: "\f033";
6120 }
6120 }
6121 .fa-text-height:before {
6121 .fa-text-height:before {
6122 content: "\f034";
6122 content: "\f034";
6123 }
6123 }
6124 .fa-text-width:before {
6124 .fa-text-width:before {
6125 content: "\f035";
6125 content: "\f035";
6126 }
6126 }
6127 .fa-align-left:before {
6127 .fa-align-left:before {
6128 content: "\f036";
6128 content: "\f036";
6129 }
6129 }
6130 .fa-align-center:before {
6130 .fa-align-center:before {
6131 content: "\f037";
6131 content: "\f037";
6132 }
6132 }
6133 .fa-align-right:before {
6133 .fa-align-right:before {
6134 content: "\f038";
6134 content: "\f038";
6135 }
6135 }
6136 .fa-align-justify:before {
6136 .fa-align-justify:before {
6137 content: "\f039";
6137 content: "\f039";
6138 }
6138 }
6139 .fa-list:before {
6139 .fa-list:before {
6140 content: "\f03a";
6140 content: "\f03a";
6141 }
6141 }
6142 .fa-dedent:before,
6142 .fa-dedent:before,
6143 .fa-outdent:before {
6143 .fa-outdent:before {
6144 content: "\f03b";
6144 content: "\f03b";
6145 }
6145 }
6146 .fa-indent:before {
6146 .fa-indent:before {
6147 content: "\f03c";
6147 content: "\f03c";
6148 }
6148 }
6149 .fa-video-camera:before {
6149 .fa-video-camera:before {
6150 content: "\f03d";
6150 content: "\f03d";
6151 }
6151 }
6152 .fa-photo:before,
6152 .fa-photo:before,
6153 .fa-image:before,
6153 .fa-image:before,
6154 .fa-picture-o:before {
6154 .fa-picture-o:before {
6155 content: "\f03e";
6155 content: "\f03e";
6156 }
6156 }
6157 .fa-pencil:before {
6157 .fa-pencil:before {
6158 content: "\f040";
6158 content: "\f040";
6159 }
6159 }
6160 .fa-map-marker:before {
6160 .fa-map-marker:before {
6161 content: "\f041";
6161 content: "\f041";
6162 }
6162 }
6163 .fa-adjust:before {
6163 .fa-adjust:before {
6164 content: "\f042";
6164 content: "\f042";
6165 }
6165 }
6166 .fa-tint:before {
6166 .fa-tint:before {
6167 content: "\f043";
6167 content: "\f043";
6168 }
6168 }
6169 .fa-edit:before,
6169 .fa-edit:before,
6170 .fa-pencil-square-o:before {
6170 .fa-pencil-square-o:before {
6171 content: "\f044";
6171 content: "\f044";
6172 }
6172 }
6173 .fa-share-square-o:before {
6173 .fa-share-square-o:before {
6174 content: "\f045";
6174 content: "\f045";
6175 }
6175 }
6176 .fa-check-square-o:before {
6176 .fa-check-square-o:before {
6177 content: "\f046";
6177 content: "\f046";
6178 }
6178 }
6179 .fa-arrows:before {
6179 .fa-arrows:before {
6180 content: "\f047";
6180 content: "\f047";
6181 }
6181 }
6182 .fa-step-backward:before {
6182 .fa-step-backward:before {
6183 content: "\f048";
6183 content: "\f048";
6184 }
6184 }
6185 .fa-fast-backward:before {
6185 .fa-fast-backward:before {
6186 content: "\f049";
6186 content: "\f049";
6187 }
6187 }
6188 .fa-backward:before {
6188 .fa-backward:before {
6189 content: "\f04a";
6189 content: "\f04a";
6190 }
6190 }
6191 .fa-play:before {
6191 .fa-play:before {
6192 content: "\f04b";
6192 content: "\f04b";
6193 }
6193 }
6194 .fa-pause:before {
6194 .fa-pause:before {
6195 content: "\f04c";
6195 content: "\f04c";
6196 }
6196 }
6197 .fa-stop:before {
6197 .fa-stop:before {
6198 content: "\f04d";
6198 content: "\f04d";
6199 }
6199 }
6200 .fa-forward:before {
6200 .fa-forward:before {
6201 content: "\f04e";
6201 content: "\f04e";
6202 }
6202 }
6203 .fa-fast-forward:before {
6203 .fa-fast-forward:before {
6204 content: "\f050";
6204 content: "\f050";
6205 }
6205 }
6206 .fa-step-forward:before {
6206 .fa-step-forward:before {
6207 content: "\f051";
6207 content: "\f051";
6208 }
6208 }
6209 .fa-eject:before {
6209 .fa-eject:before {
6210 content: "\f052";
6210 content: "\f052";
6211 }
6211 }
6212 .fa-chevron-left:before {
6212 .fa-chevron-left:before {
6213 content: "\f053";
6213 content: "\f053";
6214 }
6214 }
6215 .fa-chevron-right:before {
6215 .fa-chevron-right:before {
6216 content: "\f054";
6216 content: "\f054";
6217 }
6217 }
6218 .fa-plus-circle:before {
6218 .fa-plus-circle:before {
6219 content: "\f055";
6219 content: "\f055";
6220 }
6220 }
6221 .fa-minus-circle:before {
6221 .fa-minus-circle:before {
6222 content: "\f056";
6222 content: "\f056";
6223 }
6223 }
6224 .fa-times-circle:before {
6224 .fa-times-circle:before {
6225 content: "\f057";
6225 content: "\f057";
6226 }
6226 }
6227 .fa-check-circle:before {
6227 .fa-check-circle:before {
6228 content: "\f058";
6228 content: "\f058";
6229 }
6229 }
6230 .fa-question-circle:before {
6230 .fa-question-circle:before {
6231 content: "\f059";
6231 content: "\f059";
6232 }
6232 }
6233 .fa-info-circle:before {
6233 .fa-info-circle:before {
6234 content: "\f05a";
6234 content: "\f05a";
6235 }
6235 }
6236 .fa-crosshairs:before {
6236 .fa-crosshairs:before {
6237 content: "\f05b";
6237 content: "\f05b";
6238 }
6238 }
6239 .fa-times-circle-o:before {
6239 .fa-times-circle-o:before {
6240 content: "\f05c";
6240 content: "\f05c";
6241 }
6241 }
6242 .fa-check-circle-o:before {
6242 .fa-check-circle-o:before {
6243 content: "\f05d";
6243 content: "\f05d";
6244 }
6244 }
6245 .fa-ban:before {
6245 .fa-ban:before {
6246 content: "\f05e";
6246 content: "\f05e";
6247 }
6247 }
6248 .fa-arrow-left:before {
6248 .fa-arrow-left:before {
6249 content: "\f060";
6249 content: "\f060";
6250 }
6250 }
6251 .fa-arrow-right:before {
6251 .fa-arrow-right:before {
6252 content: "\f061";
6252 content: "\f061";
6253 }
6253 }
6254 .fa-arrow-up:before {
6254 .fa-arrow-up:before {
6255 content: "\f062";
6255 content: "\f062";
6256 }
6256 }
6257 .fa-arrow-down:before {
6257 .fa-arrow-down:before {
6258 content: "\f063";
6258 content: "\f063";
6259 }
6259 }
6260 .fa-mail-forward:before,
6260 .fa-mail-forward:before,
6261 .fa-share:before {
6261 .fa-share:before {
6262 content: "\f064";
6262 content: "\f064";
6263 }
6263 }
6264 .fa-expand:before {
6264 .fa-expand:before {
6265 content: "\f065";
6265 content: "\f065";
6266 }
6266 }
6267 .fa-compress:before {
6267 .fa-compress:before {
6268 content: "\f066";
6268 content: "\f066";
6269 }
6269 }
6270 .fa-plus:before {
6270 .fa-plus:before {
6271 content: "\f067";
6271 content: "\f067";
6272 }
6272 }
6273 .fa-minus:before {
6273 .fa-minus:before {
6274 content: "\f068";
6274 content: "\f068";
6275 }
6275 }
6276 .fa-asterisk:before {
6276 .fa-asterisk:before {
6277 content: "\f069";
6277 content: "\f069";
6278 }
6278 }
6279 .fa-exclamation-circle:before {
6279 .fa-exclamation-circle:before {
6280 content: "\f06a";
6280 content: "\f06a";
6281 }
6281 }
6282 .fa-gift:before {
6282 .fa-gift:before {
6283 content: "\f06b";
6283 content: "\f06b";
6284 }
6284 }
6285 .fa-leaf:before {
6285 .fa-leaf:before {
6286 content: "\f06c";
6286 content: "\f06c";
6287 }
6287 }
6288 .fa-fire:before {
6288 .fa-fire:before {
6289 content: "\f06d";
6289 content: "\f06d";
6290 }
6290 }
6291 .fa-eye:before {
6291 .fa-eye:before {
6292 content: "\f06e";
6292 content: "\f06e";
6293 }
6293 }
6294 .fa-eye-slash:before {
6294 .fa-eye-slash:before {
6295 content: "\f070";
6295 content: "\f070";
6296 }
6296 }
6297 .fa-warning:before,
6297 .fa-warning:before,
6298 .fa-exclamation-triangle:before {
6298 .fa-exclamation-triangle:before {
6299 content: "\f071";
6299 content: "\f071";
6300 }
6300 }
6301 .fa-plane:before {
6301 .fa-plane:before {
6302 content: "\f072";
6302 content: "\f072";
6303 }
6303 }
6304 .fa-calendar:before {
6304 .fa-calendar:before {
6305 content: "\f073";
6305 content: "\f073";
6306 }
6306 }
6307 .fa-random:before {
6307 .fa-random:before {
6308 content: "\f074";
6308 content: "\f074";
6309 }
6309 }
6310 .fa-comment:before {
6310 .fa-comment:before {
6311 content: "\f075";
6311 content: "\f075";
6312 }
6312 }
6313 .fa-magnet:before {
6313 .fa-magnet:before {
6314 content: "\f076";
6314 content: "\f076";
6315 }
6315 }
6316 .fa-chevron-up:before {
6316 .fa-chevron-up:before {
6317 content: "\f077";
6317 content: "\f077";
6318 }
6318 }
6319 .fa-chevron-down:before {
6319 .fa-chevron-down:before {
6320 content: "\f078";
6320 content: "\f078";
6321 }
6321 }
6322 .fa-retweet:before {
6322 .fa-retweet:before {
6323 content: "\f079";
6323 content: "\f079";
6324 }
6324 }
6325 .fa-shopping-cart:before {
6325 .fa-shopping-cart:before {
6326 content: "\f07a";
6326 content: "\f07a";
6327 }
6327 }
6328 .fa-folder:before {
6328 .fa-folder:before {
6329 content: "\f07b";
6329 content: "\f07b";
6330 }
6330 }
6331 .fa-folder-open:before {
6331 .fa-folder-open:before {
6332 content: "\f07c";
6332 content: "\f07c";
6333 }
6333 }
6334 .fa-arrows-v:before {
6334 .fa-arrows-v:before {
6335 content: "\f07d";
6335 content: "\f07d";
6336 }
6336 }
6337 .fa-arrows-h:before {
6337 .fa-arrows-h:before {
6338 content: "\f07e";
6338 content: "\f07e";
6339 }
6339 }
6340 .fa-bar-chart-o:before {
6340 .fa-bar-chart-o:before {
6341 content: "\f080";
6341 content: "\f080";
6342 }
6342 }
6343 .fa-twitter-square:before {
6343 .fa-twitter-square:before {
6344 content: "\f081";
6344 content: "\f081";
6345 }
6345 }
6346 .fa-facebook-square:before {
6346 .fa-facebook-square:before {
6347 content: "\f082";
6347 content: "\f082";
6348 }
6348 }
6349 .fa-camera-retro:before {
6349 .fa-camera-retro:before {
6350 content: "\f083";
6350 content: "\f083";
6351 }
6351 }
6352 .fa-key:before {
6352 .fa-key:before {
6353 content: "\f084";
6353 content: "\f084";
6354 }
6354 }
6355 .fa-gears:before,
6355 .fa-gears:before,
6356 .fa-cogs:before {
6356 .fa-cogs:before {
6357 content: "\f085";
6357 content: "\f085";
6358 }
6358 }
6359 .fa-comments:before {
6359 .fa-comments:before {
6360 content: "\f086";
6360 content: "\f086";
6361 }
6361 }
6362 .fa-thumbs-o-up:before {
6362 .fa-thumbs-o-up:before {
6363 content: "\f087";
6363 content: "\f087";
6364 }
6364 }
6365 .fa-thumbs-o-down:before {
6365 .fa-thumbs-o-down:before {
6366 content: "\f088";
6366 content: "\f088";
6367 }
6367 }
6368 .fa-star-half:before {
6368 .fa-star-half:before {
6369 content: "\f089";
6369 content: "\f089";
6370 }
6370 }
6371 .fa-heart-o:before {
6371 .fa-heart-o:before {
6372 content: "\f08a";
6372 content: "\f08a";
6373 }
6373 }
6374 .fa-sign-out:before {
6374 .fa-sign-out:before {
6375 content: "\f08b";
6375 content: "\f08b";
6376 }
6376 }
6377 .fa-linkedin-square:before {
6377 .fa-linkedin-square:before {
6378 content: "\f08c";
6378 content: "\f08c";
6379 }
6379 }
6380 .fa-thumb-tack:before {
6380 .fa-thumb-tack:before {
6381 content: "\f08d";
6381 content: "\f08d";
6382 }
6382 }
6383 .fa-external-link:before {
6383 .fa-external-link:before {
6384 content: "\f08e";
6384 content: "\f08e";
6385 }
6385 }
6386 .fa-sign-in:before {
6386 .fa-sign-in:before {
6387 content: "\f090";
6387 content: "\f090";
6388 }
6388 }
6389 .fa-trophy:before {
6389 .fa-trophy:before {
6390 content: "\f091";
6390 content: "\f091";
6391 }
6391 }
6392 .fa-github-square:before {
6392 .fa-github-square:before {
6393 content: "\f092";
6393 content: "\f092";
6394 }
6394 }
6395 .fa-upload:before {
6395 .fa-upload:before {
6396 content: "\f093";
6396 content: "\f093";
6397 }
6397 }
6398 .fa-lemon-o:before {
6398 .fa-lemon-o:before {
6399 content: "\f094";
6399 content: "\f094";
6400 }
6400 }
6401 .fa-phone:before {
6401 .fa-phone:before {
6402 content: "\f095";
6402 content: "\f095";
6403 }
6403 }
6404 .fa-square-o:before {
6404 .fa-square-o:before {
6405 content: "\f096";
6405 content: "\f096";
6406 }
6406 }
6407 .fa-bookmark-o:before {
6407 .fa-bookmark-o:before {
6408 content: "\f097";
6408 content: "\f097";
6409 }
6409 }
6410 .fa-phone-square:before {
6410 .fa-phone-square:before {
6411 content: "\f098";
6411 content: "\f098";
6412 }
6412 }
6413 .fa-twitter:before {
6413 .fa-twitter:before {
6414 content: "\f099";
6414 content: "\f099";
6415 }
6415 }
6416 .fa-facebook:before {
6416 .fa-facebook:before {
6417 content: "\f09a";
6417 content: "\f09a";
6418 }
6418 }
6419 .fa-github:before {
6419 .fa-github:before {
6420 content: "\f09b";
6420 content: "\f09b";
6421 }
6421 }
6422 .fa-unlock:before {
6422 .fa-unlock:before {
6423 content: "\f09c";
6423 content: "\f09c";
6424 }
6424 }
6425 .fa-credit-card:before {
6425 .fa-credit-card:before {
6426 content: "\f09d";
6426 content: "\f09d";
6427 }
6427 }
6428 .fa-rss:before {
6428 .fa-rss:before {
6429 content: "\f09e";
6429 content: "\f09e";
6430 }
6430 }
6431 .fa-hdd-o:before {
6431 .fa-hdd-o:before {
6432 content: "\f0a0";
6432 content: "\f0a0";
6433 }
6433 }
6434 .fa-bullhorn:before {
6434 .fa-bullhorn:before {
6435 content: "\f0a1";
6435 content: "\f0a1";
6436 }
6436 }
6437 .fa-bell:before {
6437 .fa-bell:before {
6438 content: "\f0f3";
6438 content: "\f0f3";
6439 }
6439 }
6440 .fa-certificate:before {
6440 .fa-certificate:before {
6441 content: "\f0a3";
6441 content: "\f0a3";
6442 }
6442 }
6443 .fa-hand-o-right:before {
6443 .fa-hand-o-right:before {
6444 content: "\f0a4";
6444 content: "\f0a4";
6445 }
6445 }
6446 .fa-hand-o-left:before {
6446 .fa-hand-o-left:before {
6447 content: "\f0a5";
6447 content: "\f0a5";
6448 }
6448 }
6449 .fa-hand-o-up:before {
6449 .fa-hand-o-up:before {
6450 content: "\f0a6";
6450 content: "\f0a6";
6451 }
6451 }
6452 .fa-hand-o-down:before {
6452 .fa-hand-o-down:before {
6453 content: "\f0a7";
6453 content: "\f0a7";
6454 }
6454 }
6455 .fa-arrow-circle-left:before {
6455 .fa-arrow-circle-left:before {
6456 content: "\f0a8";
6456 content: "\f0a8";
6457 }
6457 }
6458 .fa-arrow-circle-right:before {
6458 .fa-arrow-circle-right:before {
6459 content: "\f0a9";
6459 content: "\f0a9";
6460 }
6460 }
6461 .fa-arrow-circle-up:before {
6461 .fa-arrow-circle-up:before {
6462 content: "\f0aa";
6462 content: "\f0aa";
6463 }
6463 }
6464 .fa-arrow-circle-down:before {
6464 .fa-arrow-circle-down:before {
6465 content: "\f0ab";
6465 content: "\f0ab";
6466 }
6466 }
6467 .fa-globe:before {
6467 .fa-globe:before {
6468 content: "\f0ac";
6468 content: "\f0ac";
6469 }
6469 }
6470 .fa-wrench:before {
6470 .fa-wrench:before {
6471 content: "\f0ad";
6471 content: "\f0ad";
6472 }
6472 }
6473 .fa-tasks:before {
6473 .fa-tasks:before {
6474 content: "\f0ae";
6474 content: "\f0ae";
6475 }
6475 }
6476 .fa-filter:before {
6476 .fa-filter:before {
6477 content: "\f0b0";
6477 content: "\f0b0";
6478 }
6478 }
6479 .fa-briefcase:before {
6479 .fa-briefcase:before {
6480 content: "\f0b1";
6480 content: "\f0b1";
6481 }
6481 }
6482 .fa-arrows-alt:before {
6482 .fa-arrows-alt:before {
6483 content: "\f0b2";
6483 content: "\f0b2";
6484 }
6484 }
6485 .fa-group:before,
6485 .fa-group:before,
6486 .fa-users:before {
6486 .fa-users:before {
6487 content: "\f0c0";
6487 content: "\f0c0";
6488 }
6488 }
6489 .fa-chain:before,
6489 .fa-chain:before,
6490 .fa-link:before {
6490 .fa-link:before {
6491 content: "\f0c1";
6491 content: "\f0c1";
6492 }
6492 }
6493 .fa-cloud:before {
6493 .fa-cloud:before {
6494 content: "\f0c2";
6494 content: "\f0c2";
6495 }
6495 }
6496 .fa-flask:before {
6496 .fa-flask:before {
6497 content: "\f0c3";
6497 content: "\f0c3";
6498 }
6498 }
6499 .fa-cut:before,
6499 .fa-cut:before,
6500 .fa-scissors:before {
6500 .fa-scissors:before {
6501 content: "\f0c4";
6501 content: "\f0c4";
6502 }
6502 }
6503 .fa-copy:before,
6503 .fa-copy:before,
6504 .fa-files-o:before {
6504 .fa-files-o:before {
6505 content: "\f0c5";
6505 content: "\f0c5";
6506 }
6506 }
6507 .fa-paperclip:before {
6507 .fa-paperclip:before {
6508 content: "\f0c6";
6508 content: "\f0c6";
6509 }
6509 }
6510 .fa-save:before,
6510 .fa-save:before,
6511 .fa-floppy-o:before {
6511 .fa-floppy-o:before {
6512 content: "\f0c7";
6512 content: "\f0c7";
6513 }
6513 }
6514 .fa-square:before {
6514 .fa-square:before {
6515 content: "\f0c8";
6515 content: "\f0c8";
6516 }
6516 }
6517 .fa-navicon:before,
6517 .fa-navicon:before,
6518 .fa-reorder:before,
6518 .fa-reorder:before,
6519 .fa-bars:before {
6519 .fa-bars:before {
6520 content: "\f0c9";
6520 content: "\f0c9";
6521 }
6521 }
6522 .fa-list-ul:before {
6522 .fa-list-ul:before {
6523 content: "\f0ca";
6523 content: "\f0ca";
6524 }
6524 }
6525 .fa-list-ol:before {
6525 .fa-list-ol:before {
6526 content: "\f0cb";
6526 content: "\f0cb";
6527 }
6527 }
6528 .fa-strikethrough:before {
6528 .fa-strikethrough:before {
6529 content: "\f0cc";
6529 content: "\f0cc";
6530 }
6530 }
6531 .fa-underline:before {
6531 .fa-underline:before {
6532 content: "\f0cd";
6532 content: "\f0cd";
6533 }
6533 }
6534 .fa-table:before {
6534 .fa-table:before {
6535 content: "\f0ce";
6535 content: "\f0ce";
6536 }
6536 }
6537 .fa-magic:before {
6537 .fa-magic:before {
6538 content: "\f0d0";
6538 content: "\f0d0";
6539 }
6539 }
6540 .fa-truck:before {
6540 .fa-truck:before {
6541 content: "\f0d1";
6541 content: "\f0d1";
6542 }
6542 }
6543 .fa-pinterest:before {
6543 .fa-pinterest:before {
6544 content: "\f0d2";
6544 content: "\f0d2";
6545 }
6545 }
6546 .fa-pinterest-square:before {
6546 .fa-pinterest-square:before {
6547 content: "\f0d3";
6547 content: "\f0d3";
6548 }
6548 }
6549 .fa-google-plus-square:before {
6549 .fa-google-plus-square:before {
6550 content: "\f0d4";
6550 content: "\f0d4";
6551 }
6551 }
6552 .fa-google-plus:before {
6552 .fa-google-plus:before {
6553 content: "\f0d5";
6553 content: "\f0d5";
6554 }
6554 }
6555 .fa-money:before {
6555 .fa-money:before {
6556 content: "\f0d6";
6556 content: "\f0d6";
6557 }
6557 }
6558 .fa-caret-down:before {
6558 .fa-caret-down:before {
6559 content: "\f0d7";
6559 content: "\f0d7";
6560 }
6560 }
6561 .fa-caret-up:before {
6561 .fa-caret-up:before {
6562 content: "\f0d8";
6562 content: "\f0d8";
6563 }
6563 }
6564 .fa-caret-left:before {
6564 .fa-caret-left:before {
6565 content: "\f0d9";
6565 content: "\f0d9";
6566 }
6566 }
6567 .fa-caret-right:before {
6567 .fa-caret-right:before {
6568 content: "\f0da";
6568 content: "\f0da";
6569 }
6569 }
6570 .fa-columns:before {
6570 .fa-columns:before {
6571 content: "\f0db";
6571 content: "\f0db";
6572 }
6572 }
6573 .fa-unsorted:before,
6573 .fa-unsorted:before,
6574 .fa-sort:before {
6574 .fa-sort:before {
6575 content: "\f0dc";
6575 content: "\f0dc";
6576 }
6576 }
6577 .fa-sort-down:before,
6577 .fa-sort-down:before,
6578 .fa-sort-desc:before {
6578 .fa-sort-desc:before {
6579 content: "\f0dd";
6579 content: "\f0dd";
6580 }
6580 }
6581 .fa-sort-up:before,
6581 .fa-sort-up:before,
6582 .fa-sort-asc:before {
6582 .fa-sort-asc:before {
6583 content: "\f0de";
6583 content: "\f0de";
6584 }
6584 }
6585 .fa-envelope:before {
6585 .fa-envelope:before {
6586 content: "\f0e0";
6586 content: "\f0e0";
6587 }
6587 }
6588 .fa-linkedin:before {
6588 .fa-linkedin:before {
6589 content: "\f0e1";
6589 content: "\f0e1";
6590 }
6590 }
6591 .fa-rotate-left:before,
6591 .fa-rotate-left:before,
6592 .fa-undo:before {
6592 .fa-undo:before {
6593 content: "\f0e2";
6593 content: "\f0e2";
6594 }
6594 }
6595 .fa-legal:before,
6595 .fa-legal:before,
6596 .fa-gavel:before {
6596 .fa-gavel:before {
6597 content: "\f0e3";
6597 content: "\f0e3";
6598 }
6598 }
6599 .fa-dashboard:before,
6599 .fa-dashboard:before,
6600 .fa-tachometer:before {
6600 .fa-tachometer:before {
6601 content: "\f0e4";
6601 content: "\f0e4";
6602 }
6602 }
6603 .fa-comment-o:before {
6603 .fa-comment-o:before {
6604 content: "\f0e5";
6604 content: "\f0e5";
6605 }
6605 }
6606 .fa-comments-o:before {
6606 .fa-comments-o:before {
6607 content: "\f0e6";
6607 content: "\f0e6";
6608 }
6608 }
6609 .fa-flash:before,
6609 .fa-flash:before,
6610 .fa-bolt:before {
6610 .fa-bolt:before {
6611 content: "\f0e7";
6611 content: "\f0e7";
6612 }
6612 }
6613 .fa-sitemap:before {
6613 .fa-sitemap:before {
6614 content: "\f0e8";
6614 content: "\f0e8";
6615 }
6615 }
6616 .fa-umbrella:before {
6616 .fa-umbrella:before {
6617 content: "\f0e9";
6617 content: "\f0e9";
6618 }
6618 }
6619 .fa-paste:before,
6619 .fa-paste:before,
6620 .fa-clipboard:before {
6620 .fa-clipboard:before {
6621 content: "\f0ea";
6621 content: "\f0ea";
6622 }
6622 }
6623 .fa-lightbulb-o:before {
6623 .fa-lightbulb-o:before {
6624 content: "\f0eb";
6624 content: "\f0eb";
6625 }
6625 }
6626 .fa-exchange:before {
6626 .fa-exchange:before {
6627 content: "\f0ec";
6627 content: "\f0ec";
6628 }
6628 }
6629 .fa-cloud-download:before {
6629 .fa-cloud-download:before {
6630 content: "\f0ed";
6630 content: "\f0ed";
6631 }
6631 }
6632 .fa-cloud-upload:before {
6632 .fa-cloud-upload:before {
6633 content: "\f0ee";
6633 content: "\f0ee";
6634 }
6634 }
6635 .fa-user-md:before {
6635 .fa-user-md:before {
6636 content: "\f0f0";
6636 content: "\f0f0";
6637 }
6637 }
6638 .fa-stethoscope:before {
6638 .fa-stethoscope:before {
6639 content: "\f0f1";
6639 content: "\f0f1";
6640 }
6640 }
6641 .fa-suitcase:before {
6641 .fa-suitcase:before {
6642 content: "\f0f2";
6642 content: "\f0f2";
6643 }
6643 }
6644 .fa-bell-o:before {
6644 .fa-bell-o:before {
6645 content: "\f0a2";
6645 content: "\f0a2";
6646 }
6646 }
6647 .fa-coffee:before {
6647 .fa-coffee:before {
6648 content: "\f0f4";
6648 content: "\f0f4";
6649 }
6649 }
6650 .fa-cutlery:before {
6650 .fa-cutlery:before {
6651 content: "\f0f5";
6651 content: "\f0f5";
6652 }
6652 }
6653 .fa-file-text-o:before {
6653 .fa-file-text-o:before {
6654 content: "\f0f6";
6654 content: "\f0f6";
6655 }
6655 }
6656 .fa-building-o:before {
6656 .fa-building-o:before {
6657 content: "\f0f7";
6657 content: "\f0f7";
6658 }
6658 }
6659 .fa-hospital-o:before {
6659 .fa-hospital-o:before {
6660 content: "\f0f8";
6660 content: "\f0f8";
6661 }
6661 }
6662 .fa-ambulance:before {
6662 .fa-ambulance:before {
6663 content: "\f0f9";
6663 content: "\f0f9";
6664 }
6664 }
6665 .fa-medkit:before {
6665 .fa-medkit:before {
6666 content: "\f0fa";
6666 content: "\f0fa";
6667 }
6667 }
6668 .fa-fighter-jet:before {
6668 .fa-fighter-jet:before {
6669 content: "\f0fb";
6669 content: "\f0fb";
6670 }
6670 }
6671 .fa-beer:before {
6671 .fa-beer:before {
6672 content: "\f0fc";
6672 content: "\f0fc";
6673 }
6673 }
6674 .fa-h-square:before {
6674 .fa-h-square:before {
6675 content: "\f0fd";
6675 content: "\f0fd";
6676 }
6676 }
6677 .fa-plus-square:before {
6677 .fa-plus-square:before {
6678 content: "\f0fe";
6678 content: "\f0fe";
6679 }
6679 }
6680 .fa-angle-double-left:before {
6680 .fa-angle-double-left:before {
6681 content: "\f100";
6681 content: "\f100";
6682 }
6682 }
6683 .fa-angle-double-right:before {
6683 .fa-angle-double-right:before {
6684 content: "\f101";
6684 content: "\f101";
6685 }
6685 }
6686 .fa-angle-double-up:before {
6686 .fa-angle-double-up:before {
6687 content: "\f102";
6687 content: "\f102";
6688 }
6688 }
6689 .fa-angle-double-down:before {
6689 .fa-angle-double-down:before {
6690 content: "\f103";
6690 content: "\f103";
6691 }
6691 }
6692 .fa-angle-left:before {
6692 .fa-angle-left:before {
6693 content: "\f104";
6693 content: "\f104";
6694 }
6694 }
6695 .fa-angle-right:before {
6695 .fa-angle-right:before {
6696 content: "\f105";
6696 content: "\f105";
6697 }
6697 }
6698 .fa-angle-up:before {
6698 .fa-angle-up:before {
6699 content: "\f106";
6699 content: "\f106";
6700 }
6700 }
6701 .fa-angle-down:before {
6701 .fa-angle-down:before {
6702 content: "\f107";
6702 content: "\f107";
6703 }
6703 }
6704 .fa-desktop:before {
6704 .fa-desktop:before {
6705 content: "\f108";
6705 content: "\f108";
6706 }
6706 }
6707 .fa-laptop:before {
6707 .fa-laptop:before {
6708 content: "\f109";
6708 content: "\f109";
6709 }
6709 }
6710 .fa-tablet:before {
6710 .fa-tablet:before {
6711 content: "\f10a";
6711 content: "\f10a";
6712 }
6712 }
6713 .fa-mobile-phone:before,
6713 .fa-mobile-phone:before,
6714 .fa-mobile:before {
6714 .fa-mobile:before {
6715 content: "\f10b";
6715 content: "\f10b";
6716 }
6716 }
6717 .fa-circle-o:before {
6717 .fa-circle-o:before {
6718 content: "\f10c";
6718 content: "\f10c";
6719 }
6719 }
6720 .fa-quote-left:before {
6720 .fa-quote-left:before {
6721 content: "\f10d";
6721 content: "\f10d";
6722 }
6722 }
6723 .fa-quote-right:before {
6723 .fa-quote-right:before {
6724 content: "\f10e";
6724 content: "\f10e";
6725 }
6725 }
6726 .fa-spinner:before {
6726 .fa-spinner:before {
6727 content: "\f110";
6727 content: "\f110";
6728 }
6728 }
6729 .fa-circle:before {
6729 .fa-circle:before {
6730 content: "\f111";
6730 content: "\f111";
6731 }
6731 }
6732 .fa-mail-reply:before,
6732 .fa-mail-reply:before,
6733 .fa-reply:before {
6733 .fa-reply:before {
6734 content: "\f112";
6734 content: "\f112";
6735 }
6735 }
6736 .fa-github-alt:before {
6736 .fa-github-alt:before {
6737 content: "\f113";
6737 content: "\f113";
6738 }
6738 }
6739 .fa-folder-o:before {
6739 .fa-folder-o:before {
6740 content: "\f114";
6740 content: "\f114";
6741 }
6741 }
6742 .fa-folder-open-o:before {
6742 .fa-folder-open-o:before {
6743 content: "\f115";
6743 content: "\f115";
6744 }
6744 }
6745 .fa-smile-o:before {
6745 .fa-smile-o:before {
6746 content: "\f118";
6746 content: "\f118";
6747 }
6747 }
6748 .fa-frown-o:before {
6748 .fa-frown-o:before {
6749 content: "\f119";
6749 content: "\f119";
6750 }
6750 }
6751 .fa-meh-o:before {
6751 .fa-meh-o:before {
6752 content: "\f11a";
6752 content: "\f11a";
6753 }
6753 }
6754 .fa-gamepad:before {
6754 .fa-gamepad:before {
6755 content: "\f11b";
6755 content: "\f11b";
6756 }
6756 }
6757 .fa-keyboard-o:before {
6757 .fa-keyboard-o:before {
6758 content: "\f11c";
6758 content: "\f11c";
6759 }
6759 }
6760 .fa-flag-o:before {
6760 .fa-flag-o:before {
6761 content: "\f11d";
6761 content: "\f11d";
6762 }
6762 }
6763 .fa-flag-checkered:before {
6763 .fa-flag-checkered:before {
6764 content: "\f11e";
6764 content: "\f11e";
6765 }
6765 }
6766 .fa-terminal:before {
6766 .fa-terminal:before {
6767 content: "\f120";
6767 content: "\f120";
6768 }
6768 }
6769 .fa-code:before {
6769 .fa-code:before {
6770 content: "\f121";
6770 content: "\f121";
6771 }
6771 }
6772 .fa-mail-reply-all:before,
6772 .fa-mail-reply-all:before,
6773 .fa-reply-all:before {
6773 .fa-reply-all:before {
6774 content: "\f122";
6774 content: "\f122";
6775 }
6775 }
6776 .fa-star-half-empty:before,
6776 .fa-star-half-empty:before,
6777 .fa-star-half-full:before,
6777 .fa-star-half-full:before,
6778 .fa-star-half-o:before {
6778 .fa-star-half-o:before {
6779 content: "\f123";
6779 content: "\f123";
6780 }
6780 }
6781 .fa-location-arrow:before {
6781 .fa-location-arrow:before {
6782 content: "\f124";
6782 content: "\f124";
6783 }
6783 }
6784 .fa-crop:before {
6784 .fa-crop:before {
6785 content: "\f125";
6785 content: "\f125";
6786 }
6786 }
6787 .fa-code-fork:before {
6787 .fa-code-fork:before {
6788 content: "\f126";
6788 content: "\f126";
6789 }
6789 }
6790 .fa-unlink:before,
6790 .fa-unlink:before,
6791 .fa-chain-broken:before {
6791 .fa-chain-broken:before {
6792 content: "\f127";
6792 content: "\f127";
6793 }
6793 }
6794 .fa-question:before {
6794 .fa-question:before {
6795 content: "\f128";
6795 content: "\f128";
6796 }
6796 }
6797 .fa-info:before {
6797 .fa-info:before {
6798 content: "\f129";
6798 content: "\f129";
6799 }
6799 }
6800 .fa-exclamation:before {
6800 .fa-exclamation:before {
6801 content: "\f12a";
6801 content: "\f12a";
6802 }
6802 }
6803 .fa-superscript:before {
6803 .fa-superscript:before {
6804 content: "\f12b";
6804 content: "\f12b";
6805 }
6805 }
6806 .fa-subscript:before {
6806 .fa-subscript:before {
6807 content: "\f12c";
6807 content: "\f12c";
6808 }
6808 }
6809 .fa-eraser:before {
6809 .fa-eraser:before {
6810 content: "\f12d";
6810 content: "\f12d";
6811 }
6811 }
6812 .fa-puzzle-piece:before {
6812 .fa-puzzle-piece:before {
6813 content: "\f12e";
6813 content: "\f12e";
6814 }
6814 }
6815 .fa-microphone:before {
6815 .fa-microphone:before {
6816 content: "\f130";
6816 content: "\f130";
6817 }
6817 }
6818 .fa-microphone-slash:before {
6818 .fa-microphone-slash:before {
6819 content: "\f131";
6819 content: "\f131";
6820 }
6820 }
6821 .fa-shield:before {
6821 .fa-shield:before {
6822 content: "\f132";
6822 content: "\f132";
6823 }
6823 }
6824 .fa-calendar-o:before {
6824 .fa-calendar-o:before {
6825 content: "\f133";
6825 content: "\f133";
6826 }
6826 }
6827 .fa-fire-extinguisher:before {
6827 .fa-fire-extinguisher:before {
6828 content: "\f134";
6828 content: "\f134";
6829 }
6829 }
6830 .fa-rocket:before {
6830 .fa-rocket:before {
6831 content: "\f135";
6831 content: "\f135";
6832 }
6832 }
6833 .fa-maxcdn:before {
6833 .fa-maxcdn:before {
6834 content: "\f136";
6834 content: "\f136";
6835 }
6835 }
6836 .fa-chevron-circle-left:before {
6836 .fa-chevron-circle-left:before {
6837 content: "\f137";
6837 content: "\f137";
6838 }
6838 }
6839 .fa-chevron-circle-right:before {
6839 .fa-chevron-circle-right:before {
6840 content: "\f138";
6840 content: "\f138";
6841 }
6841 }
6842 .fa-chevron-circle-up:before {
6842 .fa-chevron-circle-up:before {
6843 content: "\f139";
6843 content: "\f139";
6844 }
6844 }
6845 .fa-chevron-circle-down:before {
6845 .fa-chevron-circle-down:before {
6846 content: "\f13a";
6846 content: "\f13a";
6847 }
6847 }
6848 .fa-html5:before {
6848 .fa-html5:before {
6849 content: "\f13b";
6849 content: "\f13b";
6850 }
6850 }
6851 .fa-css3:before {
6851 .fa-css3:before {
6852 content: "\f13c";
6852 content: "\f13c";
6853 }
6853 }
6854 .fa-anchor:before {
6854 .fa-anchor:before {
6855 content: "\f13d";
6855 content: "\f13d";
6856 }
6856 }
6857 .fa-unlock-alt:before {
6857 .fa-unlock-alt:before {
6858 content: "\f13e";
6858 content: "\f13e";
6859 }
6859 }
6860 .fa-bullseye:before {
6860 .fa-bullseye:before {
6861 content: "\f140";
6861 content: "\f140";
6862 }
6862 }
6863 .fa-ellipsis-h:before {
6863 .fa-ellipsis-h:before {
6864 content: "\f141";
6864 content: "\f141";
6865 }
6865 }
6866 .fa-ellipsis-v:before {
6866 .fa-ellipsis-v:before {
6867 content: "\f142";
6867 content: "\f142";
6868 }
6868 }
6869 .fa-rss-square:before {
6869 .fa-rss-square:before {
6870 content: "\f143";
6870 content: "\f143";
6871 }
6871 }
6872 .fa-play-circle:before {
6872 .fa-play-circle:before {
6873 content: "\f144";
6873 content: "\f144";
6874 }
6874 }
6875 .fa-ticket:before {
6875 .fa-ticket:before {
6876 content: "\f145";
6876 content: "\f145";
6877 }
6877 }
6878 .fa-minus-square:before {
6878 .fa-minus-square:before {
6879 content: "\f146";
6879 content: "\f146";
6880 }
6880 }
6881 .fa-minus-square-o:before {
6881 .fa-minus-square-o:before {
6882 content: "\f147";
6882 content: "\f147";
6883 }
6883 }
6884 .fa-level-up:before {
6884 .fa-level-up:before {
6885 content: "\f148";
6885 content: "\f148";
6886 }
6886 }
6887 .fa-level-down:before {
6887 .fa-level-down:before {
6888 content: "\f149";
6888 content: "\f149";
6889 }
6889 }
6890 .fa-check-square:before {
6890 .fa-check-square:before {
6891 content: "\f14a";
6891 content: "\f14a";
6892 }
6892 }
6893 .fa-pencil-square:before {
6893 .fa-pencil-square:before {
6894 content: "\f14b";
6894 content: "\f14b";
6895 }
6895 }
6896 .fa-external-link-square:before {
6896 .fa-external-link-square:before {
6897 content: "\f14c";
6897 content: "\f14c";
6898 }
6898 }
6899 .fa-share-square:before {
6899 .fa-share-square:before {
6900 content: "\f14d";
6900 content: "\f14d";
6901 }
6901 }
6902 .fa-compass:before {
6902 .fa-compass:before {
6903 content: "\f14e";
6903 content: "\f14e";
6904 }
6904 }
6905 .fa-toggle-down:before,
6905 .fa-toggle-down:before,
6906 .fa-caret-square-o-down:before {
6906 .fa-caret-square-o-down:before {
6907 content: "\f150";
6907 content: "\f150";
6908 }
6908 }
6909 .fa-toggle-up:before,
6909 .fa-toggle-up:before,
6910 .fa-caret-square-o-up:before {
6910 .fa-caret-square-o-up:before {
6911 content: "\f151";
6911 content: "\f151";
6912 }
6912 }
6913 .fa-toggle-right:before,
6913 .fa-toggle-right:before,
6914 .fa-caret-square-o-right:before {
6914 .fa-caret-square-o-right:before {
6915 content: "\f152";
6915 content: "\f152";
6916 }
6916 }
6917 .fa-euro:before,
6917 .fa-euro:before,
6918 .fa-eur:before {
6918 .fa-eur:before {
6919 content: "\f153";
6919 content: "\f153";
6920 }
6920 }
6921 .fa-gbp:before {
6921 .fa-gbp:before {
6922 content: "\f154";
6922 content: "\f154";
6923 }
6923 }
6924 .fa-dollar:before,
6924 .fa-dollar:before,
6925 .fa-usd:before {
6925 .fa-usd:before {
6926 content: "\f155";
6926 content: "\f155";
6927 }
6927 }
6928 .fa-rupee:before,
6928 .fa-rupee:before,
6929 .fa-inr:before {
6929 .fa-inr:before {
6930 content: "\f156";
6930 content: "\f156";
6931 }
6931 }
6932 .fa-cny:before,
6932 .fa-cny:before,
6933 .fa-rmb:before,
6933 .fa-rmb:before,
6934 .fa-yen:before,
6934 .fa-yen:before,
6935 .fa-jpy:before {
6935 .fa-jpy:before {
6936 content: "\f157";
6936 content: "\f157";
6937 }
6937 }
6938 .fa-ruble:before,
6938 .fa-ruble:before,
6939 .fa-rouble:before,
6939 .fa-rouble:before,
6940 .fa-rub:before {
6940 .fa-rub:before {
6941 content: "\f158";
6941 content: "\f158";
6942 }
6942 }
6943 .fa-won:before,
6943 .fa-won:before,
6944 .fa-krw:before {
6944 .fa-krw:before {
6945 content: "\f159";
6945 content: "\f159";
6946 }
6946 }
6947 .fa-bitcoin:before,
6947 .fa-bitcoin:before,
6948 .fa-btc:before {
6948 .fa-btc:before {
6949 content: "\f15a";
6949 content: "\f15a";
6950 }
6950 }
6951 .fa-file:before {
6951 .fa-file:before {
6952 content: "\f15b";
6952 content: "\f15b";
6953 }
6953 }
6954 .fa-file-text:before {
6954 .fa-file-text:before {
6955 content: "\f15c";
6955 content: "\f15c";
6956 }
6956 }
6957 .fa-sort-alpha-asc:before {
6957 .fa-sort-alpha-asc:before {
6958 content: "\f15d";
6958 content: "\f15d";
6959 }
6959 }
6960 .fa-sort-alpha-desc:before {
6960 .fa-sort-alpha-desc:before {
6961 content: "\f15e";
6961 content: "\f15e";
6962 }
6962 }
6963 .fa-sort-amount-asc:before {
6963 .fa-sort-amount-asc:before {
6964 content: "\f160";
6964 content: "\f160";
6965 }
6965 }
6966 .fa-sort-amount-desc:before {
6966 .fa-sort-amount-desc:before {
6967 content: "\f161";
6967 content: "\f161";
6968 }
6968 }
6969 .fa-sort-numeric-asc:before {
6969 .fa-sort-numeric-asc:before {
6970 content: "\f162";
6970 content: "\f162";
6971 }
6971 }
6972 .fa-sort-numeric-desc:before {
6972 .fa-sort-numeric-desc:before {
6973 content: "\f163";
6973 content: "\f163";
6974 }
6974 }
6975 .fa-thumbs-up:before {
6975 .fa-thumbs-up:before {
6976 content: "\f164";
6976 content: "\f164";
6977 }
6977 }
6978 .fa-thumbs-down:before {
6978 .fa-thumbs-down:before {
6979 content: "\f165";
6979 content: "\f165";
6980 }
6980 }
6981 .fa-youtube-square:before {
6981 .fa-youtube-square:before {
6982 content: "\f166";
6982 content: "\f166";
6983 }
6983 }
6984 .fa-youtube:before {
6984 .fa-youtube:before {
6985 content: "\f167";
6985 content: "\f167";
6986 }
6986 }
6987 .fa-xing:before {
6987 .fa-xing:before {
6988 content: "\f168";
6988 content: "\f168";
6989 }
6989 }
6990 .fa-xing-square:before {
6990 .fa-xing-square:before {
6991 content: "\f169";
6991 content: "\f169";
6992 }
6992 }
6993 .fa-youtube-play:before {
6993 .fa-youtube-play:before {
6994 content: "\f16a";
6994 content: "\f16a";
6995 }
6995 }
6996 .fa-dropbox:before {
6996 .fa-dropbox:before {
6997 content: "\f16b";
6997 content: "\f16b";
6998 }
6998 }
6999 .fa-stack-overflow:before {
6999 .fa-stack-overflow:before {
7000 content: "\f16c";
7000 content: "\f16c";
7001 }
7001 }
7002 .fa-instagram:before {
7002 .fa-instagram:before {
7003 content: "\f16d";
7003 content: "\f16d";
7004 }
7004 }
7005 .fa-flickr:before {
7005 .fa-flickr:before {
7006 content: "\f16e";
7006 content: "\f16e";
7007 }
7007 }
7008 .fa-adn:before {
7008 .fa-adn:before {
7009 content: "\f170";
7009 content: "\f170";
7010 }
7010 }
7011 .fa-bitbucket:before {
7011 .fa-bitbucket:before {
7012 content: "\f171";
7012 content: "\f171";
7013 }
7013 }
7014 .fa-bitbucket-square:before {
7014 .fa-bitbucket-square:before {
7015 content: "\f172";
7015 content: "\f172";
7016 }
7016 }
7017 .fa-tumblr:before {
7017 .fa-tumblr:before {
7018 content: "\f173";
7018 content: "\f173";
7019 }
7019 }
7020 .fa-tumblr-square:before {
7020 .fa-tumblr-square:before {
7021 content: "\f174";
7021 content: "\f174";
7022 }
7022 }
7023 .fa-long-arrow-down:before {
7023 .fa-long-arrow-down:before {
7024 content: "\f175";
7024 content: "\f175";
7025 }
7025 }
7026 .fa-long-arrow-up:before {
7026 .fa-long-arrow-up:before {
7027 content: "\f176";
7027 content: "\f176";
7028 }
7028 }
7029 .fa-long-arrow-left:before {
7029 .fa-long-arrow-left:before {
7030 content: "\f177";
7030 content: "\f177";
7031 }
7031 }
7032 .fa-long-arrow-right:before {
7032 .fa-long-arrow-right:before {
7033 content: "\f178";
7033 content: "\f178";
7034 }
7034 }
7035 .fa-apple:before {
7035 .fa-apple:before {
7036 content: "\f179";
7036 content: "\f179";
7037 }
7037 }
7038 .fa-windows:before {
7038 .fa-windows:before {
7039 content: "\f17a";
7039 content: "\f17a";
7040 }
7040 }
7041 .fa-android:before {
7041 .fa-android:before {
7042 content: "\f17b";
7042 content: "\f17b";
7043 }
7043 }
7044 .fa-linux:before {
7044 .fa-linux:before {
7045 content: "\f17c";
7045 content: "\f17c";
7046 }
7046 }
7047 .fa-dribbble:before {
7047 .fa-dribbble:before {
7048 content: "\f17d";
7048 content: "\f17d";
7049 }
7049 }
7050 .fa-skype:before {
7050 .fa-skype:before {
7051 content: "\f17e";
7051 content: "\f17e";
7052 }
7052 }
7053 .fa-foursquare:before {
7053 .fa-foursquare:before {
7054 content: "\f180";
7054 content: "\f180";
7055 }
7055 }
7056 .fa-trello:before {
7056 .fa-trello:before {
7057 content: "\f181";
7057 content: "\f181";
7058 }
7058 }
7059 .fa-female:before {
7059 .fa-female:before {
7060 content: "\f182";
7060 content: "\f182";
7061 }
7061 }
7062 .fa-male:before {
7062 .fa-male:before {
7063 content: "\f183";
7063 content: "\f183";
7064 }
7064 }
7065 .fa-gittip:before {
7065 .fa-gittip:before {
7066 content: "\f184";
7066 content: "\f184";
7067 }
7067 }
7068 .fa-sun-o:before {
7068 .fa-sun-o:before {
7069 content: "\f185";
7069 content: "\f185";
7070 }
7070 }
7071 .fa-moon-o:before {
7071 .fa-moon-o:before {
7072 content: "\f186";
7072 content: "\f186";
7073 }
7073 }
7074 .fa-archive:before {
7074 .fa-archive:before {
7075 content: "\f187";
7075 content: "\f187";
7076 }
7076 }
7077 .fa-bug:before {
7077 .fa-bug:before {
7078 content: "\f188";
7078 content: "\f188";
7079 }
7079 }
7080 .fa-vk:before {
7080 .fa-vk:before {
7081 content: "\f189";
7081 content: "\f189";
7082 }
7082 }
7083 .fa-weibo:before {
7083 .fa-weibo:before {
7084 content: "\f18a";
7084 content: "\f18a";
7085 }
7085 }
7086 .fa-renren:before {
7086 .fa-renren:before {
7087 content: "\f18b";
7087 content: "\f18b";
7088 }
7088 }
7089 .fa-pagelines:before {
7089 .fa-pagelines:before {
7090 content: "\f18c";
7090 content: "\f18c";
7091 }
7091 }
7092 .fa-stack-exchange:before {
7092 .fa-stack-exchange:before {
7093 content: "\f18d";
7093 content: "\f18d";
7094 }
7094 }
7095 .fa-arrow-circle-o-right:before {
7095 .fa-arrow-circle-o-right:before {
7096 content: "\f18e";
7096 content: "\f18e";
7097 }
7097 }
7098 .fa-arrow-circle-o-left:before {
7098 .fa-arrow-circle-o-left:before {
7099 content: "\f190";
7099 content: "\f190";
7100 }
7100 }
7101 .fa-toggle-left:before,
7101 .fa-toggle-left:before,
7102 .fa-caret-square-o-left:before {
7102 .fa-caret-square-o-left:before {
7103 content: "\f191";
7103 content: "\f191";
7104 }
7104 }
7105 .fa-dot-circle-o:before {
7105 .fa-dot-circle-o:before {
7106 content: "\f192";
7106 content: "\f192";
7107 }
7107 }
7108 .fa-wheelchair:before {
7108 .fa-wheelchair:before {
7109 content: "\f193";
7109 content: "\f193";
7110 }
7110 }
7111 .fa-vimeo-square:before {
7111 .fa-vimeo-square:before {
7112 content: "\f194";
7112 content: "\f194";
7113 }
7113 }
7114 .fa-turkish-lira:before,
7114 .fa-turkish-lira:before,
7115 .fa-try:before {
7115 .fa-try:before {
7116 content: "\f195";
7116 content: "\f195";
7117 }
7117 }
7118 .fa-plus-square-o:before {
7118 .fa-plus-square-o:before {
7119 content: "\f196";
7119 content: "\f196";
7120 }
7120 }
7121 .fa-space-shuttle:before {
7121 .fa-space-shuttle:before {
7122 content: "\f197";
7122 content: "\f197";
7123 }
7123 }
7124 .fa-slack:before {
7124 .fa-slack:before {
7125 content: "\f198";
7125 content: "\f198";
7126 }
7126 }
7127 .fa-envelope-square:before {
7127 .fa-envelope-square:before {
7128 content: "\f199";
7128 content: "\f199";
7129 }
7129 }
7130 .fa-wordpress:before {
7130 .fa-wordpress:before {
7131 content: "\f19a";
7131 content: "\f19a";
7132 }
7132 }
7133 .fa-openid:before {
7133 .fa-openid:before {
7134 content: "\f19b";
7134 content: "\f19b";
7135 }
7135 }
7136 .fa-institution:before,
7136 .fa-institution:before,
7137 .fa-bank:before,
7137 .fa-bank:before,
7138 .fa-university:before {
7138 .fa-university:before {
7139 content: "\f19c";
7139 content: "\f19c";
7140 }
7140 }
7141 .fa-mortar-board:before,
7141 .fa-mortar-board:before,
7142 .fa-graduation-cap:before {
7142 .fa-graduation-cap:before {
7143 content: "\f19d";
7143 content: "\f19d";
7144 }
7144 }
7145 .fa-yahoo:before {
7145 .fa-yahoo:before {
7146 content: "\f19e";
7146 content: "\f19e";
7147 }
7147 }
7148 .fa-google:before {
7148 .fa-google:before {
7149 content: "\f1a0";
7149 content: "\f1a0";
7150 }
7150 }
7151 .fa-reddit:before {
7151 .fa-reddit:before {
7152 content: "\f1a1";
7152 content: "\f1a1";
7153 }
7153 }
7154 .fa-reddit-square:before {
7154 .fa-reddit-square:before {
7155 content: "\f1a2";
7155 content: "\f1a2";
7156 }
7156 }
7157 .fa-stumbleupon-circle:before {
7157 .fa-stumbleupon-circle:before {
7158 content: "\f1a3";
7158 content: "\f1a3";
7159 }
7159 }
7160 .fa-stumbleupon:before {
7160 .fa-stumbleupon:before {
7161 content: "\f1a4";
7161 content: "\f1a4";
7162 }
7162 }
7163 .fa-delicious:before {
7163 .fa-delicious:before {
7164 content: "\f1a5";
7164 content: "\f1a5";
7165 }
7165 }
7166 .fa-digg:before {
7166 .fa-digg:before {
7167 content: "\f1a6";
7167 content: "\f1a6";
7168 }
7168 }
7169 .fa-pied-piper-square:before,
7169 .fa-pied-piper-square:before,
7170 .fa-pied-piper:before {
7170 .fa-pied-piper:before {
7171 content: "\f1a7";
7171 content: "\f1a7";
7172 }
7172 }
7173 .fa-pied-piper-alt:before {
7173 .fa-pied-piper-alt:before {
7174 content: "\f1a8";
7174 content: "\f1a8";
7175 }
7175 }
7176 .fa-drupal:before {
7176 .fa-drupal:before {
7177 content: "\f1a9";
7177 content: "\f1a9";
7178 }
7178 }
7179 .fa-joomla:before {
7179 .fa-joomla:before {
7180 content: "\f1aa";
7180 content: "\f1aa";
7181 }
7181 }
7182 .fa-language:before {
7182 .fa-language:before {
7183 content: "\f1ab";
7183 content: "\f1ab";
7184 }
7184 }
7185 .fa-fax:before {
7185 .fa-fax:before {
7186 content: "\f1ac";
7186 content: "\f1ac";
7187 }
7187 }
7188 .fa-building:before {
7188 .fa-building:before {
7189 content: "\f1ad";
7189 content: "\f1ad";
7190 }
7190 }
7191 .fa-child:before {
7191 .fa-child:before {
7192 content: "\f1ae";
7192 content: "\f1ae";
7193 }
7193 }
7194 .fa-paw:before {
7194 .fa-paw:before {
7195 content: "\f1b0";
7195 content: "\f1b0";
7196 }
7196 }
7197 .fa-spoon:before {
7197 .fa-spoon:before {
7198 content: "\f1b1";
7198 content: "\f1b1";
7199 }
7199 }
7200 .fa-cube:before {
7200 .fa-cube:before {
7201 content: "\f1b2";
7201 content: "\f1b2";
7202 }
7202 }
7203 .fa-cubes:before {
7203 .fa-cubes:before {
7204 content: "\f1b3";
7204 content: "\f1b3";
7205 }
7205 }
7206 .fa-behance:before {
7206 .fa-behance:before {
7207 content: "\f1b4";
7207 content: "\f1b4";
7208 }
7208 }
7209 .fa-behance-square:before {
7209 .fa-behance-square:before {
7210 content: "\f1b5";
7210 content: "\f1b5";
7211 }
7211 }
7212 .fa-steam:before {
7212 .fa-steam:before {
7213 content: "\f1b6";
7213 content: "\f1b6";
7214 }
7214 }
7215 .fa-steam-square:before {
7215 .fa-steam-square:before {
7216 content: "\f1b7";
7216 content: "\f1b7";
7217 }
7217 }
7218 .fa-recycle:before {
7218 .fa-recycle:before {
7219 content: "\f1b8";
7219 content: "\f1b8";
7220 }
7220 }
7221 .fa-automobile:before,
7221 .fa-automobile:before,
7222 .fa-car:before {
7222 .fa-car:before {
7223 content: "\f1b9";
7223 content: "\f1b9";
7224 }
7224 }
7225 .fa-cab:before,
7225 .fa-cab:before,
7226 .fa-taxi:before {
7226 .fa-taxi:before {
7227 content: "\f1ba";
7227 content: "\f1ba";
7228 }
7228 }
7229 .fa-tree:before {
7229 .fa-tree:before {
7230 content: "\f1bb";
7230 content: "\f1bb";
7231 }
7231 }
7232 .fa-spotify:before {
7232 .fa-spotify:before {
7233 content: "\f1bc";
7233 content: "\f1bc";
7234 }
7234 }
7235 .fa-deviantart:before {
7235 .fa-deviantart:before {
7236 content: "\f1bd";
7236 content: "\f1bd";
7237 }
7237 }
7238 .fa-soundcloud:before {
7238 .fa-soundcloud:before {
7239 content: "\f1be";
7239 content: "\f1be";
7240 }
7240 }
7241 .fa-database:before {
7241 .fa-database:before {
7242 content: "\f1c0";
7242 content: "\f1c0";
7243 }
7243 }
7244 .fa-file-pdf-o:before {
7244 .fa-file-pdf-o:before {
7245 content: "\f1c1";
7245 content: "\f1c1";
7246 }
7246 }
7247 .fa-file-word-o:before {
7247 .fa-file-word-o:before {
7248 content: "\f1c2";
7248 content: "\f1c2";
7249 }
7249 }
7250 .fa-file-excel-o:before {
7250 .fa-file-excel-o:before {
7251 content: "\f1c3";
7251 content: "\f1c3";
7252 }
7252 }
7253 .fa-file-powerpoint-o:before {
7253 .fa-file-powerpoint-o:before {
7254 content: "\f1c4";
7254 content: "\f1c4";
7255 }
7255 }
7256 .fa-file-photo-o:before,
7256 .fa-file-photo-o:before,
7257 .fa-file-picture-o:before,
7257 .fa-file-picture-o:before,
7258 .fa-file-image-o:before {
7258 .fa-file-image-o:before {
7259 content: "\f1c5";
7259 content: "\f1c5";
7260 }
7260 }
7261 .fa-file-zip-o:before,
7261 .fa-file-zip-o:before,
7262 .fa-file-archive-o:before {
7262 .fa-file-archive-o:before {
7263 content: "\f1c6";
7263 content: "\f1c6";
7264 }
7264 }
7265 .fa-file-sound-o:before,
7265 .fa-file-sound-o:before,
7266 .fa-file-audio-o:before {
7266 .fa-file-audio-o:before {
7267 content: "\f1c7";
7267 content: "\f1c7";
7268 }
7268 }
7269 .fa-file-movie-o:before,
7269 .fa-file-movie-o:before,
7270 .fa-file-video-o:before {
7270 .fa-file-video-o:before {
7271 content: "\f1c8";
7271 content: "\f1c8";
7272 }
7272 }
7273 .fa-file-code-o:before {
7273 .fa-file-code-o:before {
7274 content: "\f1c9";
7274 content: "\f1c9";
7275 }
7275 }
7276 .fa-vine:before {
7276 .fa-vine:before {
7277 content: "\f1ca";
7277 content: "\f1ca";
7278 }
7278 }
7279 .fa-codepen:before {
7279 .fa-codepen:before {
7280 content: "\f1cb";
7280 content: "\f1cb";
7281 }
7281 }
7282 .fa-jsfiddle:before {
7282 .fa-jsfiddle:before {
7283 content: "\f1cc";
7283 content: "\f1cc";
7284 }
7284 }
7285 .fa-life-bouy:before,
7285 .fa-life-bouy:before,
7286 .fa-life-saver:before,
7286 .fa-life-saver:before,
7287 .fa-support:before,
7287 .fa-support:before,
7288 .fa-life-ring:before {
7288 .fa-life-ring:before {
7289 content: "\f1cd";
7289 content: "\f1cd";
7290 }
7290 }
7291 .fa-circle-o-notch:before {
7291 .fa-circle-o-notch:before {
7292 content: "\f1ce";
7292 content: "\f1ce";
7293 }
7293 }
7294 .fa-ra:before,
7294 .fa-ra:before,
7295 .fa-rebel:before {
7295 .fa-rebel:before {
7296 content: "\f1d0";
7296 content: "\f1d0";
7297 }
7297 }
7298 .fa-ge:before,
7298 .fa-ge:before,
7299 .fa-empire:before {
7299 .fa-empire:before {
7300 content: "\f1d1";
7300 content: "\f1d1";
7301 }
7301 }
7302 .fa-git-square:before {
7302 .fa-git-square:before {
7303 content: "\f1d2";
7303 content: "\f1d2";
7304 }
7304 }
7305 .fa-git:before {
7305 .fa-git:before {
7306 content: "\f1d3";
7306 content: "\f1d3";
7307 }
7307 }
7308 .fa-hacker-news:before {
7308 .fa-hacker-news:before {
7309 content: "\f1d4";
7309 content: "\f1d4";
7310 }
7310 }
7311 .fa-tencent-weibo:before {
7311 .fa-tencent-weibo:before {
7312 content: "\f1d5";
7312 content: "\f1d5";
7313 }
7313 }
7314 .fa-qq:before {
7314 .fa-qq:before {
7315 content: "\f1d6";
7315 content: "\f1d6";
7316 }
7316 }
7317 .fa-wechat:before,
7317 .fa-wechat:before,
7318 .fa-weixin:before {
7318 .fa-weixin:before {
7319 content: "\f1d7";
7319 content: "\f1d7";
7320 }
7320 }
7321 .fa-send:before,
7321 .fa-send:before,
7322 .fa-paper-plane:before {
7322 .fa-paper-plane:before {
7323 content: "\f1d8";
7323 content: "\f1d8";
7324 }
7324 }
7325 .fa-send-o:before,
7325 .fa-send-o:before,
7326 .fa-paper-plane-o:before {
7326 .fa-paper-plane-o:before {
7327 content: "\f1d9";
7327 content: "\f1d9";
7328 }
7328 }
7329 .fa-history:before {
7329 .fa-history:before {
7330 content: "\f1da";
7330 content: "\f1da";
7331 }
7331 }
7332 .fa-circle-thin:before {
7332 .fa-circle-thin:before {
7333 content: "\f1db";
7333 content: "\f1db";
7334 }
7334 }
7335 .fa-header:before {
7335 .fa-header:before {
7336 content: "\f1dc";
7336 content: "\f1dc";
7337 }
7337 }
7338 .fa-paragraph:before {
7338 .fa-paragraph:before {
7339 content: "\f1dd";
7339 content: "\f1dd";
7340 }
7340 }
7341 .fa-sliders:before {
7341 .fa-sliders:before {
7342 content: "\f1de";
7342 content: "\f1de";
7343 }
7343 }
7344 .fa-share-alt:before {
7344 .fa-share-alt:before {
7345 content: "\f1e0";
7345 content: "\f1e0";
7346 }
7346 }
7347 .fa-share-alt-square:before {
7347 .fa-share-alt-square:before {
7348 content: "\f1e1";
7348 content: "\f1e1";
7349 }
7349 }
7350 .fa-bomb:before {
7350 .fa-bomb:before {
7351 content: "\f1e2";
7351 content: "\f1e2";
7352 }
7352 }
7353 /*!
7353 /*!
7354 *
7354 *
7355 * IPython base
7355 * IPython base
7356 *
7356 *
7357 */
7357 */
7358 .modal.fade .modal-dialog {
7358 .modal.fade .modal-dialog {
7359 -webkit-transform: translate(0, 0);
7359 -webkit-transform: translate(0, 0);
7360 -ms-transform: translate(0, 0);
7360 -ms-transform: translate(0, 0);
7361 transform: translate(0, 0);
7361 transform: translate(0, 0);
7362 }
7362 }
7363 code {
7363 code {
7364 color: #000000;
7364 color: #000000;
7365 }
7365 }
7366 pre {
7366 pre {
7367 font-size: inherit;
7367 font-size: inherit;
7368 line-height: inherit;
7368 line-height: inherit;
7369 }
7369 }
7370 label {
7370 label {
7371 font-weight: normal;
7371 font-weight: normal;
7372 }
7372 }
7373 .border-box-sizing {
7373 .border-box-sizing {
7374 box-sizing: border-box;
7374 box-sizing: border-box;
7375 -moz-box-sizing: border-box;
7375 -moz-box-sizing: border-box;
7376 -webkit-box-sizing: border-box;
7376 -webkit-box-sizing: border-box;
7377 }
7377 }
7378 .corner-all {
7378 .corner-all {
7379 border-radius: 4px;
7379 border-radius: 4px;
7380 }
7380 }
7381 .no-padding {
7381 .no-padding {
7382 padding: 0px;
7382 padding: 0px;
7383 }
7383 }
7384 /* Flexible box model classes */
7384 /* Flexible box model classes */
7385 /* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
7385 /* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
7386 /* This file is a compatability layer. It allows the usage of flexible box
7386 /* This file is a compatability layer. It allows the usage of flexible box
7387 model layouts accross multiple browsers, including older browsers. The newest,
7387 model layouts accross multiple browsers, including older browsers. The newest,
7388 universal implementation of the flexible box model is used when available (see
7388 universal implementation of the flexible box model is used when available (see
7389 `Modern browsers` comments below). Browsers that are known to implement this
7389 `Modern browsers` comments below). Browsers that are known to implement this
7390 new spec completely include:
7390 new spec completely include:
7391
7391
7392 Firefox 28.0+
7392 Firefox 28.0+
7393 Chrome 29.0+
7393 Chrome 29.0+
7394 Internet Explorer 11+
7394 Internet Explorer 11+
7395 Opera 17.0+
7395 Opera 17.0+
7396
7396
7397 Browsers not listed, including Safari, are supported via the styling under the
7397 Browsers not listed, including Safari, are supported via the styling under the
7398 `Old browsers` comments below.
7398 `Old browsers` comments below.
7399 */
7399 */
7400 .hbox {
7400 .hbox {
7401 /* Old browsers */
7401 /* Old browsers */
7402 display: -webkit-box;
7402 display: -webkit-box;
7403 -webkit-box-orient: horizontal;
7403 -webkit-box-orient: horizontal;
7404 -webkit-box-align: stretch;
7404 -webkit-box-align: stretch;
7405 display: -moz-box;
7405 display: -moz-box;
7406 -moz-box-orient: horizontal;
7406 -moz-box-orient: horizontal;
7407 -moz-box-align: stretch;
7407 -moz-box-align: stretch;
7408 display: box;
7408 display: box;
7409 box-orient: horizontal;
7409 box-orient: horizontal;
7410 box-align: stretch;
7410 box-align: stretch;
7411 /* Modern browsers */
7411 /* Modern browsers */
7412 display: flex;
7412 display: flex;
7413 flex-direction: row;
7413 flex-direction: row;
7414 align-items: stretch;
7414 align-items: stretch;
7415 }
7415 }
7416 .hbox > * {
7416 .hbox > * {
7417 /* Old browsers */
7417 /* Old browsers */
7418 -webkit-box-flex: 0;
7418 -webkit-box-flex: 0;
7419 -moz-box-flex: 0;
7419 -moz-box-flex: 0;
7420 box-flex: 0;
7420 box-flex: 0;
7421 /* Modern browsers */
7421 /* Modern browsers */
7422 flex: none;
7422 flex: none;
7423 }
7423 }
7424 .vbox {
7424 .vbox {
7425 /* Old browsers */
7425 /* Old browsers */
7426 display: -webkit-box;
7426 display: -webkit-box;
7427 -webkit-box-orient: vertical;
7427 -webkit-box-orient: vertical;
7428 -webkit-box-align: stretch;
7428 -webkit-box-align: stretch;
7429 display: -moz-box;
7429 display: -moz-box;
7430 -moz-box-orient: vertical;
7430 -moz-box-orient: vertical;
7431 -moz-box-align: stretch;
7431 -moz-box-align: stretch;
7432 display: box;
7432 display: box;
7433 box-orient: vertical;
7433 box-orient: vertical;
7434 box-align: stretch;
7434 box-align: stretch;
7435 /* Modern browsers */
7435 /* Modern browsers */
7436 display: flex;
7436 display: flex;
7437 flex-direction: column;
7437 flex-direction: column;
7438 align-items: stretch;
7438 align-items: stretch;
7439 }
7439 }
7440 .vbox > * {
7440 .vbox > * {
7441 /* Old browsers */
7441 /* Old browsers */
7442 -webkit-box-flex: 0;
7442 -webkit-box-flex: 0;
7443 -moz-box-flex: 0;
7443 -moz-box-flex: 0;
7444 box-flex: 0;
7444 box-flex: 0;
7445 /* Modern browsers */
7445 /* Modern browsers */
7446 flex: none;
7446 flex: none;
7447 }
7447 }
7448 .hbox.reverse,
7448 .hbox.reverse,
7449 .vbox.reverse,
7449 .vbox.reverse,
7450 .reverse {
7450 .reverse {
7451 /* Old browsers */
7451 /* Old browsers */
7452 -webkit-box-direction: reverse;
7452 -webkit-box-direction: reverse;
7453 -moz-box-direction: reverse;
7453 -moz-box-direction: reverse;
7454 box-direction: reverse;
7454 box-direction: reverse;
7455 /* Modern browsers */
7455 /* Modern browsers */
7456 flex-direction: row-reverse;
7456 flex-direction: row-reverse;
7457 }
7457 }
7458 .hbox.box-flex0,
7458 .hbox.box-flex0,
7459 .vbox.box-flex0,
7459 .vbox.box-flex0,
7460 .box-flex0 {
7460 .box-flex0 {
7461 /* Old browsers */
7461 /* Old browsers */
7462 -webkit-box-flex: 0;
7462 -webkit-box-flex: 0;
7463 -moz-box-flex: 0;
7463 -moz-box-flex: 0;
7464 box-flex: 0;
7464 box-flex: 0;
7465 /* Modern browsers */
7465 /* Modern browsers */
7466 flex: none;
7466 flex: none;
7467 width: auto;
7467 width: auto;
7468 }
7468 }
7469 .hbox.box-flex1,
7469 .hbox.box-flex1,
7470 .vbox.box-flex1,
7470 .vbox.box-flex1,
7471 .box-flex1 {
7471 .box-flex1 {
7472 /* Old browsers */
7472 /* Old browsers */
7473 -webkit-box-flex: 1;
7473 -webkit-box-flex: 1;
7474 -moz-box-flex: 1;
7474 -moz-box-flex: 1;
7475 box-flex: 1;
7475 box-flex: 1;
7476 /* Modern browsers */
7476 /* Modern browsers */
7477 flex: 1;
7477 flex: 1;
7478 }
7478 }
7479 .hbox.box-flex,
7479 .hbox.box-flex,
7480 .vbox.box-flex,
7480 .vbox.box-flex,
7481 .box-flex {
7481 .box-flex {
7482 /* Old browsers */
7482 /* Old browsers */
7483 /* Old browsers */
7483 /* Old browsers */
7484 -webkit-box-flex: 1;
7484 -webkit-box-flex: 1;
7485 -moz-box-flex: 1;
7485 -moz-box-flex: 1;
7486 box-flex: 1;
7486 box-flex: 1;
7487 /* Modern browsers */
7487 /* Modern browsers */
7488 flex: 1;
7488 flex: 1;
7489 }
7489 }
7490 .hbox.box-flex2,
7490 .hbox.box-flex2,
7491 .vbox.box-flex2,
7491 .vbox.box-flex2,
7492 .box-flex2 {
7492 .box-flex2 {
7493 /* Old browsers */
7493 /* Old browsers */
7494 -webkit-box-flex: 2;
7494 -webkit-box-flex: 2;
7495 -moz-box-flex: 2;
7495 -moz-box-flex: 2;
7496 box-flex: 2;
7496 box-flex: 2;
7497 /* Modern browsers */
7497 /* Modern browsers */
7498 flex: 2;
7498 flex: 2;
7499 }
7499 }
7500 .box-group1 {
7500 .box-group1 {
7501 /* Deprecated */
7501 /* Deprecated */
7502 -webkit-box-flex-group: 1;
7502 -webkit-box-flex-group: 1;
7503 -moz-box-flex-group: 1;
7503 -moz-box-flex-group: 1;
7504 box-flex-group: 1;
7504 box-flex-group: 1;
7505 }
7505 }
7506 .box-group2 {
7506 .box-group2 {
7507 /* Deprecated */
7507 /* Deprecated */
7508 -webkit-box-flex-group: 2;
7508 -webkit-box-flex-group: 2;
7509 -moz-box-flex-group: 2;
7509 -moz-box-flex-group: 2;
7510 box-flex-group: 2;
7510 box-flex-group: 2;
7511 }
7511 }
7512 .hbox.start,
7512 .hbox.start,
7513 .vbox.start,
7513 .vbox.start,
7514 .start {
7514 .start {
7515 /* Old browsers */
7515 /* Old browsers */
7516 -webkit-box-pack: start;
7516 -webkit-box-pack: start;
7517 -moz-box-pack: start;
7517 -moz-box-pack: start;
7518 box-pack: start;
7518 box-pack: start;
7519 /* Modern browsers */
7519 /* Modern browsers */
7520 justify-content: flex-start;
7520 justify-content: flex-start;
7521 }
7521 }
7522 .hbox.end,
7522 .hbox.end,
7523 .vbox.end,
7523 .vbox.end,
7524 .end {
7524 .end {
7525 /* Old browsers */
7525 /* Old browsers */
7526 -webkit-box-pack: end;
7526 -webkit-box-pack: end;
7527 -moz-box-pack: end;
7527 -moz-box-pack: end;
7528 box-pack: end;
7528 box-pack: end;
7529 /* Modern browsers */
7529 /* Modern browsers */
7530 justify-content: flex-end;
7530 justify-content: flex-end;
7531 }
7531 }
7532 .hbox.center,
7532 .hbox.center,
7533 .vbox.center,
7533 .vbox.center,
7534 .center {
7534 .center {
7535 /* Old browsers */
7535 /* Old browsers */
7536 -webkit-box-pack: center;
7536 -webkit-box-pack: center;
7537 -moz-box-pack: center;
7537 -moz-box-pack: center;
7538 box-pack: center;
7538 box-pack: center;
7539 /* Modern browsers */
7539 /* Modern browsers */
7540 justify-content: center;
7540 justify-content: center;
7541 }
7541 }
7542 .hbox.align-start,
7542 .hbox.align-start,
7543 .vbox.align-start,
7543 .vbox.align-start,
7544 .align-start {
7544 .align-start {
7545 /* Old browsers */
7545 /* Old browsers */
7546 -webkit-box-align: start;
7546 -webkit-box-align: start;
7547 -moz-box-align: start;
7547 -moz-box-align: start;
7548 box-align: start;
7548 box-align: start;
7549 /* Modern browsers */
7549 /* Modern browsers */
7550 align-items: flex-start;
7550 align-items: flex-start;
7551 }
7551 }
7552 .hbox.align-end,
7552 .hbox.align-end,
7553 .vbox.align-end,
7553 .vbox.align-end,
7554 .align-end {
7554 .align-end {
7555 /* Old browsers */
7555 /* Old browsers */
7556 -webkit-box-align: end;
7556 -webkit-box-align: end;
7557 -moz-box-align: end;
7557 -moz-box-align: end;
7558 box-align: end;
7558 box-align: end;
7559 /* Modern browsers */
7559 /* Modern browsers */
7560 align-items: flex-end;
7560 align-items: flex-end;
7561 }
7561 }
7562 .hbox.align-center,
7562 .hbox.align-center,
7563 .vbox.align-center,
7563 .vbox.align-center,
7564 .align-center {
7564 .align-center {
7565 /* Old browsers */
7565 /* Old browsers */
7566 -webkit-box-align: center;
7566 -webkit-box-align: center;
7567 -moz-box-align: center;
7567 -moz-box-align: center;
7568 box-align: center;
7568 box-align: center;
7569 /* Modern browsers */
7569 /* Modern browsers */
7570 align-items: center;
7570 align-items: center;
7571 }
7571 }
7572 div.error {
7572 div.error {
7573 margin: 2em;
7573 margin: 2em;
7574 text-align: center;
7574 text-align: center;
7575 }
7575 }
7576 div.error > h1 {
7576 div.error > h1 {
7577 font-size: 500%;
7577 font-size: 500%;
7578 line-height: normal;
7578 line-height: normal;
7579 }
7579 }
7580 div.error > p {
7580 div.error > p {
7581 font-size: 200%;
7581 font-size: 200%;
7582 line-height: normal;
7582 line-height: normal;
7583 }
7583 }
7584 div.traceback-wrapper {
7584 div.traceback-wrapper {
7585 text-align: left;
7585 text-align: left;
7586 max-width: 800px;
7586 max-width: 800px;
7587 margin: auto;
7587 margin: auto;
7588 }
7588 }
7589 /**
7589 /**
7590 * Primary styles
7590 * Primary styles
7591 *
7591 *
7592 * Author: IPython Development Team
7592 * Author: IPython Development Team
7593 */
7593 */
7594 body {
7594 body {
7595 background-color: white;
7595 background-color: white;
7596 /* This makes sure that the body covers the entire window and needs to
7596 /* This makes sure that the body covers the entire window and needs to
7597 be in a different element than the display: box in wrapper below */
7597 be in a different element than the display: box in wrapper below */
7598 position: absolute;
7598 position: absolute;
7599 left: 0px;
7599 left: 0px;
7600 right: 0px;
7600 right: 0px;
7601 top: 0px;
7601 top: 0px;
7602 bottom: 0px;
7602 bottom: 0px;
7603 overflow: visible;
7603 overflow: visible;
7604 }
7604 }
7605 div#header {
7605 div#header {
7606 /* Initially hidden to prevent FLOUC */
7606 /* Initially hidden to prevent FLOUC */
7607 display: none;
7607 display: none;
7608 margin-bottom: 0px;
7608 margin-bottom: 0px;
7609 padding-left: 30px;
7609 padding-left: 30px;
7610 padding-bottom: 5px;
7610 padding-bottom: 5px;
7611 border-bottom: 1px solid #e7e7e7;
7611 border-bottom: 1px solid #e7e7e7;
7612 box-sizing: border-box;
7612 box-sizing: border-box;
7613 -moz-box-sizing: border-box;
7613 -moz-box-sizing: border-box;
7614 -webkit-box-sizing: border-box;
7614 -webkit-box-sizing: border-box;
7615 }
7615 }
7616 #ipython_notebook {
7616 #ipython_notebook {
7617 padding-left: 0px;
7617 padding-left: 0px;
7618 }
7618 }
7619 #noscript {
7619 #noscript {
7620 width: auto;
7620 width: auto;
7621 padding-top: 16px;
7621 padding-top: 16px;
7622 padding-bottom: 16px;
7622 padding-bottom: 16px;
7623 text-align: center;
7623 text-align: center;
7624 font-size: 22px;
7624 font-size: 22px;
7625 color: red;
7625 color: red;
7626 font-weight: bold;
7626 font-weight: bold;
7627 }
7627 }
7628 #ipython_notebook img {
7628 #ipython_notebook img {
7629 font-family: Verdana, "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
7629 font-family: Verdana, "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
7630 height: 24px;
7630 height: 24px;
7631 text-decoration: none;
7631 text-decoration: none;
7632 color: black;
7632 color: black;
7633 }
7633 }
7634 #site {
7634 #site {
7635 width: 100%;
7635 width: 100%;
7636 display: none;
7636 display: none;
7637 box-sizing: border-box;
7637 box-sizing: border-box;
7638 -moz-box-sizing: border-box;
7638 -moz-box-sizing: border-box;
7639 -webkit-box-sizing: border-box;
7639 -webkit-box-sizing: border-box;
7640 }
7640 }
7641 /* Smaller buttons */
7641 /* Smaller buttons */
7642 .ui-button .ui-button-text {
7642 .ui-button .ui-button-text {
7643 padding: 0.2em 0.8em;
7643 padding: 0.2em 0.8em;
7644 font-size: 77%;
7644 font-size: 77%;
7645 }
7645 }
7646 input.ui-button {
7646 input.ui-button {
7647 padding: 0.3em 0.9em;
7647 padding: 0.3em 0.9em;
7648 }
7648 }
7649 .navbar span {
7649 .navbar span {
7650 margin-top: 3px;
7650 margin-top: 3px;
7651 }
7651 }
7652 span#login_widget {
7652 span#login_widget {
7653 float: right;
7653 float: right;
7654 }
7654 }
7655 span#login_widget > .button,
7655 span#login_widget > .button,
7656 #logout {
7656 #logout {
7657 display: inline-block;
7657 display: inline-block;
7658 margin-bottom: 0;
7658 margin-bottom: 0;
7659 font-weight: normal;
7659 font-weight: normal;
7660 text-align: center;
7660 text-align: center;
7661 vertical-align: middle;
7661 vertical-align: middle;
7662 cursor: pointer;
7662 cursor: pointer;
7663 background-image: none;
7663 background-image: none;
7664 border: 1px solid transparent;
7664 border: 1px solid transparent;
7665 white-space: nowrap;
7665 white-space: nowrap;
7666 padding: 6px 12px;
7666 padding: 6px 12px;
7667 font-size: 13px;
7667 font-size: 13px;
7668 line-height: 1.42857143;
7668 line-height: 1.42857143;
7669 border-radius: 4px;
7669 border-radius: 4px;
7670 -webkit-user-select: none;
7670 -webkit-user-select: none;
7671 -moz-user-select: none;
7671 -moz-user-select: none;
7672 -ms-user-select: none;
7672 -ms-user-select: none;
7673 user-select: none;
7673 user-select: none;
7674 color: #333333;
7674 color: #333333;
7675 background-color: #ffffff;
7675 background-color: #ffffff;
7676 border-color: #cccccc;
7676 border-color: #cccccc;
7677 padding: 5px 10px;
7677 padding: 5px 10px;
7678 font-size: 12px;
7678 font-size: 12px;
7679 line-height: 1.5;
7679 line-height: 1.5;
7680 border-radius: 3px;
7680 border-radius: 3px;
7681 }
7681 }
7682 span#login_widget > .button:focus,
7682 span#login_widget > .button:focus,
7683 #logout:focus,
7683 #logout:focus,
7684 span#login_widget > .button:active:focus,
7684 span#login_widget > .button:active:focus,
7685 #logout:active:focus,
7685 #logout:active:focus,
7686 span#login_widget > .button.active:focus,
7686 span#login_widget > .button.active:focus,
7687 #logout.active:focus {
7687 #logout.active:focus {
7688 outline: thin dotted;
7688 outline: thin dotted;
7689 outline: 5px auto -webkit-focus-ring-color;
7689 outline: 5px auto -webkit-focus-ring-color;
7690 outline-offset: -2px;
7690 outline-offset: -2px;
7691 }
7691 }
7692 span#login_widget > .button:hover,
7692 span#login_widget > .button:hover,
7693 #logout:hover,
7693 #logout:hover,
7694 span#login_widget > .button:focus,
7694 span#login_widget > .button:focus,
7695 #logout:focus {
7695 #logout:focus {
7696 color: #333333;
7696 color: #333333;
7697 text-decoration: none;
7697 text-decoration: none;
7698 }
7698 }
7699 span#login_widget > .button:active,
7699 span#login_widget > .button:active,
7700 #logout:active,
7700 #logout:active,
7701 span#login_widget > .button.active,
7701 span#login_widget > .button.active,
7702 #logout.active {
7702 #logout.active {
7703 outline: 0;
7703 outline: 0;
7704 background-image: none;
7704 background-image: none;
7705 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
7705 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
7706 box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
7706 box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
7707 }
7707 }
7708 span#login_widget > .button.disabled,
7708 span#login_widget > .button.disabled,
7709 #logout.disabled,
7709 #logout.disabled,
7710 span#login_widget > .button[disabled],
7710 span#login_widget > .button[disabled],
7711 #logout[disabled],
7711 #logout[disabled],
7712 fieldset[disabled] span#login_widget > .button,
7712 fieldset[disabled] span#login_widget > .button,
7713 fieldset[disabled] #logout {
7713 fieldset[disabled] #logout {
7714 cursor: not-allowed;
7714 cursor: not-allowed;
7715 pointer-events: none;
7715 pointer-events: none;
7716 opacity: 0.65;
7716 opacity: 0.65;
7717 filter: alpha(opacity=65);
7717 filter: alpha(opacity=65);
7718 -webkit-box-shadow: none;
7718 -webkit-box-shadow: none;
7719 box-shadow: none;
7719 box-shadow: none;
7720 }
7720 }
7721 span#login_widget > .button:hover,
7721 span#login_widget > .button:hover,
7722 #logout:hover,
7722 #logout:hover,
7723 span#login_widget > .button:focus,
7723 span#login_widget > .button:focus,
7724 #logout:focus,
7724 #logout:focus,
7725 span#login_widget > .button:active,
7725 span#login_widget > .button:active,
7726 #logout:active,
7726 #logout:active,
7727 span#login_widget > .button.active,
7727 span#login_widget > .button.active,
7728 #logout.active,
7728 #logout.active,
7729 .open .dropdown-togglespan#login_widget > .button,
7729 .open .dropdown-togglespan#login_widget > .button,
7730 .open .dropdown-toggle#logout {
7730 .open .dropdown-toggle#logout {
7731 color: #333333;
7731 color: #333333;
7732 background-color: #ebebeb;
7732 background-color: #ebebeb;
7733 border-color: #adadad;
7733 border-color: #adadad;
7734 }
7734 }
7735 span#login_widget > .button:active,
7735 span#login_widget > .button:active,
7736 #logout:active,
7736 #logout:active,
7737 span#login_widget > .button.active,
7737 span#login_widget > .button.active,
7738 #logout.active,
7738 #logout.active,
7739 .open .dropdown-togglespan#login_widget > .button,
7739 .open .dropdown-togglespan#login_widget > .button,
7740 .open .dropdown-toggle#logout {
7740 .open .dropdown-toggle#logout {
7741 background-image: none;
7741 background-image: none;
7742 }
7742 }
7743 span#login_widget > .button.disabled,
7743 span#login_widget > .button.disabled,
7744 #logout.disabled,
7744 #logout.disabled,
7745 span#login_widget > .button[disabled],
7745 span#login_widget > .button[disabled],
7746 #logout[disabled],
7746 #logout[disabled],
7747 fieldset[disabled] span#login_widget > .button,
7747 fieldset[disabled] span#login_widget > .button,
7748 fieldset[disabled] #logout,
7748 fieldset[disabled] #logout,
7749 span#login_widget > .button.disabled:hover,
7749 span#login_widget > .button.disabled:hover,
7750 #logout.disabled:hover,
7750 #logout.disabled:hover,
7751 span#login_widget > .button[disabled]:hover,
7751 span#login_widget > .button[disabled]:hover,
7752 #logout[disabled]:hover,
7752 #logout[disabled]:hover,
7753 fieldset[disabled] span#login_widget > .button:hover,
7753 fieldset[disabled] span#login_widget > .button:hover,
7754 fieldset[disabled] #logout:hover,
7754 fieldset[disabled] #logout:hover,
7755 span#login_widget > .button.disabled:focus,
7755 span#login_widget > .button.disabled:focus,
7756 #logout.disabled:focus,
7756 #logout.disabled:focus,
7757 span#login_widget > .button[disabled]:focus,
7757 span#login_widget > .button[disabled]:focus,
7758 #logout[disabled]:focus,
7758 #logout[disabled]:focus,
7759 fieldset[disabled] span#login_widget > .button:focus,
7759 fieldset[disabled] span#login_widget > .button:focus,
7760 fieldset[disabled] #logout:focus,
7760 fieldset[disabled] #logout:focus,
7761 span#login_widget > .button.disabled:active,
7761 span#login_widget > .button.disabled:active,
7762 #logout.disabled:active,
7762 #logout.disabled:active,
7763 span#login_widget > .button[disabled]:active,
7763 span#login_widget > .button[disabled]:active,
7764 #logout[disabled]:active,
7764 #logout[disabled]:active,
7765 fieldset[disabled] span#login_widget > .button:active,
7765 fieldset[disabled] span#login_widget > .button:active,
7766 fieldset[disabled] #logout:active,
7766 fieldset[disabled] #logout:active,
7767 span#login_widget > .button.disabled.active,
7767 span#login_widget > .button.disabled.active,
7768 #logout.disabled.active,
7768 #logout.disabled.active,
7769 span#login_widget > .button[disabled].active,
7769 span#login_widget > .button[disabled].active,
7770 #logout[disabled].active,
7770 #logout[disabled].active,
7771 fieldset[disabled] span#login_widget > .button.active,
7771 fieldset[disabled] span#login_widget > .button.active,
7772 fieldset[disabled] #logout.active {
7772 fieldset[disabled] #logout.active {
7773 background-color: #ffffff;
7773 background-color: #ffffff;
7774 border-color: #cccccc;
7774 border-color: #cccccc;
7775 }
7775 }
7776 span#login_widget > .button .badge,
7776 span#login_widget > .button .badge,
7777 #logout .badge {
7777 #logout .badge {
7778 color: #ffffff;
7778 color: #ffffff;
7779 background-color: #333333;
7779 background-color: #333333;
7780 }
7780 }
7781 .nav-header {
7781 .nav-header {
7782 text-transform: none;
7782 text-transform: none;
7783 }
7783 }
7784 #header > span {
7784 #header > span {
7785 margin-top: 10px;
7785 margin-top: 10px;
7786 }
7786 }
7787 .modal_stretch .modal-dialog {
7787 .modal_stretch .modal-dialog {
7788 /* Old browsers */
7788 /* Old browsers */
7789 display: -webkit-box;
7789 display: -webkit-box;
7790 -webkit-box-orient: vertical;
7790 -webkit-box-orient: vertical;
7791 -webkit-box-align: stretch;
7791 -webkit-box-align: stretch;
7792 display: -moz-box;
7792 display: -moz-box;
7793 -moz-box-orient: vertical;
7793 -moz-box-orient: vertical;
7794 -moz-box-align: stretch;
7794 -moz-box-align: stretch;
7795 display: box;
7795 display: box;
7796 box-orient: vertical;
7796 box-orient: vertical;
7797 box-align: stretch;
7797 box-align: stretch;
7798 /* Modern browsers */
7798 /* Modern browsers */
7799 display: flex;
7799 display: flex;
7800 flex-direction: column;
7800 flex-direction: column;
7801 align-items: stretch;
7801 align-items: stretch;
7802 /* Old browsers */
7802 /* Old browsers */
7803 -webkit-box-flex: 0;
7803 -webkit-box-flex: 0;
7804 -moz-box-flex: 0;
7804 -moz-box-flex: 0;
7805 box-flex: 0;
7805 box-flex: 0;
7806 /* Modern browsers */
7806 /* Modern browsers */
7807 flex: none;
7807 flex: none;
7808 min-height: 80%;
7808 min-height: 80%;
7809 }
7809 }
7810 .modal_stretch .modal-dialog .modal-body {
7810 .modal_stretch .modal-dialog .modal-body {
7811 max-height: none;
7811 max-height: none;
7812 flex: 1;
7812 flex: 1;
7813 }
7813 }
7814 @media (min-width: 768px) {
7814 @media (min-width: 768px) {
7815 .modal .modal-dialog {
7815 .modal .modal-dialog {
7816 width: 700px;
7816 width: 700px;
7817 }
7817 }
7818 }
7818 }
7819 /*!
7819 /*!
7820 *
7820 *
7821 * IPython auth
7821 * IPython auth
7822 *
7822 *
7823 */
7823 */
7824 .center-nav {
7824 .center-nav {
7825 display: inline-block;
7825 display: inline-block;
7826 margin-bottom: -4px;
7826 margin-bottom: -4px;
7827 }
7827 }
7828 /*!
7828 /*!
7829 *
7829 *
7830 * IPython tree view
7830 * IPython tree view
7831 *
7831 *
7832 */
7832 */
7833 /* We need an invisible input field on top of the sentense*/
7833 /* We need an invisible input field on top of the sentense*/
7834 /* "Drag file onto the list ..." */
7834 /* "Drag file onto the list ..." */
7835 .alternate_upload {
7835 .alternate_upload {
7836 background-color: none;
7836 background-color: none;
7837 display: inline;
7837 display: inline;
7838 }
7838 }
7839 .alternate_upload.form {
7839 .alternate_upload.form {
7840 padding: 0;
7840 padding: 0;
7841 margin: 0;
7841 margin: 0;
7842 }
7842 }
7843 .alternate_upload input.fileinput {
7843 .alternate_upload input.fileinput {
7844 background-color: red;
7844 background-color: red;
7845 position: relative;
7845 position: relative;
7846 opacity: 0;
7846 opacity: 0;
7847 z-index: 2;
7847 z-index: 2;
7848 width: 295px;
7848 width: 295px;
7849 margin-left: 163px;
7849 margin-left: 163px;
7850 cursor: pointer;
7850 cursor: pointer;
7851 height: 26px;
7851 height: 26px;
7852 }
7852 }
7853 /**
7853 /**
7854 * Primary styles
7854 * Primary styles
7855 *
7855 *
7856 * Author: IPython Development Team
7856 * Author: IPython Development Team
7857 */
7857 */
7858 ul#tabs {
7858 ul#tabs {
7859 margin-bottom: 4px;
7859 margin-bottom: 4px;
7860 }
7860 }
7861 ul#tabs a {
7861 ul#tabs a {
7862 padding-top: 6px;
7862 padding-top: 6px;
7863 padding-bottom: 4px;
7863 padding-bottom: 4px;
7864 }
7864 }
7865 ul.breadcrumb a:focus,
7865 ul.breadcrumb a:focus,
7866 ul.breadcrumb a:hover {
7866 ul.breadcrumb a:hover {
7867 text-decoration: none;
7867 text-decoration: none;
7868 }
7868 }
7869 ul.breadcrumb i.icon-home {
7869 ul.breadcrumb i.icon-home {
7870 font-size: 16px;
7870 font-size: 16px;
7871 margin-right: 4px;
7871 margin-right: 4px;
7872 }
7872 }
7873 ul.breadcrumb span {
7873 ul.breadcrumb span {
7874 color: #5e5e5e;
7874 color: #5e5e5e;
7875 }
7875 }
7876 .list_toolbar {
7876 .list_toolbar {
7877 padding: 4px 0 4px 0;
7877 padding: 4px 0 4px 0;
7878 vertical-align: middle;
7878 vertical-align: middle;
7879 }
7879 }
7880 .list_toolbar .tree-buttons {
7880 .list_toolbar .tree-buttons {
7881 padding-top: 2px;
7881 padding-top: 2px;
7882 }
7882 }
7883 .list_toolbar [class*="span"] {
7883 .list_toolbar [class*="span"] {
7884 min-height: 24px;
7884 min-height: 24px;
7885 }
7885 }
7886 .list_header {
7886 .list_header {
7887 font-weight: bold;
7887 font-weight: bold;
7888 }
7888 }
7889 .list_container {
7889 .list_container {
7890 margin-top: 4px;
7890 margin-top: 4px;
7891 margin-bottom: 20px;
7891 margin-bottom: 20px;
7892 border: 1px solid #ababab;
7892 border: 1px solid #ababab;
7893 border-radius: 4px;
7893 border-radius: 4px;
7894 }
7894 }
7895 .list_container > div {
7895 .list_container > div {
7896 border-bottom: 1px solid #ababab;
7896 border-bottom: 1px solid #ababab;
7897 }
7897 }
7898 .list_container > div:hover .list-item {
7898 .list_container > div:hover .list-item {
7899 background-color: red;
7899 background-color: red;
7900 }
7900 }
7901 .list_container > div:last-child {
7901 .list_container > div:last-child {
7902 border: none;
7902 border: none;
7903 }
7903 }
7904 .list_item:hover .list_item {
7904 .list_item:hover .list_item {
7905 background-color: #ddd;
7905 background-color: #ddd;
7906 }
7906 }
7907 .list_item a {
7907 .list_item a {
7908 text-decoration: none;
7908 text-decoration: none;
7909 }
7909 }
7910 .action_col {
7910 .action_col {
7911 text-align: right;
7911 text-align: right;
7912 }
7912 }
7913 .list_header > div,
7913 .list_header > div,
7914 .list_item > div {
7914 .list_item > div {
7915 padding-top: 4px;
7915 padding-top: 4px;
7916 padding-bottom: 4px;
7916 padding-bottom: 4px;
7917 padding-left: 7px;
7917 padding-left: 7px;
7918 padding-right: 7px;
7918 padding-right: 7px;
7919 line-height: 22px;
7919 line-height: 22px;
7920 }
7920 }
7921 .item_name {
7921 .item_name {
7922 line-height: 22px;
7922 line-height: 22px;
7923 height: 24px;
7923 height: 24px;
7924 }
7924 }
7925 .item_icon {
7925 .item_icon {
7926 font-size: 14px;
7926 font-size: 14px;
7927 color: #5e5e5e;
7927 color: #5e5e5e;
7928 margin-right: 7px;
7928 margin-right: 7px;
7929 }
7929 }
7930 .item_buttons {
7930 .item_buttons {
7931 line-height: 1em;
7931 line-height: 1em;
7932 }
7932 }
7933 .toolbar_info {
7933 .toolbar_info {
7934 height: 24px;
7934 height: 24px;
7935 line-height: 24px;
7935 line-height: 24px;
7936 }
7936 }
7937 input.nbname_input,
7937 input.nbname_input,
7938 input.engine_num_input {
7938 input.engine_num_input {
7939 padding-top: 3px;
7939 padding-top: 3px;
7940 padding-bottom: 3px;
7940 padding-bottom: 3px;
7941 height: 22px;
7941 height: 22px;
7942 line-height: 14px;
7942 line-height: 14px;
7943 margin: 0px;
7943 margin: 0px;
7944 }
7944 }
7945 input.engine_num_input {
7945 input.engine_num_input {
7946 width: 60px;
7946 width: 60px;
7947 }
7947 }
7948 .highlight_text {
7948 .highlight_text {
7949 color: blue;
7949 color: blue;
7950 }
7950 }
7951 #project_name > .breadcrumb {
7951 #project_name > .breadcrumb {
7952 padding: 0px;
7952 padding: 0px;
7953 margin-bottom: 0px;
7953 margin-bottom: 0px;
7954 background-color: transparent;
7954 background-color: transparent;
7955 font-weight: bold;
7955 font-weight: bold;
7956 }
7956 }
7957 .tab-content .row {
7957 .tab-content .row {
7958 margin-left: 0px;
7958 margin-left: 0px;
7959 margin-right: 0px;
7959 margin-right: 0px;
7960 }
7960 }
7961 .folder_icon:before {
7961 .folder_icon:before {
7962 display: inline-block;
7962 display: inline-block;
7963 font-family: FontAwesome;
7963 font-family: FontAwesome;
7964 font-style: normal;
7964 font-style: normal;
7965 font-weight: normal;
7965 font-weight: normal;
7966 line-height: 1;
7966 line-height: 1;
7967 -webkit-font-smoothing: antialiased;
7967 -webkit-font-smoothing: antialiased;
7968 -moz-osx-font-smoothing: grayscale;
7968 -moz-osx-font-smoothing: grayscale;
7969 content: "\f114";
7969 content: "\f114";
7970 }
7970 }
7971 .folder_icon:before.pull-left {
7971 .folder_icon:before.pull-left {
7972 margin-right: .3em;
7972 margin-right: .3em;
7973 }
7973 }
7974 .folder_icon:before.pull-right {
7974 .folder_icon:before.pull-right {
7975 margin-left: .3em;
7975 margin-left: .3em;
7976 }
7976 }
7977 .notebook_icon:before {
7977 .notebook_icon:before {
7978 display: inline-block;
7978 display: inline-block;
7979 font-family: FontAwesome;
7979 font-family: FontAwesome;
7980 font-style: normal;
7980 font-style: normal;
7981 font-weight: normal;
7981 font-weight: normal;
7982 line-height: 1;
7982 line-height: 1;
7983 -webkit-font-smoothing: antialiased;
7983 -webkit-font-smoothing: antialiased;
7984 -moz-osx-font-smoothing: grayscale;
7984 -moz-osx-font-smoothing: grayscale;
7985 content: "\f02d";
7985 content: "\f02d";
7986 }
7986 }
7987 .notebook_icon:before.pull-left {
7987 .notebook_icon:before.pull-left {
7988 margin-right: .3em;
7988 margin-right: .3em;
7989 }
7989 }
7990 .notebook_icon:before.pull-right {
7990 .notebook_icon:before.pull-right {
7991 margin-left: .3em;
7991 margin-left: .3em;
7992 }
7992 }
7993 .file_icon:before {
7993 .file_icon:before {
7994 display: inline-block;
7994 display: inline-block;
7995 font-family: FontAwesome;
7995 font-family: FontAwesome;
7996 font-style: normal;
7996 font-style: normal;
7997 font-weight: normal;
7997 font-weight: normal;
7998 line-height: 1;
7998 line-height: 1;
7999 -webkit-font-smoothing: antialiased;
7999 -webkit-font-smoothing: antialiased;
8000 -moz-osx-font-smoothing: grayscale;
8000 -moz-osx-font-smoothing: grayscale;
8001 content: "\f016";
8001 content: "\f016";
8002 }
8002 }
8003 .file_icon:before.pull-left {
8003 .file_icon:before.pull-left {
8004 margin-right: .3em;
8004 margin-right: .3em;
8005 }
8005 }
8006 .file_icon:before.pull-right {
8006 .file_icon:before.pull-right {
8007 margin-left: .3em;
8007 margin-left: .3em;
8008 }
8008 }
8009 /*!
8009 /*!
8010 *
8010 *
8011 * IPython notebook
8011 * IPython notebook
8012 *
8012 *
8013 */
8013 */
8014 /* CSS font colors for translated ANSI colors. */
8014 /* CSS font colors for translated ANSI colors. */
8015 .ansibold {
8015 .ansibold {
8016 font-weight: bold;
8016 font-weight: bold;
8017 }
8017 }
8018 /* use dark versions for foreground, to improve visibility */
8018 /* use dark versions for foreground, to improve visibility */
8019 .ansiblack {
8019 .ansiblack {
8020 color: black;
8020 color: black;
8021 }
8021 }
8022 .ansired {
8022 .ansired {
8023 color: darkred;
8023 color: darkred;
8024 }
8024 }
8025 .ansigreen {
8025 .ansigreen {
8026 color: darkgreen;
8026 color: darkgreen;
8027 }
8027 }
8028 .ansiyellow {
8028 .ansiyellow {
8029 color: brown;
8029 color: brown;
8030 }
8030 }
8031 .ansiblue {
8031 .ansiblue {
8032 color: darkblue;
8032 color: darkblue;
8033 }
8033 }
8034 .ansipurple {
8034 .ansipurple {
8035 color: darkviolet;
8035 color: darkviolet;
8036 }
8036 }
8037 .ansicyan {
8037 .ansicyan {
8038 color: steelblue;
8038 color: steelblue;
8039 }
8039 }
8040 .ansigray {
8040 .ansigray {
8041 color: gray;
8041 color: gray;
8042 }
8042 }
8043 /* and light for background, for the same reason */
8043 /* and light for background, for the same reason */
8044 .ansibgblack {
8044 .ansibgblack {
8045 background-color: black;
8045 background-color: black;
8046 }
8046 }
8047 .ansibgred {
8047 .ansibgred {
8048 background-color: red;
8048 background-color: red;
8049 }
8049 }
8050 .ansibggreen {
8050 .ansibggreen {
8051 background-color: green;
8051 background-color: green;
8052 }
8052 }
8053 .ansibgyellow {
8053 .ansibgyellow {
8054 background-color: yellow;
8054 background-color: yellow;
8055 }
8055 }
8056 .ansibgblue {
8056 .ansibgblue {
8057 background-color: blue;
8057 background-color: blue;
8058 }
8058 }
8059 .ansibgpurple {
8059 .ansibgpurple {
8060 background-color: magenta;
8060 background-color: magenta;
8061 }
8061 }
8062 .ansibgcyan {
8062 .ansibgcyan {
8063 background-color: cyan;
8063 background-color: cyan;
8064 }
8064 }
8065 .ansibggray {
8065 .ansibggray {
8066 background-color: gray;
8066 background-color: gray;
8067 }
8067 }
8068 div.cell {
8068 div.cell {
8069 border: 1px solid transparent;
8069 border: 1px solid transparent;
8070 /* Old browsers */
8070 /* Old browsers */
8071 display: -webkit-box;
8071 display: -webkit-box;
8072 -webkit-box-orient: vertical;
8072 -webkit-box-orient: vertical;
8073 -webkit-box-align: stretch;
8073 -webkit-box-align: stretch;
8074 display: -moz-box;
8074 display: -moz-box;
8075 -moz-box-orient: vertical;
8075 -moz-box-orient: vertical;
8076 -moz-box-align: stretch;
8076 -moz-box-align: stretch;
8077 display: box;
8077 display: box;
8078 box-orient: vertical;
8078 box-orient: vertical;
8079 box-align: stretch;
8079 box-align: stretch;
8080 /* Modern browsers */
8080 /* Modern browsers */
8081 display: flex;
8081 display: flex;
8082 flex-direction: column;
8082 flex-direction: column;
8083 align-items: stretch;
8083 align-items: stretch;
8084 /* Old browsers */
8084 /* Old browsers */
8085 -webkit-box-flex: 0;
8085 -webkit-box-flex: 0;
8086 -moz-box-flex: 0;
8086 -moz-box-flex: 0;
8087 box-flex: 0;
8087 box-flex: 0;
8088 /* Modern browsers */
8088 /* Modern browsers */
8089 flex: none;
8089 flex: none;
8090 border-radius: 4px;
8090 border-radius: 4px;
8091 box-sizing: border-box;
8091 box-sizing: border-box;
8092 -moz-box-sizing: border-box;
8092 -moz-box-sizing: border-box;
8093 -webkit-box-sizing: border-box;
8093 -webkit-box-sizing: border-box;
8094 border-width: thin;
8094 border-width: thin;
8095 border-style: solid;
8095 border-style: solid;
8096 width: 100%;
8096 width: 100%;
8097 padding: 5px 5px 5px 0px;
8097 padding: 5px 5px 5px 0px;
8098 /* This acts as a spacer between cells, that is outside the border */
8098 /* This acts as a spacer between cells, that is outside the border */
8099 margin: 0px;
8099 margin: 0px;
8100 outline: none;
8100 outline: none;
8101 }
8101 }
8102 div.cell.selected {
8102 div.cell.selected {
8103 border-color: #ababab;
8103 border-color: #ababab;
8104 }
8104 }
8105 div.cell.edit_mode {
8105 div.cell.edit_mode {
8106 border-color: green;
8106 border-color: green;
8107 }
8107 }
8108 div.prompt {
8108 div.prompt {
8109 /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
8109 /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
8110 min-width: 15ex;
8110 min-width: 15ex;
8111 /* This padding is tuned to match the padding on the CodeMirror editor. */
8111 /* This padding is tuned to match the padding on the CodeMirror editor. */
8112 padding: 0.4em;
8112 padding: 0.4em;
8113 margin: 0px;
8113 margin: 0px;
8114 font-family: monospace;
8114 font-family: monospace;
8115 text-align: right;
8115 text-align: right;
8116 /* This has to match that of the the CodeMirror class line-height below */
8116 /* This has to match that of the the CodeMirror class line-height below */
8117 line-height: 1.21429em;
8117 line-height: 1.21429em;
8118 }
8118 }
8119 @media (max-width: 480px) {
8119 @media (max-width: 480px) {
8120 div.prompt {
8120 div.prompt {
8121 text-align: left;
8121 text-align: left;
8122 }
8122 }
8123 }
8123 }
8124 div.inner_cell {
8124 div.inner_cell {
8125 /* Old browsers */
8125 /* Old browsers */
8126 display: -webkit-box;
8126 display: -webkit-box;
8127 -webkit-box-orient: vertical;
8127 -webkit-box-orient: vertical;
8128 -webkit-box-align: stretch;
8128 -webkit-box-align: stretch;
8129 display: -moz-box;
8129 display: -moz-box;
8130 -moz-box-orient: vertical;
8130 -moz-box-orient: vertical;
8131 -moz-box-align: stretch;
8131 -moz-box-align: stretch;
8132 display: box;
8132 display: box;
8133 box-orient: vertical;
8133 box-orient: vertical;
8134 box-align: stretch;
8134 box-align: stretch;
8135 /* Modern browsers */
8135 /* Modern browsers */
8136 display: flex;
8136 display: flex;
8137 flex-direction: column;
8137 flex-direction: column;
8138 align-items: stretch;
8138 align-items: stretch;
8139 /* Old browsers */
8139 /* Old browsers */
8140 -webkit-box-flex: 0;
8140 -webkit-box-flex: 0;
8141 -moz-box-flex: 0;
8141 -moz-box-flex: 0;
8142 box-flex: 0;
8142 box-flex: 0;
8143 /* Modern browsers */
8143 /* Modern browsers */
8144 flex: none;
8144 flex: none;
8145 /* Old browsers */
8145 /* Old browsers */
8146 -webkit-box-flex: 1;
8146 -webkit-box-flex: 1;
8147 -moz-box-flex: 1;
8147 -moz-box-flex: 1;
8148 box-flex: 1;
8148 box-flex: 1;
8149 /* Modern browsers */
8149 /* Modern browsers */
8150 flex: 1;
8150 flex: 1;
8151 }
8151 }
8152 /* input_area and input_prompt must match in top border and margin for alignment */
8152 /* input_area and input_prompt must match in top border and margin for alignment */
8153 div.input_area {
8153 div.input_area {
8154 border: 1px solid #cfcfcf;
8154 border: 1px solid #cfcfcf;
8155 border-radius: 4px;
8155 border-radius: 4px;
8156 background: #f7f7f7;
8156 background: #f7f7f7;
8157 line-height: 1.21429em;
8157 line-height: 1.21429em;
8158 }
8158 }
8159 /* This is needed so that empty prompt areas can collapse to zero height when there
8159 /* This is needed so that empty prompt areas can collapse to zero height when there
8160 is no content in the output_subarea and the prompt. The main purpose of this is
8160 is no content in the output_subarea and the prompt. The main purpose of this is
8161 to make sure that empty JavaScript output_subareas have no height. */
8161 to make sure that empty JavaScript output_subareas have no height. */
8162 div.prompt:empty {
8162 div.prompt:empty {
8163 padding-top: 0;
8163 padding-top: 0;
8164 padding-bottom: 0;
8164 padding-bottom: 0;
8165 }
8165 }
8166 /* any special styling for code cells that are currently running goes here */
8166 /* any special styling for code cells that are currently running goes here */
8167 div.input {
8167 div.input {
8168 page-break-inside: avoid;
8168 page-break-inside: avoid;
8169 /* Old browsers */
8169 /* Old browsers */
8170 display: -webkit-box;
8170 display: -webkit-box;
8171 -webkit-box-orient: horizontal;
8171 -webkit-box-orient: horizontal;
8172 -webkit-box-align: stretch;
8172 -webkit-box-align: stretch;
8173 display: -moz-box;
8173 display: -moz-box;
8174 -moz-box-orient: horizontal;
8174 -moz-box-orient: horizontal;
8175 -moz-box-align: stretch;
8175 -moz-box-align: stretch;
8176 display: box;
8176 display: box;
8177 box-orient: horizontal;
8177 box-orient: horizontal;
8178 box-align: stretch;
8178 box-align: stretch;
8179 /* Modern browsers */
8179 /* Modern browsers */
8180 display: flex;
8180 display: flex;
8181 flex-direction: row;
8181 flex-direction: row;
8182 align-items: stretch;
8182 align-items: stretch;
8183 /* Old browsers */
8183 /* Old browsers */
8184 -webkit-box-flex: 0;
8184 -webkit-box-flex: 0;
8185 -moz-box-flex: 0;
8185 -moz-box-flex: 0;
8186 box-flex: 0;
8186 box-flex: 0;
8187 /* Modern browsers */
8187 /* Modern browsers */
8188 flex: none;
8188 flex: none;
8189 }
8189 }
8190 @media (max-width: 480px) {
8190 @media (max-width: 480px) {
8191 div.input {
8191 div.input {
8192 /* Old browsers */
8192 /* Old browsers */
8193 display: -webkit-box;
8193 display: -webkit-box;
8194 -webkit-box-orient: vertical;
8194 -webkit-box-orient: vertical;
8195 -webkit-box-align: stretch;
8195 -webkit-box-align: stretch;
8196 display: -moz-box;
8196 display: -moz-box;
8197 -moz-box-orient: vertical;
8197 -moz-box-orient: vertical;
8198 -moz-box-align: stretch;
8198 -moz-box-align: stretch;
8199 display: box;
8199 display: box;
8200 box-orient: vertical;
8200 box-orient: vertical;
8201 box-align: stretch;
8201 box-align: stretch;
8202 /* Modern browsers */
8202 /* Modern browsers */
8203 display: flex;
8203 display: flex;
8204 flex-direction: column;
8204 flex-direction: column;
8205 align-items: stretch;
8205 align-items: stretch;
8206 /* Old browsers */
8206 /* Old browsers */
8207 -webkit-box-flex: 0;
8207 -webkit-box-flex: 0;
8208 -moz-box-flex: 0;
8208 -moz-box-flex: 0;
8209 box-flex: 0;
8209 box-flex: 0;
8210 /* Modern browsers */
8210 /* Modern browsers */
8211 flex: none;
8211 flex: none;
8212 }
8212 }
8213 }
8213 }
8214 /* input_area and input_prompt must match in top border and margin for alignment */
8214 /* input_area and input_prompt must match in top border and margin for alignment */
8215 div.input_prompt {
8215 div.input_prompt {
8216 color: #000080;
8216 color: #000080;
8217 border-top: 1px solid transparent;
8217 border-top: 1px solid transparent;
8218 }
8218 }
8219 div.input_area > div.highlight {
8219 div.input_area > div.highlight {
8220 margin: 0.4em;
8220 margin: 0.4em;
8221 border: none;
8221 border: none;
8222 padding: 0px;
8222 padding: 0px;
8223 background-color: transparent;
8223 background-color: transparent;
8224 }
8224 }
8225 div.input_area > div.highlight > pre {
8225 div.input_area > div.highlight > pre {
8226 margin: 0px;
8226 margin: 0px;
8227 border: none;
8227 border: none;
8228 padding: 0px;
8228 padding: 0px;
8229 background-color: transparent;
8229 background-color: transparent;
8230 }
8230 }
8231 /* The following gets added to the <head> if it is detected that the user has a
8231 /* The following gets added to the <head> if it is detected that the user has a
8232 * monospace font with inconsistent normal/bold/italic height. See
8232 * monospace font with inconsistent normal/bold/italic height. See
8233 * notebookmain.js. Such fonts will have keywords vertically offset with
8233 * notebookmain.js. Such fonts will have keywords vertically offset with
8234 * respect to the rest of the text. The user should select a better font.
8234 * respect to the rest of the text. The user should select a better font.
8235 * See: https://github.com/ipython/ipython/issues/1503
8235 * See: https://github.com/ipython/ipython/issues/1503
8236 *
8236 *
8237 * .CodeMirror span {
8237 * .CodeMirror span {
8238 * vertical-align: bottom;
8238 * vertical-align: bottom;
8239 * }
8239 * }
8240 */
8240 */
8241 .CodeMirror {
8241 .CodeMirror {
8242 line-height: 1.21429em;
8242 line-height: 1.21429em;
8243 /* Changed from 1em to our global default */
8243 /* Changed from 1em to our global default */
8244 height: auto;
8244 height: auto;
8245 /* Changed to auto to autogrow */
8245 /* Changed to auto to autogrow */
8246 background: none;
8246 background: none;
8247 /* Changed from white to allow our bg to show through */
8247 /* Changed from white to allow our bg to show through */
8248 }
8248 }
8249 .CodeMirror-scroll {
8249 .CodeMirror-scroll {
8250 /* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
8250 /* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
8251 /* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
8251 /* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
8252 overflow-y: hidden;
8252 overflow-y: hidden;
8253 overflow-x: auto;
8253 overflow-x: auto;
8254 }
8254 }
8255 .CodeMirror-lines {
8255 .CodeMirror-lines {
8256 /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
8256 /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
8257 /* we have set a different line-height and want this to scale with that. */
8257 /* we have set a different line-height and want this to scale with that. */
8258 padding: 0.4em;
8258 padding: 0.4em;
8259 }
8259 }
8260 .CodeMirror-linenumber {
8260 .CodeMirror-linenumber {
8261 padding: 0 8px 0 4px;
8261 padding: 0 8px 0 4px;
8262 }
8262 }
8263 .CodeMirror-gutters {
8263 .CodeMirror-gutters {
8264 border-bottom-left-radius: 4px;
8264 border-bottom-left-radius: 4px;
8265 border-top-left-radius: 4px;
8265 border-top-left-radius: 4px;
8266 }
8266 }
8267 .CodeMirror pre {
8267 .CodeMirror pre {
8268 /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
8268 /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
8269 /* .CodeMirror-lines */
8269 /* .CodeMirror-lines */
8270 padding: 0;
8270 padding: 0;
8271 border: 0;
8271 border: 0;
8272 border-radius: 0;
8272 border-radius: 0;
8273 }
8273 }
8274 .CodeMirror-vscrollbar,
8274 .CodeMirror-vscrollbar,
8275 .CodeMirror-hscrollbar {
8275 .CodeMirror-hscrollbar {
8276 display: none !important;
8276 display: none !important;
8277 }
8277 }
8278 /*
8278 /*
8279
8279
8280 Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
8280 Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
8281 Adapted from GitHub theme
8281 Adapted from GitHub theme
8282
8282
8283 */
8283 */
8284 pre code {
8284 pre code {
8285 display: block;
8285 display: block;
8286 padding: 0.5em;
8286 padding: 0.5em;
8287 }
8287 }
8288 .highlight-base,
8288 .highlight-base,
8289 pre code,
8289 pre code,
8290 pre .subst,
8290 pre .subst,
8291 pre .tag .title,
8291 pre .tag .title,
8292 pre .lisp .title,
8292 pre .lisp .title,
8293 pre .clojure .built_in,
8293 pre .clojure .built_in,
8294 pre .nginx .title {
8294 pre .nginx .title {
8295 color: black;
8295 color: black;
8296 }
8296 }
8297 .highlight-string,
8297 .highlight-string,
8298 pre .string,
8298 pre .string,
8299 pre .constant,
8299 pre .constant,
8300 pre .parent,
8300 pre .parent,
8301 pre .tag .value,
8301 pre .tag .value,
8302 pre .rules .value,
8302 pre .rules .value,
8303 pre .rules .value .number,
8303 pre .rules .value .number,
8304 pre .preprocessor,
8304 pre .preprocessor,
8305 pre .ruby .symbol,
8305 pre .ruby .symbol,
8306 pre .ruby .symbol .string,
8306 pre .ruby .symbol .string,
8307 pre .aggregate,
8307 pre .aggregate,
8308 pre .template_tag,
8308 pre .template_tag,
8309 pre .django .variable,
8309 pre .django .variable,
8310 pre .smalltalk .class,
8310 pre .smalltalk .class,
8311 pre .addition,
8311 pre .addition,
8312 pre .flow,
8312 pre .flow,
8313 pre .stream,
8313 pre .stream,
8314 pre .bash .variable,
8314 pre .bash .variable,
8315 pre .apache .tag,
8315 pre .apache .tag,
8316 pre .apache .cbracket,
8316 pre .apache .cbracket,
8317 pre .tex .command,
8317 pre .tex .command,
8318 pre .tex .special,
8318 pre .tex .special,
8319 pre .erlang_repl .function_or_atom,
8319 pre .erlang_repl .function_or_atom,
8320 pre .markdown .header {
8320 pre .markdown .header {
8321 color: #BA2121;
8321 color: #BA2121;
8322 }
8322 }
8323 .highlight-comment,
8323 .highlight-comment,
8324 pre .comment,
8324 pre .comment,
8325 pre .annotation,
8325 pre .annotation,
8326 pre .template_comment,
8326 pre .template_comment,
8327 pre .diff .header,
8327 pre .diff .header,
8328 pre .chunk,
8328 pre .chunk,
8329 pre .markdown .blockquote {
8329 pre .markdown .blockquote {
8330 color: #408080;
8330 color: #408080;
8331 font-style: italic;
8331 font-style: italic;
8332 }
8332 }
8333 .highlight-number,
8333 .highlight-number,
8334 pre .number,
8334 pre .number,
8335 pre .date,
8335 pre .date,
8336 pre .regexp,
8336 pre .regexp,
8337 pre .literal,
8337 pre .literal,
8338 pre .smalltalk .symbol,
8338 pre .smalltalk .symbol,
8339 pre .smalltalk .char,
8339 pre .smalltalk .char,
8340 pre .go .constant,
8340 pre .go .constant,
8341 pre .change,
8341 pre .change,
8342 pre .markdown .bullet,
8342 pre .markdown .bullet,
8343 pre .markdown .link_url {
8343 pre .markdown .link_url {
8344 color: #080;
8344 color: #080;
8345 }
8345 }
8346 pre .label,
8346 pre .label,
8347 pre .javadoc,
8347 pre .javadoc,
8348 pre .ruby .string,
8348 pre .ruby .string,
8349 pre .decorator,
8349 pre .decorator,
8350 pre .filter .argument,
8350 pre .filter .argument,
8351 pre .localvars,
8351 pre .localvars,
8352 pre .array,
8352 pre .array,
8353 pre .attr_selector,
8353 pre .attr_selector,
8354 pre .important,
8354 pre .important,
8355 pre .pseudo,
8355 pre .pseudo,
8356 pre .pi,
8356 pre .pi,
8357 pre .doctype,
8357 pre .doctype,
8358 pre .deletion,
8358 pre .deletion,
8359 pre .envvar,
8359 pre .envvar,
8360 pre .shebang,
8360 pre .shebang,
8361 pre .apache .sqbracket,
8361 pre .apache .sqbracket,
8362 pre .nginx .built_in,
8362 pre .nginx .built_in,
8363 pre .tex .formula,
8363 pre .tex .formula,
8364 pre .erlang_repl .reserved,
8364 pre .erlang_repl .reserved,
8365 pre .prompt,
8365 pre .prompt,
8366 pre .markdown .link_label,
8366 pre .markdown .link_label,
8367 pre .vhdl .attribute,
8367 pre .vhdl .attribute,
8368 pre .clojure .attribute,
8368 pre .clojure .attribute,
8369 pre .coffeescript .property {
8369 pre .coffeescript .property {
8370 color: #8888ff;
8370 color: #8888ff;
8371 }
8371 }
8372 .highlight-keyword,
8372 .highlight-keyword,
8373 pre .keyword,
8373 pre .keyword,
8374 pre .id,
8374 pre .id,
8375 pre .phpdoc,
8375 pre .phpdoc,
8376 pre .aggregate,
8376 pre .aggregate,
8377 pre .css .tag,
8377 pre .css .tag,
8378 pre .javadoctag,
8378 pre .javadoctag,
8379 pre .phpdoc,
8379 pre .phpdoc,
8380 pre .yardoctag,
8380 pre .yardoctag,
8381 pre .smalltalk .class,
8381 pre .smalltalk .class,
8382 pre .winutils,
8382 pre .winutils,
8383 pre .bash .variable,
8383 pre .bash .variable,
8384 pre .apache .tag,
8384 pre .apache .tag,
8385 pre .go .typename,
8385 pre .go .typename,
8386 pre .tex .command,
8386 pre .tex .command,
8387 pre .markdown .strong,
8387 pre .markdown .strong,
8388 pre .request,
8388 pre .request,
8389 pre .status {
8389 pre .status {
8390 color: #008000;
8390 color: #008000;
8391 font-weight: bold;
8391 font-weight: bold;
8392 }
8392 }
8393 .highlight-builtin,
8393 .highlight-builtin,
8394 pre .built_in {
8394 pre .built_in {
8395 color: #008000;
8395 color: #008000;
8396 }
8396 }
8397 pre .markdown .emphasis {
8397 pre .markdown .emphasis {
8398 font-style: italic;
8398 font-style: italic;
8399 }
8399 }
8400 pre .nginx .built_in {
8400 pre .nginx .built_in {
8401 font-weight: normal;
8401 font-weight: normal;
8402 }
8402 }
8403 pre .coffeescript .javascript,
8403 pre .coffeescript .javascript,
8404 pre .javascript .xml,
8404 pre .javascript .xml,
8405 pre .tex .formula,
8405 pre .tex .formula,
8406 pre .xml .javascript,
8406 pre .xml .javascript,
8407 pre .xml .vbscript,
8407 pre .xml .vbscript,
8408 pre .xml .css,
8408 pre .xml .css,
8409 pre .xml .cdata {
8409 pre .xml .cdata {
8410 opacity: 0.5;
8410 opacity: 0.5;
8411 }
8411 }
8412 /* apply the same style to codemirror */
8412 /* apply the same style to codemirror */
8413 .cm-s-ipython span.cm-variable {
8413 .cm-s-ipython span.cm-variable {
8414 color: black;
8414 color: black;
8415 }
8415 }
8416 .cm-s-ipython span.cm-keyword {
8416 .cm-s-ipython span.cm-keyword {
8417 color: #008000;
8417 color: #008000;
8418 font-weight: bold;
8418 font-weight: bold;
8419 }
8419 }
8420 .cm-s-ipython span.cm-number {
8420 .cm-s-ipython span.cm-number {
8421 color: #080;
8421 color: #080;
8422 }
8422 }
8423 .cm-s-ipython span.cm-comment {
8423 .cm-s-ipython span.cm-comment {
8424 color: #408080;
8424 color: #408080;
8425 font-style: italic;
8425 font-style: italic;
8426 }
8426 }
8427 .cm-s-ipython span.cm-string {
8427 .cm-s-ipython span.cm-string {
8428 color: #BA2121;
8428 color: #BA2121;
8429 }
8429 }
8430 .cm-s-ipython span.cm-builtin {
8430 .cm-s-ipython span.cm-builtin {
8431 color: #008000;
8431 color: #008000;
8432 }
8432 }
8433 .cm-s-ipython span.cm-error {
8433 .cm-s-ipython span.cm-error {
8434 color: #f00;
8434 color: #f00;
8435 }
8435 }
8436 .cm-s-ipython span.cm-operator {
8436 .cm-s-ipython span.cm-operator {
8437 color: #AA22FF;
8437 color: #AA22FF;
8438 font-weight: bold;
8438 font-weight: bold;
8439 }
8439 }
8440 .cm-s-ipython span.cm-meta {
8440 .cm-s-ipython span.cm-meta {
8441 color: #AA22FF;
8441 color: #AA22FF;
8442 }
8442 }
8443 .cm-s-ipython span.cm-tab {
8443 .cm-s-ipython span.cm-tab {
8444 background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
8444 background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
8445 background-position: right;
8445 background-position: right;
8446 background-repeat: no-repeat;
8446 background-repeat: no-repeat;
8447 }
8447 }
8448 div.output_wrapper {
8448 div.output_wrapper {
8449 /* this position must be relative to enable descendents to be absolute within it */
8449 /* this position must be relative to enable descendents to be absolute within it */
8450 position: relative;
8450 position: relative;
8451 /* Old browsers */
8451 /* Old browsers */
8452 display: -webkit-box;
8452 display: -webkit-box;
8453 -webkit-box-orient: vertical;
8453 -webkit-box-orient: vertical;
8454 -webkit-box-align: stretch;
8454 -webkit-box-align: stretch;
8455 display: -moz-box;
8455 display: -moz-box;
8456 -moz-box-orient: vertical;
8456 -moz-box-orient: vertical;
8457 -moz-box-align: stretch;
8457 -moz-box-align: stretch;
8458 display: box;
8458 display: box;
8459 box-orient: vertical;
8459 box-orient: vertical;
8460 box-align: stretch;
8460 box-align: stretch;
8461 /* Modern browsers */
8461 /* Modern browsers */
8462 display: flex;
8462 display: flex;
8463 flex-direction: column;
8463 flex-direction: column;
8464 align-items: stretch;
8464 align-items: stretch;
8465 /* Old browsers */
8465 /* Old browsers */
8466 -webkit-box-flex: 0;
8466 -webkit-box-flex: 0;
8467 -moz-box-flex: 0;
8467 -moz-box-flex: 0;
8468 box-flex: 0;
8468 box-flex: 0;
8469 /* Modern browsers */
8469 /* Modern browsers */
8470 flex: none;
8470 flex: none;
8471 }
8471 }
8472 /* class for the output area when it should be height-limited */
8472 /* class for the output area when it should be height-limited */
8473 div.output_scroll {
8473 div.output_scroll {
8474 /* ideally, this would be max-height, but FF barfs all over that */
8474 /* ideally, this would be max-height, but FF barfs all over that */
8475 height: 24em;
8475 height: 24em;
8476 /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
8476 /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
8477 width: 100%;
8477 width: 100%;
8478 overflow: auto;
8478 overflow: auto;
8479 border-radius: 4px;
8479 border-radius: 4px;
8480 -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
8480 -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
8481 box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
8481 box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
8482 display: block;
8482 display: block;
8483 }
8483 }
8484 /* output div while it is collapsed */
8484 /* output div while it is collapsed */
8485 div.output_collapsed {
8485 div.output_collapsed {
8486 margin: 0px;
8486 margin: 0px;
8487 padding: 0px;
8487 padding: 0px;
8488 /* Old browsers */
8488 /* Old browsers */
8489 display: -webkit-box;
8489 display: -webkit-box;
8490 -webkit-box-orient: vertical;
8490 -webkit-box-orient: vertical;
8491 -webkit-box-align: stretch;
8491 -webkit-box-align: stretch;
8492 display: -moz-box;
8492 display: -moz-box;
8493 -moz-box-orient: vertical;
8493 -moz-box-orient: vertical;
8494 -moz-box-align: stretch;
8494 -moz-box-align: stretch;
8495 display: box;
8495 display: box;
8496 box-orient: vertical;
8496 box-orient: vertical;
8497 box-align: stretch;
8497 box-align: stretch;
8498 /* Modern browsers */
8498 /* Modern browsers */
8499 display: flex;
8499 display: flex;
8500 flex-direction: column;
8500 flex-direction: column;
8501 align-items: stretch;
8501 align-items: stretch;
8502 /* Old browsers */
8502 /* Old browsers */
8503 -webkit-box-flex: 0;
8503 -webkit-box-flex: 0;
8504 -moz-box-flex: 0;
8504 -moz-box-flex: 0;
8505 box-flex: 0;
8505 box-flex: 0;
8506 /* Modern browsers */
8506 /* Modern browsers */
8507 flex: none;
8507 flex: none;
8508 }
8508 }
8509 div.out_prompt_overlay {
8509 div.out_prompt_overlay {
8510 height: 100%;
8510 height: 100%;
8511 padding: 0px 0.4em;
8511 padding: 0px 0.4em;
8512 position: absolute;
8512 position: absolute;
8513 border-radius: 4px;
8513 border-radius: 4px;
8514 }
8514 }
8515 div.out_prompt_overlay:hover {
8515 div.out_prompt_overlay:hover {
8516 /* use inner shadow to get border that is computed the same on WebKit/FF */
8516 /* use inner shadow to get border that is computed the same on WebKit/FF */
8517 -webkit-box-shadow: inset 0 0 1px #000000;
8517 -webkit-box-shadow: inset 0 0 1px #000000;
8518 box-shadow: inset 0 0 1px #000000;
8518 box-shadow: inset 0 0 1px #000000;
8519 background: rgba(240, 240, 240, 0.5);
8519 background: rgba(240, 240, 240, 0.5);
8520 }
8520 }
8521 div.output_prompt {
8521 div.output_prompt {
8522 color: #8b0000;
8522 color: #8b0000;
8523 }
8523 }
8524 /* This class is the outer container of all output sections. */
8524 /* This class is the outer container of all output sections. */
8525 div.output_area {
8525 div.output_area {
8526 padding: 0px;
8526 padding: 0px;
8527 page-break-inside: avoid;
8527 page-break-inside: avoid;
8528 /* Old browsers */
8528 /* Old browsers */
8529 display: -webkit-box;
8529 display: -webkit-box;
8530 -webkit-box-orient: horizontal;
8530 -webkit-box-orient: horizontal;
8531 -webkit-box-align: stretch;
8531 -webkit-box-align: stretch;
8532 display: -moz-box;
8532 display: -moz-box;
8533 -moz-box-orient: horizontal;
8533 -moz-box-orient: horizontal;
8534 -moz-box-align: stretch;
8534 -moz-box-align: stretch;
8535 display: box;
8535 display: box;
8536 box-orient: horizontal;
8536 box-orient: horizontal;
8537 box-align: stretch;
8537 box-align: stretch;
8538 /* Modern browsers */
8538 /* Modern browsers */
8539 display: flex;
8539 display: flex;
8540 flex-direction: row;
8540 flex-direction: row;
8541 align-items: stretch;
8541 align-items: stretch;
8542 /* Old browsers */
8542 /* Old browsers */
8543 -webkit-box-flex: 0;
8543 -webkit-box-flex: 0;
8544 -moz-box-flex: 0;
8544 -moz-box-flex: 0;
8545 box-flex: 0;
8545 box-flex: 0;
8546 /* Modern browsers */
8546 /* Modern browsers */
8547 flex: none;
8547 flex: none;
8548 }
8548 }
8549 div.output_area .MathJax_Display {
8549 div.output_area .MathJax_Display {
8550 text-align: left !important;
8550 text-align: left !important;
8551 }
8551 }
8552 div.output_area .rendered_html table {
8552 div.output_area .rendered_html table {
8553 margin-left: 0;
8553 margin-left: 0;
8554 margin-right: 0;
8554 margin-right: 0;
8555 }
8555 }
8556 div.output_area .rendered_html img {
8556 div.output_area .rendered_html img {
8557 margin-left: 0;
8557 margin-left: 0;
8558 margin-right: 0;
8558 margin-right: 0;
8559 }
8559 }
8560 /* This is needed to protect the pre formating from global settings such
8560 /* This is needed to protect the pre formating from global settings such
8561 as that of bootstrap */
8561 as that of bootstrap */
8562 .output {
8562 .output {
8563 /* Old browsers */
8563 /* Old browsers */
8564 display: -webkit-box;
8564 display: -webkit-box;
8565 -webkit-box-orient: vertical;
8565 -webkit-box-orient: vertical;
8566 -webkit-box-align: stretch;
8566 -webkit-box-align: stretch;
8567 display: -moz-box;
8567 display: -moz-box;
8568 -moz-box-orient: vertical;
8568 -moz-box-orient: vertical;
8569 -moz-box-align: stretch;
8569 -moz-box-align: stretch;
8570 display: box;
8570 display: box;
8571 box-orient: vertical;
8571 box-orient: vertical;
8572 box-align: stretch;
8572 box-align: stretch;
8573 /* Modern browsers */
8573 /* Modern browsers */
8574 display: flex;
8574 display: flex;
8575 flex-direction: column;
8575 flex-direction: column;
8576 align-items: stretch;
8576 align-items: stretch;
8577 /* Old browsers */
8577 /* Old browsers */
8578 -webkit-box-flex: 0;
8578 -webkit-box-flex: 0;
8579 -moz-box-flex: 0;
8579 -moz-box-flex: 0;
8580 box-flex: 0;
8580 box-flex: 0;
8581 /* Modern browsers */
8581 /* Modern browsers */
8582 flex: none;
8582 flex: none;
8583 }
8583 }
8584 @media (max-width: 480px) {
8584 @media (max-width: 480px) {
8585 div.output_area {
8585 div.output_area {
8586 /* Old browsers */
8586 /* Old browsers */
8587 display: -webkit-box;
8587 display: -webkit-box;
8588 -webkit-box-orient: vertical;
8588 -webkit-box-orient: vertical;
8589 -webkit-box-align: stretch;
8589 -webkit-box-align: stretch;
8590 display: -moz-box;
8590 display: -moz-box;
8591 -moz-box-orient: vertical;
8591 -moz-box-orient: vertical;
8592 -moz-box-align: stretch;
8592 -moz-box-align: stretch;
8593 display: box;
8593 display: box;
8594 box-orient: vertical;
8594 box-orient: vertical;
8595 box-align: stretch;
8595 box-align: stretch;
8596 /* Modern browsers */
8596 /* Modern browsers */
8597 display: flex;
8597 display: flex;
8598 flex-direction: column;
8598 flex-direction: column;
8599 align-items: stretch;
8599 align-items: stretch;
8600 /* Old browsers */
8600 /* Old browsers */
8601 -webkit-box-flex: 0;
8601 -webkit-box-flex: 0;
8602 -moz-box-flex: 0;
8602 -moz-box-flex: 0;
8603 box-flex: 0;
8603 box-flex: 0;
8604 /* Modern browsers */
8604 /* Modern browsers */
8605 flex: none;
8605 flex: none;
8606 }
8606 }
8607 }
8607 }
8608 div.output_area pre {
8608 div.output_area pre {
8609 margin: 0;
8609 margin: 0;
8610 padding: 0;
8610 padding: 0;
8611 border: 0;
8611 border: 0;
8612 vertical-align: baseline;
8612 vertical-align: baseline;
8613 color: #000000;
8613 color: #000000;
8614 background-color: transparent;
8614 background-color: transparent;
8615 border-radius: 0;
8615 border-radius: 0;
8616 }
8616 }
8617 /* This class is for the output subarea inside the output_area and after
8617 /* This class is for the output subarea inside the output_area and after
8618 the prompt div. */
8618 the prompt div. */
8619 div.output_subarea {
8619 div.output_subarea {
8620 padding: 0.4em 0.4em 0em 0.4em;
8620 padding: 0.4em 0.4em 0em 0.4em;
8621 /* Old browsers */
8621 /* Old browsers */
8622 -webkit-box-flex: 1;
8622 -webkit-box-flex: 1;
8623 -moz-box-flex: 1;
8623 -moz-box-flex: 1;
8624 box-flex: 1;
8624 box-flex: 1;
8625 /* Modern browsers */
8625 /* Modern browsers */
8626 flex: 1;
8626 flex: 1;
8627 }
8627 }
8628 /* The rest of the output_* classes are for special styling of the different
8628 /* The rest of the output_* classes are for special styling of the different
8629 output types */
8629 output types */
8630 /* all text output has this class: */
8630 /* all text output has this class: */
8631 div.output_text {
8631 div.output_text {
8632 text-align: left;
8632 text-align: left;
8633 color: #000000;
8633 color: #000000;
8634 /* This has to match that of the the CodeMirror class line-height below */
8634 /* This has to match that of the the CodeMirror class line-height below */
8635 line-height: 1.21429em;
8635 line-height: 1.21429em;
8636 }
8636 }
8637 /* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
8637 /* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
8638 div.output_stderr {
8638 div.output_stderr {
8639 background: #fdd;
8639 background: #fdd;
8640 /* very light red background for stderr */
8640 /* very light red background for stderr */
8641 }
8641 }
8642 div.output_latex {
8642 div.output_latex {
8643 text-align: left;
8643 text-align: left;
8644 }
8644 }
8645 /* Empty output_javascript divs should have no height */
8645 /* Empty output_javascript divs should have no height */
8646 div.output_javascript:empty {
8646 div.output_javascript:empty {
8647 padding: 0;
8647 padding: 0;
8648 }
8648 }
8649 .js-error {
8649 .js-error {
8650 color: darkred;
8650 color: darkred;
8651 }
8651 }
8652 /* raw_input styles */
8652 /* raw_input styles */
8653 div.raw_input_container {
8653 div.raw_input_container {
8654 font-family: monospace;
8654 font-family: monospace;
8655 padding-top: 5px;
8655 padding-top: 5px;
8656 }
8656 }
8657 span.raw_input_prompt {
8657 span.raw_input_prompt {
8658 /* nothing needed here */
8658 /* nothing needed here */
8659 }
8659 }
8660 input.raw_input {
8660 input.raw_input {
8661 font-family: inherit;
8661 font-family: inherit;
8662 font-size: inherit;
8662 font-size: inherit;
8663 color: inherit;
8663 color: inherit;
8664 width: auto;
8664 width: auto;
8665 /* make sure input baseline aligns with prompt */
8665 /* make sure input baseline aligns with prompt */
8666 vertical-align: baseline;
8666 vertical-align: baseline;
8667 /* padding + margin = 0.5em between prompt and cursor */
8667 /* padding + margin = 0.5em between prompt and cursor */
8668 padding: 0em 0.25em;
8668 padding: 0em 0.25em;
8669 margin: 0em 0.25em;
8669 margin: 0em 0.25em;
8670 }
8670 }
8671 input.raw_input:focus {
8671 input.raw_input:focus {
8672 box-shadow: none;
8672 box-shadow: none;
8673 }
8673 }
8674 p.p-space {
8674 p.p-space {
8675 margin-bottom: 10px;
8675 margin-bottom: 10px;
8676 }
8676 }
8677 .rendered_html {
8677 .rendered_html {
8678 color: #000000;
8678 color: #000000;
8679 /* any extras will just be numbers: */
8679 /* any extras will just be numbers: */
8680 }
8680 }
8681 .rendered_html em {
8681 .rendered_html em {
8682 font-style: italic;
8682 font-style: italic;
8683 }
8683 }
8684 .rendered_html strong {
8684 .rendered_html strong {
8685 font-weight: bold;
8685 font-weight: bold;
8686 }
8686 }
8687 .rendered_html u {
8687 .rendered_html u {
8688 text-decoration: underline;
8688 text-decoration: underline;
8689 }
8689 }
8690 .rendered_html :link {
8690 .rendered_html :link {
8691 text-decoration: underline;
8691 text-decoration: underline;
8692 }
8692 }
8693 .rendered_html :visited {
8693 .rendered_html :visited {
8694 text-decoration: underline;
8694 text-decoration: underline;
8695 }
8695 }
8696 .rendered_html h1 {
8696 .rendered_html h1 {
8697 font-size: 185.7%;
8697 font-size: 185.7%;
8698 margin: 1.08em 0 0 0;
8698 margin: 1.08em 0 0 0;
8699 font-weight: bold;
8699 font-weight: bold;
8700 line-height: 1.0;
8700 line-height: 1.0;
8701 }
8701 }
8702 .rendered_html h2 {
8702 .rendered_html h2 {
8703 font-size: 157.1%;
8703 font-size: 157.1%;
8704 margin: 1.27em 0 0 0;
8704 margin: 1.27em 0 0 0;
8705 font-weight: bold;
8705 font-weight: bold;
8706 line-height: 1.0;
8706 line-height: 1.0;
8707 }
8707 }
8708 .rendered_html h3 {
8708 .rendered_html h3 {
8709 font-size: 128.6%;
8709 font-size: 128.6%;
8710 margin: 1.55em 0 0 0;
8710 margin: 1.55em 0 0 0;
8711 font-weight: bold;
8711 font-weight: bold;
8712 line-height: 1.0;
8712 line-height: 1.0;
8713 }
8713 }
8714 .rendered_html h4 {
8714 .rendered_html h4 {
8715 font-size: 100%;
8715 font-size: 100%;
8716 margin: 2em 0 0 0;
8716 margin: 2em 0 0 0;
8717 font-weight: bold;
8717 font-weight: bold;
8718 line-height: 1.0;
8718 line-height: 1.0;
8719 }
8719 }
8720 .rendered_html h5 {
8720 .rendered_html h5 {
8721 font-size: 100%;
8721 font-size: 100%;
8722 margin: 2em 0 0 0;
8722 margin: 2em 0 0 0;
8723 font-weight: bold;
8723 font-weight: bold;
8724 line-height: 1.0;
8724 line-height: 1.0;
8725 font-style: italic;
8725 font-style: italic;
8726 }
8726 }
8727 .rendered_html h6 {
8727 .rendered_html h6 {
8728 font-size: 100%;
8728 font-size: 100%;
8729 margin: 2em 0 0 0;
8729 margin: 2em 0 0 0;
8730 font-weight: bold;
8730 font-weight: bold;
8731 line-height: 1.0;
8731 line-height: 1.0;
8732 font-style: italic;
8732 font-style: italic;
8733 }
8733 }
8734 .rendered_html h1:first-child {
8734 .rendered_html h1:first-child {
8735 margin-top: 0.538em;
8735 margin-top: 0.538em;
8736 }
8736 }
8737 .rendered_html h2:first-child {
8737 .rendered_html h2:first-child {
8738 margin-top: 0.636em;
8738 margin-top: 0.636em;
8739 }
8739 }
8740 .rendered_html h3:first-child {
8740 .rendered_html h3:first-child {
8741 margin-top: 0.777em;
8741 margin-top: 0.777em;
8742 }
8742 }
8743 .rendered_html h4:first-child {
8743 .rendered_html h4:first-child {
8744 margin-top: 1em;
8744 margin-top: 1em;
8745 }
8745 }
8746 .rendered_html h5:first-child {
8746 .rendered_html h5:first-child {
8747 margin-top: 1em;
8747 margin-top: 1em;
8748 }
8748 }
8749 .rendered_html h6:first-child {
8749 .rendered_html h6:first-child {
8750 margin-top: 1em;
8750 margin-top: 1em;
8751 }
8751 }
8752 .rendered_html ul {
8752 .rendered_html ul {
8753 list-style: disc;
8753 list-style: disc;
8754 margin: 0em 2em;
8754 margin: 0em 2em;
8755 padding-left: 0px;
8755 padding-left: 0px;
8756 }
8756 }
8757 .rendered_html ul ul {
8757 .rendered_html ul ul {
8758 list-style: square;
8758 list-style: square;
8759 margin: 0em 2em;
8759 margin: 0em 2em;
8760 }
8760 }
8761 .rendered_html ul ul ul {
8761 .rendered_html ul ul ul {
8762 list-style: circle;
8762 list-style: circle;
8763 margin: 0em 2em;
8763 margin: 0em 2em;
8764 }
8764 }
8765 .rendered_html ol {
8765 .rendered_html ol {
8766 list-style: decimal;
8766 list-style: decimal;
8767 margin: 0em 2em;
8767 margin: 0em 2em;
8768 padding-left: 0px;
8768 padding-left: 0px;
8769 }
8769 }
8770 .rendered_html ol ol {
8770 .rendered_html ol ol {
8771 list-style: upper-alpha;
8771 list-style: upper-alpha;
8772 margin: 0em 2em;
8772 margin: 0em 2em;
8773 }
8773 }
8774 .rendered_html ol ol ol {
8774 .rendered_html ol ol ol {
8775 list-style: lower-alpha;
8775 list-style: lower-alpha;
8776 margin: 0em 2em;
8776 margin: 0em 2em;
8777 }
8777 }
8778 .rendered_html ol ol ol ol {
8778 .rendered_html ol ol ol ol {
8779 list-style: lower-roman;
8779 list-style: lower-roman;
8780 margin: 0em 2em;
8780 margin: 0em 2em;
8781 }
8781 }
8782 .rendered_html ol ol ol ol ol {
8782 .rendered_html ol ol ol ol ol {
8783 list-style: decimal;
8783 list-style: decimal;
8784 margin: 0em 2em;
8784 margin: 0em 2em;
8785 }
8785 }
8786 .rendered_html * + ul {
8786 .rendered_html * + ul {
8787 margin-top: 1em;
8787 margin-top: 1em;
8788 }
8788 }
8789 .rendered_html * + ol {
8789 .rendered_html * + ol {
8790 margin-top: 1em;
8790 margin-top: 1em;
8791 }
8791 }
8792 .rendered_html hr {
8792 .rendered_html hr {
8793 color: #000000;
8793 color: #000000;
8794 background-color: #000000;
8794 background-color: #000000;
8795 }
8795 }
8796 .rendered_html pre {
8796 .rendered_html pre {
8797 margin: 1em 2em;
8797 margin: 1em 2em;
8798 }
8798 }
8799 .rendered_html pre,
8799 .rendered_html pre,
8800 .rendered_html code {
8800 .rendered_html code {
8801 border: 0;
8801 border: 0;
8802 background-color: #ffffff;
8802 background-color: #ffffff;
8803 color: #000000;
8803 color: #000000;
8804 font-size: 100%;
8804 font-size: 100%;
8805 padding: 0px;
8805 padding: 0px;
8806 }
8806 }
8807 .rendered_html blockquote {
8807 .rendered_html blockquote {
8808 margin: 1em 2em;
8808 margin: 1em 2em;
8809 }
8809 }
8810 .rendered_html table {
8810 .rendered_html table {
8811 margin-left: auto;
8811 margin-left: auto;
8812 margin-right: auto;
8812 margin-right: auto;
8813 border: 1px solid #000000;
8813 border: 1px solid #000000;
8814 border-collapse: collapse;
8814 border-collapse: collapse;
8815 }
8815 }
8816 .rendered_html tr,
8816 .rendered_html tr,
8817 .rendered_html th,
8817 .rendered_html th,
8818 .rendered_html td {
8818 .rendered_html td {
8819 border: 1px solid #000000;
8819 border: 1px solid #000000;
8820 border-collapse: collapse;
8820 border-collapse: collapse;
8821 margin: 1em 2em;
8821 margin: 1em 2em;
8822 }
8822 }
8823 .rendered_html td,
8823 .rendered_html td,
8824 .rendered_html th {
8824 .rendered_html th {
8825 text-align: left;
8825 text-align: left;
8826 vertical-align: middle;
8826 vertical-align: middle;
8827 padding: 4px;
8827 padding: 4px;
8828 }
8828 }
8829 .rendered_html th {
8829 .rendered_html th {
8830 font-weight: bold;
8830 font-weight: bold;
8831 }
8831 }
8832 .rendered_html * + table {
8832 .rendered_html * + table {
8833 margin-top: 1em;
8833 margin-top: 1em;
8834 }
8834 }
8835 .rendered_html p {
8835 .rendered_html p {
8836 text-align: justify;
8836 text-align: justify;
8837 }
8837 }
8838 .rendered_html * + p {
8838 .rendered_html * + p {
8839 margin-top: 1em;
8839 margin-top: 1em;
8840 }
8840 }
8841 .rendered_html img {
8841 .rendered_html img {
8842 display: block;
8842 display: block;
8843 margin-left: auto;
8843 margin-left: auto;
8844 margin-right: auto;
8844 margin-right: auto;
8845 }
8845 }
8846 .rendered_html * + img {
8846 .rendered_html * + img {
8847 margin-top: 1em;
8847 margin-top: 1em;
8848 }
8848 }
8849 div.text_cell {
8849 div.text_cell {
8850 padding: 5px 5px 5px 0px;
8850 padding: 5px 5px 5px 0px;
8851 /* Old browsers */
8851 /* Old browsers */
8852 display: -webkit-box;
8852 display: -webkit-box;
8853 -webkit-box-orient: horizontal;
8853 -webkit-box-orient: horizontal;
8854 -webkit-box-align: stretch;
8854 -webkit-box-align: stretch;
8855 display: -moz-box;
8855 display: -moz-box;
8856 -moz-box-orient: horizontal;
8856 -moz-box-orient: horizontal;
8857 -moz-box-align: stretch;
8857 -moz-box-align: stretch;
8858 display: box;
8858 display: box;
8859 box-orient: horizontal;
8859 box-orient: horizontal;
8860 box-align: stretch;
8860 box-align: stretch;
8861 /* Modern browsers */
8861 /* Modern browsers */
8862 display: flex;
8862 display: flex;
8863 flex-direction: row;
8863 flex-direction: row;
8864 align-items: stretch;
8864 align-items: stretch;
8865 /* Old browsers */
8865 /* Old browsers */
8866 -webkit-box-flex: 0;
8866 -webkit-box-flex: 0;
8867 -moz-box-flex: 0;
8867 -moz-box-flex: 0;
8868 box-flex: 0;
8868 box-flex: 0;
8869 /* Modern browsers */
8869 /* Modern browsers */
8870 flex: none;
8870 flex: none;
8871 }
8871 }
8872 @media (max-width: 480px) {
8872 @media (max-width: 480px) {
8873 div.text_cell > div.prompt {
8873 div.text_cell > div.prompt {
8874 display: none;
8874 display: none;
8875 }
8875 }
8876 }
8876 }
8877 div.text_cell_render {
8877 div.text_cell_render {
8878 /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
8878 /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
8879 outline: none;
8879 outline: none;
8880 resize: none;
8880 resize: none;
8881 width: inherit;
8881 width: inherit;
8882 border-style: none;
8882 border-style: none;
8883 padding: 0.5em 0.5em 0.5em 0.4em;
8883 padding: 0.5em 0.5em 0.5em 0.4em;
8884 color: #000000;
8884 color: #000000;
8885 box-sizing: border-box;
8885 box-sizing: border-box;
8886 -moz-box-sizing: border-box;
8886 -moz-box-sizing: border-box;
8887 -webkit-box-sizing: border-box;
8887 -webkit-box-sizing: border-box;
8888 }
8888 }
8889 a.anchor-link:link {
8889 a.anchor-link:link {
8890 text-decoration: none;
8890 text-decoration: none;
8891 padding: 0px 20px;
8891 padding: 0px 20px;
8892 visibility: hidden;
8892 visibility: hidden;
8893 }
8893 }
8894 h1:hover .anchor-link,
8894 h1:hover .anchor-link,
8895 h2:hover .anchor-link,
8895 h2:hover .anchor-link,
8896 h3:hover .anchor-link,
8896 h3:hover .anchor-link,
8897 h4:hover .anchor-link,
8897 h4:hover .anchor-link,
8898 h5:hover .anchor-link,
8898 h5:hover .anchor-link,
8899 h6:hover .anchor-link {
8899 h6:hover .anchor-link {
8900 visibility: visible;
8900 visibility: visible;
8901 }
8901 }
8902 div.cell.text_cell.rendered {
8902 div.cell.text_cell.rendered {
8903 padding: 0px;
8903 padding: 0px;
8904 }
8904 }
8905 .cm-s-heading-1,
8905 .cm-s-heading-1,
8906 .cm-s-heading-2,
8906 .cm-s-heading-2,
8907 .cm-s-heading-3,
8907 .cm-s-heading-3,
8908 .cm-s-heading-4,
8908 .cm-s-heading-4,
8909 .cm-s-heading-5,
8909 .cm-s-heading-5,
8910 .cm-s-heading-6 {
8910 .cm-s-heading-6 {
8911 font-weight: bold;
8911 font-weight: bold;
8912 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
8912 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
8913 }
8913 }
8914 .cm-s-heading-1 {
8914 .cm-s-heading-1 {
8915 font-size: 150%;
8915 font-size: 150%;
8916 }
8916 }
8917 .cm-s-heading-2 {
8917 .cm-s-heading-2 {
8918 font-size: 130%;
8918 font-size: 130%;
8919 }
8919 }
8920 .cm-s-heading-3 {
8920 .cm-s-heading-3 {
8921 font-size: 120%;
8921 font-size: 120%;
8922 }
8922 }
8923 .cm-s-heading-4 {
8923 .cm-s-heading-4 {
8924 font-size: 110%;
8924 font-size: 110%;
8925 }
8925 }
8926 .cm-s-heading-5 {
8926 .cm-s-heading-5 {
8927 font-size: 100%;
8927 font-size: 100%;
8928 font-style: italic;
8928 font-style: italic;
8929 }
8929 }
8930 .cm-s-heading-6 {
8930 .cm-s-heading-6 {
8931 font-size: 90%;
8931 font-size: 90%;
8932 font-style: italic;
8932 font-style: italic;
8933 }
8933 }
8934 .widget-area {
8934 .widget-area {
8935 /*
8935 /*
8936 LESS file that styles IPython notebook widgets and the area they sit in.
8936 LESS file that styles IPython notebook widgets and the area they sit in.
8937
8937
8938 The widget area typically looks something like this:
8938 The widget area typically looks something like this:
8939 +------------------------------------------+
8939 +------------------------------------------+
8940 | widget-area |
8940 | widget-area |
8941 | +--------+---------------------------+ |
8941 | +--------+---------------------------+ |
8942 | | prompt | widget-subarea | |
8942 | | prompt | widget-subarea | |
8943 | | | +--------+ +--------+ | |
8943 | | | +--------+ +--------+ | |
8944 | | | | widget | | widget | | |
8944 | | | | widget | | widget | | |
8945 | | | +--------+ +--------+ | |
8945 | | | +--------+ +--------+ | |
8946 | +--------+---------------------------+ |
8946 | +--------+---------------------------+ |
8947 +------------------------------------------+
8947 +------------------------------------------+
8948 */
8948 */
8949 page-break-inside: avoid;
8949 page-break-inside: avoid;
8950 /* Old browsers */
8950 /* Old browsers */
8951 display: -webkit-box;
8951 display: -webkit-box;
8952 -webkit-box-orient: horizontal;
8952 -webkit-box-orient: horizontal;
8953 -webkit-box-align: stretch;
8953 -webkit-box-align: stretch;
8954 display: -moz-box;
8954 display: -moz-box;
8955 -moz-box-orient: horizontal;
8955 -moz-box-orient: horizontal;
8956 -moz-box-align: stretch;
8956 -moz-box-align: stretch;
8957 display: box;
8957 display: box;
8958 box-orient: horizontal;
8958 box-orient: horizontal;
8959 box-align: stretch;
8959 box-align: stretch;
8960 /* Modern browsers */
8960 /* Modern browsers */
8961 display: flex;
8961 display: flex;
8962 flex-direction: row;
8962 flex-direction: row;
8963 align-items: stretch;
8963 align-items: stretch;
8964 /* Old browsers */
8964 /* Old browsers */
8965 -webkit-box-flex: 0;
8965 -webkit-box-flex: 0;
8966 -moz-box-flex: 0;
8966 -moz-box-flex: 0;
8967 box-flex: 0;
8967 box-flex: 0;
8968 /* Modern browsers */
8968 /* Modern browsers */
8969 flex: none;
8969 flex: none;
8970 }
8970 }
8971 .widget-area .widget-subarea {
8971 .widget-area .widget-subarea {
8972 padding: 0.44em 0.4em 0.4em 1px;
8972 padding: 0.44em 0.4em 0.4em 1px;
8973 margin-left: 6px;
8973 margin-left: 6px;
8974 box-sizing: border-box;
8974 box-sizing: border-box;
8975 -moz-box-sizing: border-box;
8975 -moz-box-sizing: border-box;
8976 -webkit-box-sizing: border-box;
8976 -webkit-box-sizing: border-box;
8977 /* Old browsers */
8977 /* Old browsers */
8978 display: -webkit-box;
8978 display: -webkit-box;
8979 -webkit-box-orient: vertical;
8979 -webkit-box-orient: vertical;
8980 -webkit-box-align: stretch;
8980 -webkit-box-align: stretch;
8981 display: -moz-box;
8981 display: -moz-box;
8982 -moz-box-orient: vertical;
8982 -moz-box-orient: vertical;
8983 -moz-box-align: stretch;
8983 -moz-box-align: stretch;
8984 display: box;
8984 display: box;
8985 box-orient: vertical;
8985 box-orient: vertical;
8986 box-align: stretch;
8986 box-align: stretch;
8987 /* Modern browsers */
8987 /* Modern browsers */
8988 display: flex;
8988 display: flex;
8989 flex-direction: column;
8989 flex-direction: column;
8990 align-items: stretch;
8990 align-items: stretch;
8991 /* Old browsers */
8991 /* Old browsers */
8992 -webkit-box-flex: 0;
8992 -webkit-box-flex: 0;
8993 -moz-box-flex: 0;
8993 -moz-box-flex: 0;
8994 box-flex: 0;
8994 box-flex: 0;
8995 /* Modern browsers */
8995 /* Modern browsers */
8996 flex: none;
8996 flex: none;
8997 /* Old browsers */
8997 /* Old browsers */
8998 -webkit-box-flex: 2;
8998 -webkit-box-flex: 2;
8999 -moz-box-flex: 2;
8999 -moz-box-flex: 2;
9000 box-flex: 2;
9000 box-flex: 2;
9001 /* Modern browsers */
9001 /* Modern browsers */
9002 flex: 2;
9002 flex: 2;
9003 /* Old browsers */
9003 /* Old browsers */
9004 -webkit-box-align: start;
9004 -webkit-box-align: start;
9005 -moz-box-align: start;
9005 -moz-box-align: start;
9006 box-align: start;
9006 box-align: start;
9007 /* Modern browsers */
9007 /* Modern browsers */
9008 align-items: flex-start;
9008 align-items: flex-start;
9009 }
9009 }
9010 /* THE CLASSES BELOW CAN APPEAR ANYWHERE IN THE DOM (POSSIBLEY OUTSIDE OF
9010 /* THE CLASSES BELOW CAN APPEAR ANYWHERE IN THE DOM (POSSIBLEY OUTSIDE OF
9011 THE WIDGET AREA). */
9011 THE WIDGET AREA). */
9012 .widget-hlabel {
9012 .widget-hlabel {
9013 /* Horizontal Label */
9013 /* Horizontal Label */
9014 min-width: 10ex;
9014 min-width: 10ex;
9015 padding-right: 8px;
9015 padding-right: 8px;
9016 padding-top: 5px;
9016 padding-top: 5px;
9017 text-align: right;
9017 text-align: right;
9018 vertical-align: text-top;
9018 vertical-align: text-top;
9019 }
9019 }
9020 .widget-vlabel {
9020 .widget-vlabel {
9021 /* Vertical Label */
9021 /* Vertical Label */
9022 padding-bottom: 5px;
9022 padding-bottom: 5px;
9023 text-align: center;
9023 text-align: center;
9024 vertical-align: text-bottom;
9024 vertical-align: text-bottom;
9025 }
9025 }
9026 .widget-hreadout {
9026 .widget-hreadout {
9027 padding-left: 8px;
9027 padding-left: 8px;
9028 padding-top: 5px;
9028 padding-top: 5px;
9029 text-align: left;
9029 text-align: left;
9030 vertical-align: text-top;
9030 vertical-align: text-top;
9031 }
9031 }
9032 .widget-vreadout {
9032 .widget-vreadout {
9033 /* Vertical Label */
9033 /* Vertical Label */
9034 padding-top: 5px;
9034 padding-top: 5px;
9035 text-align: center;
9035 text-align: center;
9036 vertical-align: text-top;
9036 vertical-align: text-top;
9037 }
9037 }
9038 .slide-track {
9038 .slide-track {
9039 /* Slider Track */
9039 /* Slider Track */
9040 border: 1px solid #CCCCCC;
9040 border: 1px solid #CCCCCC;
9041 background: #FFFFFF;
9041 background: #FFFFFF;
9042 border-radius: 4px;
9042 border-radius: 4px;
9043 /* Round the corners of the slide track */
9043 /* Round the corners of the slide track */
9044 }
9044 }
9045 .widget-hslider {
9045 .widget-hslider {
9046 /* Horizontal jQuery Slider
9046 /* Horizontal jQuery Slider
9047
9047
9048 Both the horizontal and vertical versions of the slider are characterized
9048 Both the horizontal and vertical versions of the slider are characterized
9049 by a styled div that contains an invisible jQuery slide div which
9049 by a styled div that contains an invisible jQuery slide div which
9050 contains a visible slider handle div. This is requred so we can control
9050 contains a visible slider handle div. This is requred so we can control
9051 how the slider is drawn and 'fix' the issue where the slide handle
9051 how the slider is drawn and 'fix' the issue where the slide handle
9052 doesn't stop at the end of the slide.
9052 doesn't stop at the end of the slide.
9053
9053
9054 Both horizontal and vertical sliders have this div nesting:
9054 Both horizontal and vertical sliders have this div nesting:
9055 +------------------------------------------+
9055 +------------------------------------------+
9056 | widget-(h/v)slider |
9056 | widget-(h/v)slider |
9057 | +--------+---------------------------+ |
9057 | +--------+---------------------------+ |
9058 | | ui-slider | |
9058 | | ui-slider | |
9059 | | +------------------+ | |
9059 | | +------------------+ | |
9060 | | | ui-slider-handle | | |
9060 | | | ui-slider-handle | | |
9061 | | +------------------+ | |
9061 | | +------------------+ | |
9062 | +--------+---------------------------+ |
9062 | +--------+---------------------------+ |
9063 +------------------------------------------+
9063 +------------------------------------------+
9064 */
9064 */
9065 /* Fix the padding of the slide track so the ui-slider is sized
9065 /* Fix the padding of the slide track so the ui-slider is sized
9066 correctly. */
9066 correctly. */
9067 padding-left: 8px;
9067 padding-left: 8px;
9068 padding-right: 5px;
9068 padding-right: 5px;
9069 overflow: visible;
9069 overflow: visible;
9070 /* Default size of the slider */
9070 /* Default size of the slider */
9071 width: 350px;
9071 width: 350px;
9072 height: 5px;
9072 height: 5px;
9073 max-height: 5px;
9073 max-height: 5px;
9074 margin-top: 13px;
9074 margin-top: 13px;
9075 margin-bottom: 10px;
9075 margin-bottom: 10px;
9076 /* Style the slider track */
9076 /* Style the slider track */
9077 /* Slider Track */
9077 /* Slider Track */
9078 border: 1px solid #CCCCCC;
9078 border: 1px solid #CCCCCC;
9079 background: #FFFFFF;
9079 background: #FFFFFF;
9080 border-radius: 4px;
9080 border-radius: 4px;
9081 /* Round the corners of the slide track */
9081 /* Round the corners of the slide track */
9082 /* Make the div a flex box (makes FF behave correctly). */
9082 /* Make the div a flex box (makes FF behave correctly). */
9083 /* Old browsers */
9083 /* Old browsers */
9084 display: -webkit-box;
9084 display: -webkit-box;
9085 -webkit-box-orient: horizontal;
9085 -webkit-box-orient: horizontal;
9086 -webkit-box-align: stretch;
9086 -webkit-box-align: stretch;
9087 display: -moz-box;
9087 display: -moz-box;
9088 -moz-box-orient: horizontal;
9088 -moz-box-orient: horizontal;
9089 -moz-box-align: stretch;
9089 -moz-box-align: stretch;
9090 display: box;
9090 display: box;
9091 box-orient: horizontal;
9091 box-orient: horizontal;
9092 box-align: stretch;
9092 box-align: stretch;
9093 /* Modern browsers */
9093 /* Modern browsers */
9094 display: flex;
9094 display: flex;
9095 flex-direction: row;
9095 flex-direction: row;
9096 align-items: stretch;
9096 align-items: stretch;
9097 /* Old browsers */
9097 /* Old browsers */
9098 -webkit-box-flex: 0;
9098 -webkit-box-flex: 0;
9099 -moz-box-flex: 0;
9099 -moz-box-flex: 0;
9100 box-flex: 0;
9100 box-flex: 0;
9101 /* Modern browsers */
9101 /* Modern browsers */
9102 flex: none;
9102 flex: none;
9103 }
9103 }
9104 .widget-hslider .ui-slider {
9104 .widget-hslider .ui-slider {
9105 /* Inner, invisible slide div */
9105 /* Inner, invisible slide div */
9106 border: 0px !important;
9106 border: 0px !important;
9107 background: none !important;
9107 background: none !important;
9108 /* Old browsers */
9108 /* Old browsers */
9109 display: -webkit-box;
9109 display: -webkit-box;
9110 -webkit-box-orient: horizontal;
9110 -webkit-box-orient: horizontal;
9111 -webkit-box-align: stretch;
9111 -webkit-box-align: stretch;
9112 display: -moz-box;
9112 display: -moz-box;
9113 -moz-box-orient: horizontal;
9113 -moz-box-orient: horizontal;
9114 -moz-box-align: stretch;
9114 -moz-box-align: stretch;
9115 display: box;
9115 display: box;
9116 box-orient: horizontal;
9116 box-orient: horizontal;
9117 box-align: stretch;
9117 box-align: stretch;
9118 /* Modern browsers */
9118 /* Modern browsers */
9119 display: flex;
9119 display: flex;
9120 flex-direction: row;
9120 flex-direction: row;
9121 align-items: stretch;
9121 align-items: stretch;
9122 /* Old browsers */
9122 /* Old browsers */
9123 -webkit-box-flex: 0;
9123 -webkit-box-flex: 0;
9124 -moz-box-flex: 0;
9124 -moz-box-flex: 0;
9125 box-flex: 0;
9125 box-flex: 0;
9126 /* Modern browsers */
9126 /* Modern browsers */
9127 flex: none;
9127 flex: none;
9128 /* Old browsers */
9128 /* Old browsers */
9129 -webkit-box-flex: 1;
9129 -webkit-box-flex: 1;
9130 -moz-box-flex: 1;
9130 -moz-box-flex: 1;
9131 box-flex: 1;
9131 box-flex: 1;
9132 /* Modern browsers */
9132 /* Modern browsers */
9133 flex: 1;
9133 flex: 1;
9134 }
9134 }
9135 .widget-hslider .ui-slider .ui-slider-handle {
9135 .widget-hslider .ui-slider .ui-slider-handle {
9136 width: 14px !important;
9136 width: 14px !important;
9137 height: 28px !important;
9137 height: 28px !important;
9138 margin-top: -8px !important;
9138 margin-top: -8px !important;
9139 }
9139 }
9140 .widget-vslider {
9140 .widget-vslider {
9141 /* Vertical jQuery Slider */
9141 /* Vertical jQuery Slider */
9142 /* Fix the padding of the slide track so the ui-slider is sized
9142 /* Fix the padding of the slide track so the ui-slider is sized
9143 correctly. */
9143 correctly. */
9144 padding-bottom: 8px;
9144 padding-bottom: 8px;
9145 overflow: visible;
9145 overflow: visible;
9146 /* Default size of the slider */
9146 /* Default size of the slider */
9147 width: 5px;
9147 width: 5px;
9148 max-width: 5px;
9148 max-width: 5px;
9149 height: 250px;
9149 height: 250px;
9150 margin-left: 12px;
9150 margin-left: 12px;
9151 /* Style the slider track */
9151 /* Style the slider track */
9152 /* Slider Track */
9152 /* Slider Track */
9153 border: 1px solid #CCCCCC;
9153 border: 1px solid #CCCCCC;
9154 background: #FFFFFF;
9154 background: #FFFFFF;
9155 border-radius: 4px;
9155 border-radius: 4px;
9156 /* Round the corners of the slide track */
9156 /* Round the corners of the slide track */
9157 /* Make the div a flex box (makes FF behave correctly). */
9157 /* Make the div a flex box (makes FF behave correctly). */
9158 /* Old browsers */
9158 /* Old browsers */
9159 display: -webkit-box;
9159 display: -webkit-box;
9160 -webkit-box-orient: vertical;
9160 -webkit-box-orient: vertical;
9161 -webkit-box-align: stretch;
9161 -webkit-box-align: stretch;
9162 display: -moz-box;
9162 display: -moz-box;
9163 -moz-box-orient: vertical;
9163 -moz-box-orient: vertical;
9164 -moz-box-align: stretch;
9164 -moz-box-align: stretch;
9165 display: box;
9165 display: box;
9166 box-orient: vertical;
9166 box-orient: vertical;
9167 box-align: stretch;
9167 box-align: stretch;
9168 /* Modern browsers */
9168 /* Modern browsers */
9169 display: flex;
9169 display: flex;
9170 flex-direction: column;
9170 flex-direction: column;
9171 align-items: stretch;
9171 align-items: stretch;
9172 /* Old browsers */
9172 /* Old browsers */
9173 -webkit-box-flex: 0;
9173 -webkit-box-flex: 0;
9174 -moz-box-flex: 0;
9174 -moz-box-flex: 0;
9175 box-flex: 0;
9175 box-flex: 0;
9176 /* Modern browsers */
9176 /* Modern browsers */
9177 flex: none;
9177 flex: none;
9178 }
9178 }
9179 .widget-vslider .ui-slider {
9179 .widget-vslider .ui-slider {
9180 /* Inner, invisible slide div */
9180 /* Inner, invisible slide div */
9181 border: 0px !important;
9181 border: 0px !important;
9182 background: none !important;
9182 background: none !important;
9183 margin-left: -4px;
9183 margin-left: -4px;
9184 margin-top: 5px;
9184 margin-top: 5px;
9185 /* Old browsers */
9185 /* Old browsers */
9186 display: -webkit-box;
9186 display: -webkit-box;
9187 -webkit-box-orient: vertical;
9187 -webkit-box-orient: vertical;
9188 -webkit-box-align: stretch;
9188 -webkit-box-align: stretch;
9189 display: -moz-box;
9189 display: -moz-box;
9190 -moz-box-orient: vertical;
9190 -moz-box-orient: vertical;
9191 -moz-box-align: stretch;
9191 -moz-box-align: stretch;
9192 display: box;
9192 display: box;
9193 box-orient: vertical;
9193 box-orient: vertical;
9194 box-align: stretch;
9194 box-align: stretch;
9195 /* Modern browsers */
9195 /* Modern browsers */
9196 display: flex;
9196 display: flex;
9197 flex-direction: column;
9197 flex-direction: column;
9198 align-items: stretch;
9198 align-items: stretch;
9199 /* Old browsers */
9199 /* Old browsers */
9200 -webkit-box-flex: 0;
9200 -webkit-box-flex: 0;
9201 -moz-box-flex: 0;
9201 -moz-box-flex: 0;
9202 box-flex: 0;
9202 box-flex: 0;
9203 /* Modern browsers */
9203 /* Modern browsers */
9204 flex: none;
9204 flex: none;
9205 /* Old browsers */
9205 /* Old browsers */
9206 -webkit-box-flex: 1;
9206 -webkit-box-flex: 1;
9207 -moz-box-flex: 1;
9207 -moz-box-flex: 1;
9208 box-flex: 1;
9208 box-flex: 1;
9209 /* Modern browsers */
9209 /* Modern browsers */
9210 flex: 1;
9210 flex: 1;
9211 }
9211 }
9212 .widget-vslider .ui-slider .ui-slider-handle {
9212 .widget-vslider .ui-slider .ui-slider-handle {
9213 width: 28px !important;
9213 width: 28px !important;
9214 height: 14px !important;
9214 height: 14px !important;
9215 margin-left: -9px;
9215 margin-left: -9px;
9216 }
9216 }
9217 .widget-text {
9217 .widget-text {
9218 /* String Textbox - used for TextBoxView and TextAreaView */
9218 /* String Textbox - used for TextBoxView and TextAreaView */
9219 width: 350px;
9219 width: 350px;
9220 margin: 0px !important;
9220 margin: 0px !important;
9221 }
9221 }
9222 .widget-listbox {
9222 .widget-listbox {
9223 /* Listbox */
9223 /* Listbox */
9224 width: 350px;
9224 width: 350px;
9225 margin-bottom: 0px;
9225 margin-bottom: 0px;
9226 }
9226 }
9227 .widget-numeric-text {
9227 .widget-numeric-text {
9228 /* Single Line Textbox - used for IntTextView and FloatTextView */
9228 /* Single Line Textbox - used for IntTextView and FloatTextView */
9229 width: 150px;
9229 width: 150px;
9230 margin: 0px !important;
9230 margin: 0px !important;
9231 }
9231 }
9232 .widget-progress {
9232 .widget-progress {
9233 /* Progress Bar */
9233 /* Progress Bar */
9234 margin-top: 6px;
9234 margin-top: 6px;
9235 width: 350px;
9235 width: 350px;
9236 }
9236 }
9237 .widget-progress .progress-bar {
9237 .widget-progress .progress-bar {
9238 /* Disable progress bar animation */
9238 /* Disable progress bar animation */
9239 -webkit-transition: none;
9239 -webkit-transition: none;
9240 -moz-transition: none;
9240 -moz-transition: none;
9241 -ms-transition: none;
9241 -ms-transition: none;
9242 -o-transition: none;
9242 -o-transition: none;
9243 transition: none;
9243 transition: none;
9244 }
9244 }
9245 .widget-combo-btn {
9245 .widget-combo-btn {
9246 /* ComboBox Main Button */
9246 /* ComboBox Main Button */
9247 min-width: 125px;
9247 min-width: 125px;
9248 }
9248 }
9249 .widget-box {
9249 .widget-box {
9250 /* The following section sets the style for the invisible div that
9250 /* The following section sets the style for the invisible div that
9251 hold widgets and their accompanying labels.
9251 hold widgets and their accompanying labels.
9252
9252
9253 Looks like this:
9253 Looks like this:
9254 +-----------------------------+
9254 +-----------------------------+
9255 | widget-box (or similar) |
9255 | widget-box (or similar) |
9256 | +-------+---------------+ |
9256 | +-------+---------------+ |
9257 | | Label | Actual Widget | |
9257 | | Label | Actual Widget | |
9258 | +-------+---------------+ |
9258 | +-------+---------------+ |
9259 +-----------------------------+
9259 +-----------------------------+
9260 */
9260 */
9261 margin: 5px;
9261 margin: 5px;
9262 /* Old browsers */
9262 /* Old browsers */
9263 -webkit-box-pack: start;
9263 -webkit-box-pack: start;
9264 -moz-box-pack: start;
9264 -moz-box-pack: start;
9265 box-pack: start;
9265 box-pack: start;
9266 /* Modern browsers */
9266 /* Modern browsers */
9267 justify-content: flex-start;
9267 justify-content: flex-start;
9268 /* ContainerWidget */
9268 /* Box */
9269 box-sizing: border-box;
9269 box-sizing: border-box;
9270 -moz-box-sizing: border-box;
9270 -moz-box-sizing: border-box;
9271 -webkit-box-sizing: border-box;
9271 -webkit-box-sizing: border-box;
9272 /* Old browsers */
9272 /* Old browsers */
9273 -webkit-box-align: start;
9273 -webkit-box-align: start;
9274 -moz-box-align: start;
9274 -moz-box-align: start;
9275 box-align: start;
9275 box-align: start;
9276 /* Modern browsers */
9276 /* Modern browsers */
9277 align-items: flex-start;
9277 align-items: flex-start;
9278 }
9278 }
9279 .widget-hbox {
9279 .widget-hbox {
9280 /* Horizontal widgets */
9280 /* Horizontal widgets */
9281 /* The following section sets the style for the invisible div that
9281 /* The following section sets the style for the invisible div that
9282 hold widgets and their accompanying labels.
9282 hold widgets and their accompanying labels.
9283
9283
9284 Looks like this:
9284 Looks like this:
9285 +-----------------------------+
9285 +-----------------------------+
9286 | widget-box (or similar) |
9286 | widget-box (or similar) |
9287 | +-------+---------------+ |
9287 | +-------+---------------+ |
9288 | | Label | Actual Widget | |
9288 | | Label | Actual Widget | |
9289 | +-------+---------------+ |
9289 | +-------+---------------+ |
9290 +-----------------------------+
9290 +-----------------------------+
9291 */
9291 */
9292 margin: 5px;
9292 margin: 5px;
9293 /* Old browsers */
9293 /* Old browsers */
9294 -webkit-box-pack: start;
9294 -webkit-box-pack: start;
9295 -moz-box-pack: start;
9295 -moz-box-pack: start;
9296 box-pack: start;
9296 box-pack: start;
9297 /* Modern browsers */
9297 /* Modern browsers */
9298 justify-content: flex-start;
9298 justify-content: flex-start;
9299 /* ContainerWidget */
9299 /* Box */
9300 box-sizing: border-box;
9300 box-sizing: border-box;
9301 -moz-box-sizing: border-box;
9301 -moz-box-sizing: border-box;
9302 -webkit-box-sizing: border-box;
9302 -webkit-box-sizing: border-box;
9303 /* Old browsers */
9303 /* Old browsers */
9304 -webkit-box-align: start;
9304 -webkit-box-align: start;
9305 -moz-box-align: start;
9305 -moz-box-align: start;
9306 box-align: start;
9306 box-align: start;
9307 /* Modern browsers */
9307 /* Modern browsers */
9308 align-items: flex-start;
9308 align-items: flex-start;
9309 /* Old browsers */
9309 /* Old browsers */
9310 display: -webkit-box;
9310 display: -webkit-box;
9311 -webkit-box-orient: horizontal;
9311 -webkit-box-orient: horizontal;
9312 -webkit-box-align: stretch;
9312 -webkit-box-align: stretch;
9313 display: -moz-box;
9313 display: -moz-box;
9314 -moz-box-orient: horizontal;
9314 -moz-box-orient: horizontal;
9315 -moz-box-align: stretch;
9315 -moz-box-align: stretch;
9316 display: box;
9316 display: box;
9317 box-orient: horizontal;
9317 box-orient: horizontal;
9318 box-align: stretch;
9318 box-align: stretch;
9319 /* Modern browsers */
9319 /* Modern browsers */
9320 display: flex;
9320 display: flex;
9321 flex-direction: row;
9321 flex-direction: row;
9322 align-items: stretch;
9322 align-items: stretch;
9323 /* Old browsers */
9323 /* Old browsers */
9324 -webkit-box-flex: 0;
9324 -webkit-box-flex: 0;
9325 -moz-box-flex: 0;
9325 -moz-box-flex: 0;
9326 box-flex: 0;
9326 box-flex: 0;
9327 /* Modern browsers */
9327 /* Modern browsers */
9328 flex: none;
9328 flex: none;
9329 }
9329 }
9330 .widget-hbox-single {
9330 .widget-hbox-single {
9331 /* Single line horizontal widgets */
9331 /* Single line horizontal widgets */
9332 /* Horizontal widgets */
9332 /* Horizontal widgets */
9333 /* The following section sets the style for the invisible div that
9333 /* The following section sets the style for the invisible div that
9334 hold widgets and their accompanying labels.
9334 hold widgets and their accompanying labels.
9335
9335
9336 Looks like this:
9336 Looks like this:
9337 +-----------------------------+
9337 +-----------------------------+
9338 | widget-box (or similar) |
9338 | widget-box (or similar) |
9339 | +-------+---------------+ |
9339 | +-------+---------------+ |
9340 | | Label | Actual Widget | |
9340 | | Label | Actual Widget | |
9341 | +-------+---------------+ |
9341 | +-------+---------------+ |
9342 +-----------------------------+
9342 +-----------------------------+
9343 */
9343 */
9344 margin: 5px;
9344 margin: 5px;
9345 /* Old browsers */
9345 /* Old browsers */
9346 -webkit-box-pack: start;
9346 -webkit-box-pack: start;
9347 -moz-box-pack: start;
9347 -moz-box-pack: start;
9348 box-pack: start;
9348 box-pack: start;
9349 /* Modern browsers */
9349 /* Modern browsers */
9350 justify-content: flex-start;
9350 justify-content: flex-start;
9351 /* ContainerWidget */
9351 /* Box */
9352 box-sizing: border-box;
9352 box-sizing: border-box;
9353 -moz-box-sizing: border-box;
9353 -moz-box-sizing: border-box;
9354 -webkit-box-sizing: border-box;
9354 -webkit-box-sizing: border-box;
9355 /* Old browsers */
9355 /* Old browsers */
9356 -webkit-box-align: start;
9356 -webkit-box-align: start;
9357 -moz-box-align: start;
9357 -moz-box-align: start;
9358 box-align: start;
9358 box-align: start;
9359 /* Modern browsers */
9359 /* Modern browsers */
9360 align-items: flex-start;
9360 align-items: flex-start;
9361 /* Old browsers */
9361 /* Old browsers */
9362 display: -webkit-box;
9362 display: -webkit-box;
9363 -webkit-box-orient: horizontal;
9363 -webkit-box-orient: horizontal;
9364 -webkit-box-align: stretch;
9364 -webkit-box-align: stretch;
9365 display: -moz-box;
9365 display: -moz-box;
9366 -moz-box-orient: horizontal;
9366 -moz-box-orient: horizontal;
9367 -moz-box-align: stretch;
9367 -moz-box-align: stretch;
9368 display: box;
9368 display: box;
9369 box-orient: horizontal;
9369 box-orient: horizontal;
9370 box-align: stretch;
9370 box-align: stretch;
9371 /* Modern browsers */
9371 /* Modern browsers */
9372 display: flex;
9372 display: flex;
9373 flex-direction: row;
9373 flex-direction: row;
9374 align-items: stretch;
9374 align-items: stretch;
9375 /* Old browsers */
9375 /* Old browsers */
9376 -webkit-box-flex: 0;
9376 -webkit-box-flex: 0;
9377 -moz-box-flex: 0;
9377 -moz-box-flex: 0;
9378 box-flex: 0;
9378 box-flex: 0;
9379 /* Modern browsers */
9379 /* Modern browsers */
9380 flex: none;
9380 flex: none;
9381 height: 30px;
9381 height: 30px;
9382 }
9382 }
9383 .widget-hbox-single input[type="checkbox"] {
9383 .widget-hbox-single input[type="checkbox"] {
9384 margin-top: 9px;
9384 margin-top: 9px;
9385 }
9385 }
9386 .widget-vbox {
9386 .widget-vbox {
9387 /* Vertical widgets */
9387 /* Vertical widgets */
9388 /* The following section sets the style for the invisible div that
9388 /* The following section sets the style for the invisible div that
9389 hold widgets and their accompanying labels.
9389 hold widgets and their accompanying labels.
9390
9390
9391 Looks like this:
9391 Looks like this:
9392 +-----------------------------+
9392 +-----------------------------+
9393 | widget-box (or similar) |
9393 | widget-box (or similar) |
9394 | +-------+---------------+ |
9394 | +-------+---------------+ |
9395 | | Label | Actual Widget | |
9395 | | Label | Actual Widget | |
9396 | +-------+---------------+ |
9396 | +-------+---------------+ |
9397 +-----------------------------+
9397 +-----------------------------+
9398 */
9398 */
9399 margin: 5px;
9399 margin: 5px;
9400 /* Old browsers */
9400 /* Old browsers */
9401 -webkit-box-pack: start;
9401 -webkit-box-pack: start;
9402 -moz-box-pack: start;
9402 -moz-box-pack: start;
9403 box-pack: start;
9403 box-pack: start;
9404 /* Modern browsers */
9404 /* Modern browsers */
9405 justify-content: flex-start;
9405 justify-content: flex-start;
9406 /* ContainerWidget */
9406 /* Box */
9407 box-sizing: border-box;
9407 box-sizing: border-box;
9408 -moz-box-sizing: border-box;
9408 -moz-box-sizing: border-box;
9409 -webkit-box-sizing: border-box;
9409 -webkit-box-sizing: border-box;
9410 /* Old browsers */
9410 /* Old browsers */
9411 -webkit-box-align: start;
9411 -webkit-box-align: start;
9412 -moz-box-align: start;
9412 -moz-box-align: start;
9413 box-align: start;
9413 box-align: start;
9414 /* Modern browsers */
9414 /* Modern browsers */
9415 align-items: flex-start;
9415 align-items: flex-start;
9416 /* Old browsers */
9416 /* Old browsers */
9417 display: -webkit-box;
9417 display: -webkit-box;
9418 -webkit-box-orient: vertical;
9418 -webkit-box-orient: vertical;
9419 -webkit-box-align: stretch;
9419 -webkit-box-align: stretch;
9420 display: -moz-box;
9420 display: -moz-box;
9421 -moz-box-orient: vertical;
9421 -moz-box-orient: vertical;
9422 -moz-box-align: stretch;
9422 -moz-box-align: stretch;
9423 display: box;
9423 display: box;
9424 box-orient: vertical;
9424 box-orient: vertical;
9425 box-align: stretch;
9425 box-align: stretch;
9426 /* Modern browsers */
9426 /* Modern browsers */
9427 display: flex;
9427 display: flex;
9428 flex-direction: column;
9428 flex-direction: column;
9429 align-items: stretch;
9429 align-items: stretch;
9430 /* Old browsers */
9430 /* Old browsers */
9431 -webkit-box-flex: 0;
9431 -webkit-box-flex: 0;
9432 -moz-box-flex: 0;
9432 -moz-box-flex: 0;
9433 box-flex: 0;
9433 box-flex: 0;
9434 /* Modern browsers */
9434 /* Modern browsers */
9435 flex: none;
9435 flex: none;
9436 }
9436 }
9437 .widget-vbox-single {
9437 .widget-vbox-single {
9438 /* For vertical slides */
9438 /* For vertical slides */
9439 /* Vertical widgets */
9439 /* Vertical widgets */
9440 /* The following section sets the style for the invisible div that
9440 /* The following section sets the style for the invisible div that
9441 hold widgets and their accompanying labels.
9441 hold widgets and their accompanying labels.
9442
9442
9443 Looks like this:
9443 Looks like this:
9444 +-----------------------------+
9444 +-----------------------------+
9445 | widget-box (or similar) |
9445 | widget-box (or similar) |
9446 | +-------+---------------+ |
9446 | +-------+---------------+ |
9447 | | Label | Actual Widget | |
9447 | | Label | Actual Widget | |
9448 | +-------+---------------+ |
9448 | +-------+---------------+ |
9449 +-----------------------------+
9449 +-----------------------------+
9450 */
9450 */
9451 margin: 5px;
9451 margin: 5px;
9452 /* Old browsers */
9452 /* Old browsers */
9453 -webkit-box-pack: start;
9453 -webkit-box-pack: start;
9454 -moz-box-pack: start;
9454 -moz-box-pack: start;
9455 box-pack: start;
9455 box-pack: start;
9456 /* Modern browsers */
9456 /* Modern browsers */
9457 justify-content: flex-start;
9457 justify-content: flex-start;
9458 /* ContainerWidget */
9458 /* Box */
9459 box-sizing: border-box;
9459 box-sizing: border-box;
9460 -moz-box-sizing: border-box;
9460 -moz-box-sizing: border-box;
9461 -webkit-box-sizing: border-box;
9461 -webkit-box-sizing: border-box;
9462 /* Old browsers */
9462 /* Old browsers */
9463 -webkit-box-align: start;
9463 -webkit-box-align: start;
9464 -moz-box-align: start;
9464 -moz-box-align: start;
9465 box-align: start;
9465 box-align: start;
9466 /* Modern browsers */
9466 /* Modern browsers */
9467 align-items: flex-start;
9467 align-items: flex-start;
9468 /* Old browsers */
9468 /* Old browsers */
9469 display: -webkit-box;
9469 display: -webkit-box;
9470 -webkit-box-orient: vertical;
9470 -webkit-box-orient: vertical;
9471 -webkit-box-align: stretch;
9471 -webkit-box-align: stretch;
9472 display: -moz-box;
9472 display: -moz-box;
9473 -moz-box-orient: vertical;
9473 -moz-box-orient: vertical;
9474 -moz-box-align: stretch;
9474 -moz-box-align: stretch;
9475 display: box;
9475 display: box;
9476 box-orient: vertical;
9476 box-orient: vertical;
9477 box-align: stretch;
9477 box-align: stretch;
9478 /* Modern browsers */
9478 /* Modern browsers */
9479 display: flex;
9479 display: flex;
9480 flex-direction: column;
9480 flex-direction: column;
9481 align-items: stretch;
9481 align-items: stretch;
9482 /* Old browsers */
9482 /* Old browsers */
9483 -webkit-box-flex: 0;
9483 -webkit-box-flex: 0;
9484 -moz-box-flex: 0;
9484 -moz-box-flex: 0;
9485 box-flex: 0;
9485 box-flex: 0;
9486 /* Modern browsers */
9486 /* Modern browsers */
9487 flex: none;
9487 flex: none;
9488 width: 30px;
9488 width: 30px;
9489 }
9489 }
9490 .widget-modal {
9490 .widget-modal {
9491 /* ContainerWidget - ModalView */
9491 /* Box - ModalView */
9492 overflow: hidden;
9492 overflow: hidden;
9493 position: absolute !important;
9493 position: absolute !important;
9494 top: 0px;
9494 top: 0px;
9495 left: 0px;
9495 left: 0px;
9496 margin-left: 0px !important;
9496 margin-left: 0px !important;
9497 }
9497 }
9498 .widget-modal-body {
9498 .widget-modal-body {
9499 /* ContainerWidget - ModalView Body */
9499 /* Box - ModalView Body */
9500 max-height: none !important;
9500 max-height: none !important;
9501 }
9501 }
9502 .widget-container {
9502 .widget-box {
9503 /* ContainerWidget */
9503 /* Box */
9504 box-sizing: border-box;
9504 box-sizing: border-box;
9505 -moz-box-sizing: border-box;
9505 -moz-box-sizing: border-box;
9506 -webkit-box-sizing: border-box;
9506 -webkit-box-sizing: border-box;
9507 /* Old browsers */
9507 /* Old browsers */
9508 -webkit-box-align: start;
9508 -webkit-box-align: start;
9509 -moz-box-align: start;
9509 -moz-box-align: start;
9510 box-align: start;
9510 box-align: start;
9511 /* Modern browsers */
9511 /* Modern browsers */
9512 align-items: flex-start;
9512 align-items: flex-start;
9513 }
9513 }
9514 .widget-radio-box {
9514 .widget-radio-box {
9515 /* Contains RadioButtonsWidget */
9515 /* Contains RadioButtonsWidget */
9516 /* Old browsers */
9516 /* Old browsers */
9517 display: -webkit-box;
9517 display: -webkit-box;
9518 -webkit-box-orient: vertical;
9518 -webkit-box-orient: vertical;
9519 -webkit-box-align: stretch;
9519 -webkit-box-align: stretch;
9520 display: -moz-box;
9520 display: -moz-box;
9521 -moz-box-orient: vertical;
9521 -moz-box-orient: vertical;
9522 -moz-box-align: stretch;
9522 -moz-box-align: stretch;
9523 display: box;
9523 display: box;
9524 box-orient: vertical;
9524 box-orient: vertical;
9525 box-align: stretch;
9525 box-align: stretch;
9526 /* Modern browsers */
9526 /* Modern browsers */
9527 display: flex;
9527 display: flex;
9528 flex-direction: column;
9528 flex-direction: column;
9529 align-items: stretch;
9529 align-items: stretch;
9530 /* Old browsers */
9530 /* Old browsers */
9531 -webkit-box-flex: 0;
9531 -webkit-box-flex: 0;
9532 -moz-box-flex: 0;
9532 -moz-box-flex: 0;
9533 box-flex: 0;
9533 box-flex: 0;
9534 /* Modern browsers */
9534 /* Modern browsers */
9535 flex: none;
9535 flex: none;
9536 box-sizing: border-box;
9536 box-sizing: border-box;
9537 -moz-box-sizing: border-box;
9537 -moz-box-sizing: border-box;
9538 -webkit-box-sizing: border-box;
9538 -webkit-box-sizing: border-box;
9539 padding-top: 4px;
9539 padding-top: 4px;
9540 }
9540 }
9541 .widget-radio-box label {
9541 .widget-radio-box label {
9542 margin-top: 0px;
9542 margin-top: 0px;
9543 }
9543 }
9544 .docked-widget-modal {
9544 .docked-widget-modal {
9545 /* Horizontal Label */
9545 /* Horizontal Label */
9546 overflow: hidden;
9546 overflow: hidden;
9547 position: relative !important;
9547 position: relative !important;
9548 top: 0px !important;
9548 top: 0px !important;
9549 left: 0px !important;
9549 left: 0px !important;
9550 margin-left: 0px !important;
9550 margin-left: 0px !important;
9551 }
9551 }
9552 /*!
9552 /*!
9553 *
9553 *
9554 * IPython notebook webapp
9554 * IPython notebook webapp
9555 *
9555 *
9556 */
9556 */
9557 body {
9557 body {
9558 background-color: #ffffff;
9558 background-color: #ffffff;
9559 }
9559 }
9560 body.notebook_app {
9560 body.notebook_app {
9561 overflow: hidden;
9561 overflow: hidden;
9562 }
9562 }
9563 @media (max-width: 767px) {
9563 @media (max-width: 767px) {
9564 body.notebook_app {
9564 body.notebook_app {
9565 padding-left: 0px;
9565 padding-left: 0px;
9566 padding-right: 0px;
9566 padding-right: 0px;
9567 }
9567 }
9568 }
9568 }
9569 #ipython-main-app {
9569 #ipython-main-app {
9570 box-sizing: border-box;
9570 box-sizing: border-box;
9571 -moz-box-sizing: border-box;
9571 -moz-box-sizing: border-box;
9572 -webkit-box-sizing: border-box;
9572 -webkit-box-sizing: border-box;
9573 }
9573 }
9574 span#notebook_name {
9574 span#notebook_name {
9575 height: 1em;
9575 height: 1em;
9576 line-height: 1em;
9576 line-height: 1em;
9577 padding: 3px;
9577 padding: 3px;
9578 border: none;
9578 border: none;
9579 font-size: 146.5%;
9579 font-size: 146.5%;
9580 }
9580 }
9581 div#notebook_panel {
9581 div#notebook_panel {
9582 margin: 0px 0px 0px 0px;
9582 margin: 0px 0px 0px 0px;
9583 padding: 0px;
9583 padding: 0px;
9584 -webkit-box-shadow: inset 1px 4px 9px -6px rgba(0, 0, 0, 0.25);
9584 -webkit-box-shadow: inset 1px 4px 9px -6px rgba(0, 0, 0, 0.25);
9585 box-shadow: inset 1px 4px 9px -6px rgba(0, 0, 0, 0.25);
9585 box-shadow: inset 1px 4px 9px -6px rgba(0, 0, 0, 0.25);
9586 box-sizing: border-box;
9586 box-sizing: border-box;
9587 -moz-box-sizing: border-box;
9587 -moz-box-sizing: border-box;
9588 -webkit-box-sizing: border-box;
9588 -webkit-box-sizing: border-box;
9589 }
9589 }
9590 div#notebook {
9590 div#notebook {
9591 font-size: 14px;
9591 font-size: 14px;
9592 line-height: 20px;
9592 line-height: 20px;
9593 overflow-y: scroll;
9593 overflow-y: scroll;
9594 overflow-x: auto;
9594 overflow-x: auto;
9595 width: 100%;
9595 width: 100%;
9596 /* This spaces the cell away from the edge of the notebook area */
9596 /* This spaces the cell away from the edge of the notebook area */
9597 padding: 1em 0 1em 0;
9597 padding: 1em 0 1em 0;
9598 margin: 0px;
9598 margin: 0px;
9599 border-top: 1px solid #e7e7e7;
9599 border-top: 1px solid #e7e7e7;
9600 outline: none;
9600 outline: none;
9601 box-sizing: border-box;
9601 box-sizing: border-box;
9602 -moz-box-sizing: border-box;
9602 -moz-box-sizing: border-box;
9603 -webkit-box-sizing: border-box;
9603 -webkit-box-sizing: border-box;
9604 }
9604 }
9605 div.ui-widget-content {
9605 div.ui-widget-content {
9606 border: 1px solid #ababab;
9606 border: 1px solid #ababab;
9607 outline: none;
9607 outline: none;
9608 }
9608 }
9609 pre.dialog {
9609 pre.dialog {
9610 background-color: #f7f7f7;
9610 background-color: #f7f7f7;
9611 border: 1px solid #ddd;
9611 border: 1px solid #ddd;
9612 border-radius: 4px;
9612 border-radius: 4px;
9613 padding: 0.4em;
9613 padding: 0.4em;
9614 padding-left: 2em;
9614 padding-left: 2em;
9615 }
9615 }
9616 p.dialog {
9616 p.dialog {
9617 padding: 0.2em;
9617 padding: 0.2em;
9618 }
9618 }
9619 /* Word-wrap output correctly. This is the CSS3 spelling, though Firefox seems
9619 /* Word-wrap output correctly. This is the CSS3 spelling, though Firefox seems
9620 to not honor it correctly. Webkit browsers (Chrome, rekonq, Safari) do.
9620 to not honor it correctly. Webkit browsers (Chrome, rekonq, Safari) do.
9621 */
9621 */
9622 pre,
9622 pre,
9623 code,
9623 code,
9624 kbd,
9624 kbd,
9625 samp {
9625 samp {
9626 white-space: pre-wrap;
9626 white-space: pre-wrap;
9627 }
9627 }
9628 #fonttest {
9628 #fonttest {
9629 font-family: monospace;
9629 font-family: monospace;
9630 }
9630 }
9631 p {
9631 p {
9632 margin-bottom: 0;
9632 margin-bottom: 0;
9633 }
9633 }
9634 .end_space {
9634 .end_space {
9635 height: 200px;
9635 height: 200px;
9636 }
9636 }
9637 /* CSS for the cell toolbar */
9637 /* CSS for the cell toolbar */
9638 .celltoolbar {
9638 .celltoolbar {
9639 border: thin solid #CFCFCF;
9639 border: thin solid #CFCFCF;
9640 border-bottom: none;
9640 border-bottom: none;
9641 background: #EEE;
9641 background: #EEE;
9642 border-radius: 3px 3px 0px 0px;
9642 border-radius: 3px 3px 0px 0px;
9643 width: 100%;
9643 width: 100%;
9644 -webkit-box-pack: end;
9644 -webkit-box-pack: end;
9645 height: 29px;
9645 height: 29px;
9646 padding-right: 4px;
9646 padding-right: 4px;
9647 /* Old browsers */
9647 /* Old browsers */
9648 display: -webkit-box;
9648 display: -webkit-box;
9649 -webkit-box-orient: horizontal;
9649 -webkit-box-orient: horizontal;
9650 -webkit-box-align: stretch;
9650 -webkit-box-align: stretch;
9651 display: -moz-box;
9651 display: -moz-box;
9652 -moz-box-orient: horizontal;
9652 -moz-box-orient: horizontal;
9653 -moz-box-align: stretch;
9653 -moz-box-align: stretch;
9654 display: box;
9654 display: box;
9655 box-orient: horizontal;
9655 box-orient: horizontal;
9656 box-align: stretch;
9656 box-align: stretch;
9657 /* Modern browsers */
9657 /* Modern browsers */
9658 display: flex;
9658 display: flex;
9659 flex-direction: row;
9659 flex-direction: row;
9660 align-items: stretch;
9660 align-items: stretch;
9661 /* Old browsers */
9661 /* Old browsers */
9662 -webkit-box-flex: 0;
9662 -webkit-box-flex: 0;
9663 -moz-box-flex: 0;
9663 -moz-box-flex: 0;
9664 box-flex: 0;
9664 box-flex: 0;
9665 /* Modern browsers */
9665 /* Modern browsers */
9666 flex: none;
9666 flex: none;
9667 /* Old browsers */
9667 /* Old browsers */
9668 -webkit-box-direction: reverse;
9668 -webkit-box-direction: reverse;
9669 -moz-box-direction: reverse;
9669 -moz-box-direction: reverse;
9670 box-direction: reverse;
9670 box-direction: reverse;
9671 /* Modern browsers */
9671 /* Modern browsers */
9672 flex-direction: row-reverse;
9672 flex-direction: row-reverse;
9673 }
9673 }
9674 .ctb_hideshow {
9674 .ctb_hideshow {
9675 display: none;
9675 display: none;
9676 vertical-align: bottom;
9676 vertical-align: bottom;
9677 }
9677 }
9678 /* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
9678 /* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
9679 Cell toolbars are only shown when the ctb_global_show class is also set.
9679 Cell toolbars are only shown when the ctb_global_show class is also set.
9680 */
9680 */
9681 .ctb_global_show .ctb_show.ctb_hideshow {
9681 .ctb_global_show .ctb_show.ctb_hideshow {
9682 display: block;
9682 display: block;
9683 }
9683 }
9684 .ctb_global_show .ctb_show + .input_area,
9684 .ctb_global_show .ctb_show + .input_area,
9685 .ctb_global_show .ctb_show + div.text_cell_input {
9685 .ctb_global_show .ctb_show + div.text_cell_input {
9686 border-top-right-radius: 0px;
9686 border-top-right-radius: 0px;
9687 border-top-left-radius: 0px;
9687 border-top-left-radius: 0px;
9688 }
9688 }
9689 .celltoolbar {
9689 .celltoolbar {
9690 font-size: 87%;
9690 font-size: 87%;
9691 padding-top: 3px;
9691 padding-top: 3px;
9692 }
9692 }
9693 .celltoolbar select {
9693 .celltoolbar select {
9694 font-size: 87%;
9694 font-size: 87%;
9695 height: 22px;
9695 height: 22px;
9696 }
9696 }
9697 .celltoolbar label {
9697 .celltoolbar label {
9698 margin-left: 5px;
9698 margin-left: 5px;
9699 margin-right: 5px;
9699 margin-right: 5px;
9700 }
9700 }
9701 .completions {
9701 .completions {
9702 position: absolute;
9702 position: absolute;
9703 z-index: 10;
9703 z-index: 10;
9704 overflow: hidden;
9704 overflow: hidden;
9705 border: 1px solid #ababab;
9705 border: 1px solid #ababab;
9706 border-radius: 4px;
9706 border-radius: 4px;
9707 -webkit-box-shadow: 0px 6px 10px -1px #adadad;
9707 -webkit-box-shadow: 0px 6px 10px -1px #adadad;
9708 box-shadow: 0px 6px 10px -1px #adadad;
9708 box-shadow: 0px 6px 10px -1px #adadad;
9709 }
9709 }
9710 .completions select {
9710 .completions select {
9711 background: white;
9711 background: white;
9712 outline: none;
9712 outline: none;
9713 border: none;
9713 border: none;
9714 padding: 0px;
9714 padding: 0px;
9715 margin: 0px;
9715 margin: 0px;
9716 overflow: auto;
9716 overflow: auto;
9717 font-family: monospace;
9717 font-family: monospace;
9718 font-size: 110%;
9718 font-size: 110%;
9719 color: #000000;
9719 color: #000000;
9720 width: auto;
9720 width: auto;
9721 }
9721 }
9722 .completions select option.context {
9722 .completions select option.context {
9723 color: #3071a9;
9723 color: #3071a9;
9724 }
9724 }
9725 #kernel_selector_widget {
9725 #kernel_selector_widget {
9726 margin-right: 1em;
9726 margin-right: 1em;
9727 float: right;
9727 float: right;
9728 }
9728 }
9729 #kernel_selector_widget > button {
9729 #kernel_selector_widget > button {
9730 display: inline-block;
9730 display: inline-block;
9731 margin-bottom: 0;
9731 margin-bottom: 0;
9732 font-weight: normal;
9732 font-weight: normal;
9733 text-align: center;
9733 text-align: center;
9734 vertical-align: middle;
9734 vertical-align: middle;
9735 cursor: pointer;
9735 cursor: pointer;
9736 background-image: none;
9736 background-image: none;
9737 border: 1px solid transparent;
9737 border: 1px solid transparent;
9738 white-space: nowrap;
9738 white-space: nowrap;
9739 padding: 6px 12px;
9739 padding: 6px 12px;
9740 font-size: 13px;
9740 font-size: 13px;
9741 line-height: 1.42857143;
9741 line-height: 1.42857143;
9742 border-radius: 4px;
9742 border-radius: 4px;
9743 -webkit-user-select: none;
9743 -webkit-user-select: none;
9744 -moz-user-select: none;
9744 -moz-user-select: none;
9745 -ms-user-select: none;
9745 -ms-user-select: none;
9746 user-select: none;
9746 user-select: none;
9747 color: #333333;
9747 color: #333333;
9748 background-color: #ffffff;
9748 background-color: #ffffff;
9749 border-color: #cccccc;
9749 border-color: #cccccc;
9750 padding: 5px 10px;
9750 padding: 5px 10px;
9751 font-size: 12px;
9751 font-size: 12px;
9752 line-height: 1.5;
9752 line-height: 1.5;
9753 border-radius: 3px;
9753 border-radius: 3px;
9754 }
9754 }
9755 #kernel_selector_widget > button:focus,
9755 #kernel_selector_widget > button:focus,
9756 #kernel_selector_widget > button:active:focus,
9756 #kernel_selector_widget > button:active:focus,
9757 #kernel_selector_widget > button.active:focus {
9757 #kernel_selector_widget > button.active:focus {
9758 outline: thin dotted;
9758 outline: thin dotted;
9759 outline: 5px auto -webkit-focus-ring-color;
9759 outline: 5px auto -webkit-focus-ring-color;
9760 outline-offset: -2px;
9760 outline-offset: -2px;
9761 }
9761 }
9762 #kernel_selector_widget > button:hover,
9762 #kernel_selector_widget > button:hover,
9763 #kernel_selector_widget > button:focus {
9763 #kernel_selector_widget > button:focus {
9764 color: #333333;
9764 color: #333333;
9765 text-decoration: none;
9765 text-decoration: none;
9766 }
9766 }
9767 #kernel_selector_widget > button:active,
9767 #kernel_selector_widget > button:active,
9768 #kernel_selector_widget > button.active {
9768 #kernel_selector_widget > button.active {
9769 outline: 0;
9769 outline: 0;
9770 background-image: none;
9770 background-image: none;
9771 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
9771 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
9772 box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
9772 box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
9773 }
9773 }
9774 #kernel_selector_widget > button.disabled,
9774 #kernel_selector_widget > button.disabled,
9775 #kernel_selector_widget > button[disabled],
9775 #kernel_selector_widget > button[disabled],
9776 fieldset[disabled] #kernel_selector_widget > button {
9776 fieldset[disabled] #kernel_selector_widget > button {
9777 cursor: not-allowed;
9777 cursor: not-allowed;
9778 pointer-events: none;
9778 pointer-events: none;
9779 opacity: 0.65;
9779 opacity: 0.65;
9780 filter: alpha(opacity=65);
9780 filter: alpha(opacity=65);
9781 -webkit-box-shadow: none;
9781 -webkit-box-shadow: none;
9782 box-shadow: none;
9782 box-shadow: none;
9783 }
9783 }
9784 #kernel_selector_widget > button:hover,
9784 #kernel_selector_widget > button:hover,
9785 #kernel_selector_widget > button:focus,
9785 #kernel_selector_widget > button:focus,
9786 #kernel_selector_widget > button:active,
9786 #kernel_selector_widget > button:active,
9787 #kernel_selector_widget > button.active,
9787 #kernel_selector_widget > button.active,
9788 .open .dropdown-toggle#kernel_selector_widget > button {
9788 .open .dropdown-toggle#kernel_selector_widget > button {
9789 color: #333333;
9789 color: #333333;
9790 background-color: #ebebeb;
9790 background-color: #ebebeb;
9791 border-color: #adadad;
9791 border-color: #adadad;
9792 }
9792 }
9793 #kernel_selector_widget > button:active,
9793 #kernel_selector_widget > button:active,
9794 #kernel_selector_widget > button.active,
9794 #kernel_selector_widget > button.active,
9795 .open .dropdown-toggle#kernel_selector_widget > button {
9795 .open .dropdown-toggle#kernel_selector_widget > button {
9796 background-image: none;
9796 background-image: none;
9797 }
9797 }
9798 #kernel_selector_widget > button.disabled,
9798 #kernel_selector_widget > button.disabled,
9799 #kernel_selector_widget > button[disabled],
9799 #kernel_selector_widget > button[disabled],
9800 fieldset[disabled] #kernel_selector_widget > button,
9800 fieldset[disabled] #kernel_selector_widget > button,
9801 #kernel_selector_widget > button.disabled:hover,
9801 #kernel_selector_widget > button.disabled:hover,
9802 #kernel_selector_widget > button[disabled]:hover,
9802 #kernel_selector_widget > button[disabled]:hover,
9803 fieldset[disabled] #kernel_selector_widget > button:hover,
9803 fieldset[disabled] #kernel_selector_widget > button:hover,
9804 #kernel_selector_widget > button.disabled:focus,
9804 #kernel_selector_widget > button.disabled:focus,
9805 #kernel_selector_widget > button[disabled]:focus,
9805 #kernel_selector_widget > button[disabled]:focus,
9806 fieldset[disabled] #kernel_selector_widget > button:focus,
9806 fieldset[disabled] #kernel_selector_widget > button:focus,
9807 #kernel_selector_widget > button.disabled:active,
9807 #kernel_selector_widget > button.disabled:active,
9808 #kernel_selector_widget > button[disabled]:active,
9808 #kernel_selector_widget > button[disabled]:active,
9809 fieldset[disabled] #kernel_selector_widget > button:active,
9809 fieldset[disabled] #kernel_selector_widget > button:active,
9810 #kernel_selector_widget > button.disabled.active,
9810 #kernel_selector_widget > button.disabled.active,
9811 #kernel_selector_widget > button[disabled].active,
9811 #kernel_selector_widget > button[disabled].active,
9812 fieldset[disabled] #kernel_selector_widget > button.active {
9812 fieldset[disabled] #kernel_selector_widget > button.active {
9813 background-color: #ffffff;
9813 background-color: #ffffff;
9814 border-color: #cccccc;
9814 border-color: #cccccc;
9815 }
9815 }
9816 #kernel_selector_widget > button .badge {
9816 #kernel_selector_widget > button .badge {
9817 color: #ffffff;
9817 color: #ffffff;
9818 background-color: #333333;
9818 background-color: #333333;
9819 }
9819 }
9820 #kernel_selector_widget > button > span.caret {
9820 #kernel_selector_widget > button > span.caret {
9821 margin-top: 0px;
9821 margin-top: 0px;
9822 }
9822 }
9823 #menubar {
9823 #menubar {
9824 margin-top: 0px;
9824 margin-top: 0px;
9825 margin-bottom: -19px;
9825 margin-bottom: -19px;
9826 position: relative;
9826 position: relative;
9827 box-sizing: border-box;
9827 box-sizing: border-box;
9828 -moz-box-sizing: border-box;
9828 -moz-box-sizing: border-box;
9829 -webkit-box-sizing: border-box;
9829 -webkit-box-sizing: border-box;
9830 }
9830 }
9831 #menubar .navbar {
9831 #menubar .navbar {
9832 border-top: 1px;
9832 border-top: 1px;
9833 border-radius: 0px 0px 4px 4px;
9833 border-radius: 0px 0px 4px 4px;
9834 }
9834 }
9835 #menubar li.dropdown {
9835 #menubar li.dropdown {
9836 line-height: 12px;
9836 line-height: 12px;
9837 }
9837 }
9838 #menubar li.dropdown a {
9838 #menubar li.dropdown a {
9839 padding-top: 6px;
9839 padding-top: 6px;
9840 padding-bottom: 5px;
9840 padding-bottom: 5px;
9841 }
9841 }
9842 #menubar ul.navbar-right {
9842 #menubar ul.navbar-right {
9843 padding-top: 2px;
9843 padding-top: 2px;
9844 }
9844 }
9845 .nav-wrapper {
9845 .nav-wrapper {
9846 border-bottom: 1px solid #e7e7e7;
9846 border-bottom: 1px solid #e7e7e7;
9847 }
9847 }
9848 i.menu-icon {
9848 i.menu-icon {
9849 padding-top: 4px;
9849 padding-top: 4px;
9850 }
9850 }
9851 ul#help_menu li a {
9851 ul#help_menu li a {
9852 overflow: hidden;
9852 overflow: hidden;
9853 padding-right: 2.2em;
9853 padding-right: 2.2em;
9854 }
9854 }
9855 ul#help_menu li a i {
9855 ul#help_menu li a i {
9856 margin-right: -1.2em;
9856 margin-right: -1.2em;
9857 }
9857 }
9858 #menus {
9858 #menus {
9859 min-height: 30px;
9859 min-height: 30px;
9860 }
9860 }
9861 .dropdown-submenu {
9861 .dropdown-submenu {
9862 position: relative;
9862 position: relative;
9863 }
9863 }
9864 .dropdown-submenu > .dropdown-menu {
9864 .dropdown-submenu > .dropdown-menu {
9865 top: 0;
9865 top: 0;
9866 left: 100%;
9866 left: 100%;
9867 margin-top: -6px;
9867 margin-top: -6px;
9868 margin-left: -1px;
9868 margin-left: -1px;
9869 -webkit-border-radius: 0 6px 6px 6px;
9869 -webkit-border-radius: 0 6px 6px 6px;
9870 -moz-border-radius: 0 6px 6px 6px;
9870 -moz-border-radius: 0 6px 6px 6px;
9871 border-radius: 0 6px 6px 6px;
9871 border-radius: 0 6px 6px 6px;
9872 }
9872 }
9873 .dropdown-submenu:hover > .dropdown-menu {
9873 .dropdown-submenu:hover > .dropdown-menu {
9874 display: block;
9874 display: block;
9875 }
9875 }
9876 .dropdown-submenu > a:after {
9876 .dropdown-submenu > a:after {
9877 display: block;
9877 display: block;
9878 content: " ";
9878 content: " ";
9879 float: right;
9879 float: right;
9880 width: 0;
9880 width: 0;
9881 height: 0;
9881 height: 0;
9882 border-color: transparent;
9882 border-color: transparent;
9883 border-style: solid;
9883 border-style: solid;
9884 border-width: 5px 0 5px 5px;
9884 border-width: 5px 0 5px 5px;
9885 border-left-color: #cccccc;
9885 border-left-color: #cccccc;
9886 margin-top: 5px;
9886 margin-top: 5px;
9887 margin-right: -10px;
9887 margin-right: -10px;
9888 }
9888 }
9889 .dropdown-submenu:hover > a:after {
9889 .dropdown-submenu:hover > a:after {
9890 border-left-color: #ffffff;
9890 border-left-color: #ffffff;
9891 }
9891 }
9892 .dropdown-submenu.pull-left {
9892 .dropdown-submenu.pull-left {
9893 float: none;
9893 float: none;
9894 }
9894 }
9895 .dropdown-submenu.pull-left > .dropdown-menu {
9895 .dropdown-submenu.pull-left > .dropdown-menu {
9896 left: -100%;
9896 left: -100%;
9897 margin-left: 10px;
9897 margin-left: 10px;
9898 -webkit-border-radius: 6px 0 6px 6px;
9898 -webkit-border-radius: 6px 0 6px 6px;
9899 -moz-border-radius: 6px 0 6px 6px;
9899 -moz-border-radius: 6px 0 6px 6px;
9900 border-radius: 6px 0 6px 6px;
9900 border-radius: 6px 0 6px 6px;
9901 }
9901 }
9902 #notification_area {
9902 #notification_area {
9903 float: right !important;
9903 float: right !important;
9904 float: right;
9904 float: right;
9905 z-index: 10;
9905 z-index: 10;
9906 }
9906 }
9907 .indicator_area {
9907 .indicator_area {
9908 color: #777777;
9908 color: #777777;
9909 padding: 4px 3px;
9909 padding: 4px 3px;
9910 margin: 0px;
9910 margin: 0px;
9911 width: 11px;
9911 width: 11px;
9912 z-index: 10;
9912 z-index: 10;
9913 text-align: center;
9913 text-align: center;
9914 }
9914 }
9915 #kernel_indicator {
9915 #kernel_indicator {
9916 float: right !important;
9916 float: right !important;
9917 float: right;
9917 float: right;
9918 color: #777777;
9918 color: #777777;
9919 padding: 4px 3px;
9919 padding: 4px 3px;
9920 margin: 0px;
9920 margin: 0px;
9921 width: 11px;
9921 width: 11px;
9922 z-index: 10;
9922 z-index: 10;
9923 text-align: center;
9923 text-align: center;
9924 margin-right: 12px;
9924 margin-right: 12px;
9925 }
9925 }
9926 #modal_indicator {
9926 #modal_indicator {
9927 float: right !important;
9927 float: right !important;
9928 float: right;
9928 float: right;
9929 color: #777777;
9929 color: #777777;
9930 padding: 4px 3px;
9930 padding: 4px 3px;
9931 margin: 0px;
9931 margin: 0px;
9932 width: 11px;
9932 width: 11px;
9933 z-index: 10;
9933 z-index: 10;
9934 text-align: center;
9934 text-align: center;
9935 margin-right: 5px;
9935 margin-right: 5px;
9936 }
9936 }
9937 .edit_mode_icon:before {
9937 .edit_mode_icon:before {
9938 display: inline-block;
9938 display: inline-block;
9939 font-family: FontAwesome;
9939 font-family: FontAwesome;
9940 font-style: normal;
9940 font-style: normal;
9941 font-weight: normal;
9941 font-weight: normal;
9942 line-height: 1;
9942 line-height: 1;
9943 -webkit-font-smoothing: antialiased;
9943 -webkit-font-smoothing: antialiased;
9944 -moz-osx-font-smoothing: grayscale;
9944 -moz-osx-font-smoothing: grayscale;
9945 content: "\f040";
9945 content: "\f040";
9946 }
9946 }
9947 .edit_mode_icon:before.pull-left {
9947 .edit_mode_icon:before.pull-left {
9948 margin-right: .3em;
9948 margin-right: .3em;
9949 }
9949 }
9950 .edit_mode_icon:before.pull-right {
9950 .edit_mode_icon:before.pull-right {
9951 margin-left: .3em;
9951 margin-left: .3em;
9952 }
9952 }
9953 .command_mode_icon:before {
9953 .command_mode_icon:before {
9954 display: inline-block;
9954 display: inline-block;
9955 font-family: FontAwesome;
9955 font-family: FontAwesome;
9956 font-style: normal;
9956 font-style: normal;
9957 font-weight: normal;
9957 font-weight: normal;
9958 line-height: 1;
9958 line-height: 1;
9959 -webkit-font-smoothing: antialiased;
9959 -webkit-font-smoothing: antialiased;
9960 -moz-osx-font-smoothing: grayscale;
9960 -moz-osx-font-smoothing: grayscale;
9961 content: ' ';
9961 content: ' ';
9962 }
9962 }
9963 .command_mode_icon:before.pull-left {
9963 .command_mode_icon:before.pull-left {
9964 margin-right: .3em;
9964 margin-right: .3em;
9965 }
9965 }
9966 .command_mode_icon:before.pull-right {
9966 .command_mode_icon:before.pull-right {
9967 margin-left: .3em;
9967 margin-left: .3em;
9968 }
9968 }
9969 .kernel_idle_icon:before {
9969 .kernel_idle_icon:before {
9970 display: inline-block;
9970 display: inline-block;
9971 font-family: FontAwesome;
9971 font-family: FontAwesome;
9972 font-style: normal;
9972 font-style: normal;
9973 font-weight: normal;
9973 font-weight: normal;
9974 line-height: 1;
9974 line-height: 1;
9975 -webkit-font-smoothing: antialiased;
9975 -webkit-font-smoothing: antialiased;
9976 -moz-osx-font-smoothing: grayscale;
9976 -moz-osx-font-smoothing: grayscale;
9977 content: "\f10c";
9977 content: "\f10c";
9978 }
9978 }
9979 .kernel_idle_icon:before.pull-left {
9979 .kernel_idle_icon:before.pull-left {
9980 margin-right: .3em;
9980 margin-right: .3em;
9981 }
9981 }
9982 .kernel_idle_icon:before.pull-right {
9982 .kernel_idle_icon:before.pull-right {
9983 margin-left: .3em;
9983 margin-left: .3em;
9984 }
9984 }
9985 .kernel_busy_icon:before {
9985 .kernel_busy_icon:before {
9986 display: inline-block;
9986 display: inline-block;
9987 font-family: FontAwesome;
9987 font-family: FontAwesome;
9988 font-style: normal;
9988 font-style: normal;
9989 font-weight: normal;
9989 font-weight: normal;
9990 line-height: 1;
9990 line-height: 1;
9991 -webkit-font-smoothing: antialiased;
9991 -webkit-font-smoothing: antialiased;
9992 -moz-osx-font-smoothing: grayscale;
9992 -moz-osx-font-smoothing: grayscale;
9993 content: "\f111";
9993 content: "\f111";
9994 }
9994 }
9995 .kernel_busy_icon:before.pull-left {
9995 .kernel_busy_icon:before.pull-left {
9996 margin-right: .3em;
9996 margin-right: .3em;
9997 }
9997 }
9998 .kernel_busy_icon:before.pull-right {
9998 .kernel_busy_icon:before.pull-right {
9999 margin-left: .3em;
9999 margin-left: .3em;
10000 }
10000 }
10001 .notification_widget {
10001 .notification_widget {
10002 color: #777777;
10002 color: #777777;
10003 padding: 1px 12px;
10003 padding: 1px 12px;
10004 margin: 2px 4px;
10004 margin: 2px 4px;
10005 z-index: 10;
10005 z-index: 10;
10006 background: rgba(240, 240, 240, 0.5);
10006 background: rgba(240, 240, 240, 0.5);
10007 float: right !important;
10007 float: right !important;
10008 float: right;
10008 float: right;
10009 box-sizing: border-box;
10009 box-sizing: border-box;
10010 -moz-box-sizing: border-box;
10010 -moz-box-sizing: border-box;
10011 -webkit-box-sizing: border-box;
10011 -webkit-box-sizing: border-box;
10012 display: inline-block;
10012 display: inline-block;
10013 margin-bottom: 0;
10013 margin-bottom: 0;
10014 font-weight: normal;
10014 font-weight: normal;
10015 text-align: center;
10015 text-align: center;
10016 vertical-align: middle;
10016 vertical-align: middle;
10017 cursor: pointer;
10017 cursor: pointer;
10018 background-image: none;
10018 background-image: none;
10019 border: 1px solid transparent;
10019 border: 1px solid transparent;
10020 white-space: nowrap;
10020 white-space: nowrap;
10021 padding: 6px 12px;
10021 padding: 6px 12px;
10022 font-size: 13px;
10022 font-size: 13px;
10023 line-height: 1.42857143;
10023 line-height: 1.42857143;
10024 border-radius: 4px;
10024 border-radius: 4px;
10025 -webkit-user-select: none;
10025 -webkit-user-select: none;
10026 -moz-user-select: none;
10026 -moz-user-select: none;
10027 -ms-user-select: none;
10027 -ms-user-select: none;
10028 user-select: none;
10028 user-select: none;
10029 color: #333333;
10029 color: #333333;
10030 background-color: #ffffff;
10030 background-color: #ffffff;
10031 border-color: #cccccc;
10031 border-color: #cccccc;
10032 padding: 1px 5px;
10032 padding: 1px 5px;
10033 font-size: 12px;
10033 font-size: 12px;
10034 line-height: 1.5;
10034 line-height: 1.5;
10035 border-radius: 3px;
10035 border-radius: 3px;
10036 }
10036 }
10037 .notification_widget:focus,
10037 .notification_widget:focus,
10038 .notification_widget:active:focus,
10038 .notification_widget:active:focus,
10039 .notification_widget.active:focus {
10039 .notification_widget.active:focus {
10040 outline: thin dotted;
10040 outline: thin dotted;
10041 outline: 5px auto -webkit-focus-ring-color;
10041 outline: 5px auto -webkit-focus-ring-color;
10042 outline-offset: -2px;
10042 outline-offset: -2px;
10043 }
10043 }
10044 .notification_widget:hover,
10044 .notification_widget:hover,
10045 .notification_widget:focus {
10045 .notification_widget:focus {
10046 color: #333333;
10046 color: #333333;
10047 text-decoration: none;
10047 text-decoration: none;
10048 }
10048 }
10049 .notification_widget:active,
10049 .notification_widget:active,
10050 .notification_widget.active {
10050 .notification_widget.active {
10051 outline: 0;
10051 outline: 0;
10052 background-image: none;
10052 background-image: none;
10053 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
10053 -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
10054 box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
10054 box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
10055 }
10055 }
10056 .notification_widget.disabled,
10056 .notification_widget.disabled,
10057 .notification_widget[disabled],
10057 .notification_widget[disabled],
10058 fieldset[disabled] .notification_widget {
10058 fieldset[disabled] .notification_widget {
10059 cursor: not-allowed;
10059 cursor: not-allowed;
10060 pointer-events: none;
10060 pointer-events: none;
10061 opacity: 0.65;
10061 opacity: 0.65;
10062 filter: alpha(opacity=65);
10062 filter: alpha(opacity=65);
10063 -webkit-box-shadow: none;
10063 -webkit-box-shadow: none;
10064 box-shadow: none;
10064 box-shadow: none;
10065 }
10065 }
10066 .notification_widget:hover,
10066 .notification_widget:hover,
10067 .notification_widget:focus,
10067 .notification_widget:focus,
10068 .notification_widget:active,
10068 .notification_widget:active,
10069 .notification_widget.active,
10069 .notification_widget.active,
10070 .open .dropdown-toggle.notification_widget {
10070 .open .dropdown-toggle.notification_widget {
10071 color: #333333;
10071 color: #333333;
10072 background-color: #ebebeb;
10072 background-color: #ebebeb;
10073 border-color: #adadad;
10073 border-color: #adadad;
10074 }
10074 }
10075 .notification_widget:active,
10075 .notification_widget:active,
10076 .notification_widget.active,
10076 .notification_widget.active,
10077 .open .dropdown-toggle.notification_widget {
10077 .open .dropdown-toggle.notification_widget {
10078 background-image: none;
10078 background-image: none;
10079 }
10079 }
10080 .notification_widget.disabled,
10080 .notification_widget.disabled,
10081 .notification_widget[disabled],
10081 .notification_widget[disabled],
10082 fieldset[disabled] .notification_widget,
10082 fieldset[disabled] .notification_widget,
10083 .notification_widget.disabled:hover,
10083 .notification_widget.disabled:hover,
10084 .notification_widget[disabled]:hover,
10084 .notification_widget[disabled]:hover,
10085 fieldset[disabled] .notification_widget:hover,
10085 fieldset[disabled] .notification_widget:hover,
10086 .notification_widget.disabled:focus,
10086 .notification_widget.disabled:focus,
10087 .notification_widget[disabled]:focus,
10087 .notification_widget[disabled]:focus,
10088 fieldset[disabled] .notification_widget:focus,
10088 fieldset[disabled] .notification_widget:focus,
10089 .notification_widget.disabled:active,
10089 .notification_widget.disabled:active,
10090 .notification_widget[disabled]:active,
10090 .notification_widget[disabled]:active,
10091 fieldset[disabled] .notification_widget:active,
10091 fieldset[disabled] .notification_widget:active,
10092 .notification_widget.disabled.active,
10092 .notification_widget.disabled.active,
10093 .notification_widget[disabled].active,
10093 .notification_widget[disabled].active,
10094 fieldset[disabled] .notification_widget.active {
10094 fieldset[disabled] .notification_widget.active {
10095 background-color: #ffffff;
10095 background-color: #ffffff;
10096 border-color: #cccccc;
10096 border-color: #cccccc;
10097 }
10097 }
10098 .notification_widget .badge {
10098 .notification_widget .badge {
10099 color: #ffffff;
10099 color: #ffffff;
10100 background-color: #333333;
10100 background-color: #333333;
10101 }
10101 }
10102 .notification_widget.span {
10102 .notification_widget.span {
10103 padding-right: 2px;
10103 padding-right: 2px;
10104 }
10104 }
10105 .notification_widget.warning {
10105 .notification_widget.warning {
10106 color: #ffffff;
10106 color: #ffffff;
10107 background-color: #f0ad4e;
10107 background-color: #f0ad4e;
10108 border-color: #eea236;
10108 border-color: #eea236;
10109 }
10109 }
10110 .notification_widget.warning:hover,
10110 .notification_widget.warning:hover,
10111 .notification_widget.warning:focus,
10111 .notification_widget.warning:focus,
10112 .notification_widget.warning:active,
10112 .notification_widget.warning:active,
10113 .notification_widget.warning.active,
10113 .notification_widget.warning.active,
10114 .open .dropdown-toggle.notification_widget.warning {
10114 .open .dropdown-toggle.notification_widget.warning {
10115 color: #ffffff;
10115 color: #ffffff;
10116 background-color: #ed9c28;
10116 background-color: #ed9c28;
10117 border-color: #d58512;
10117 border-color: #d58512;
10118 }
10118 }
10119 .notification_widget.warning:active,
10119 .notification_widget.warning:active,
10120 .notification_widget.warning.active,
10120 .notification_widget.warning.active,
10121 .open .dropdown-toggle.notification_widget.warning {
10121 .open .dropdown-toggle.notification_widget.warning {
10122 background-image: none;
10122 background-image: none;
10123 }
10123 }
10124 .notification_widget.warning.disabled,
10124 .notification_widget.warning.disabled,
10125 .notification_widget.warning[disabled],
10125 .notification_widget.warning[disabled],
10126 fieldset[disabled] .notification_widget.warning,
10126 fieldset[disabled] .notification_widget.warning,
10127 .notification_widget.warning.disabled:hover,
10127 .notification_widget.warning.disabled:hover,
10128 .notification_widget.warning[disabled]:hover,
10128 .notification_widget.warning[disabled]:hover,
10129 fieldset[disabled] .notification_widget.warning:hover,
10129 fieldset[disabled] .notification_widget.warning:hover,
10130 .notification_widget.warning.disabled:focus,
10130 .notification_widget.warning.disabled:focus,
10131 .notification_widget.warning[disabled]:focus,
10131 .notification_widget.warning[disabled]:focus,
10132 fieldset[disabled] .notification_widget.warning:focus,
10132 fieldset[disabled] .notification_widget.warning:focus,
10133 .notification_widget.warning.disabled:active,
10133 .notification_widget.warning.disabled:active,
10134 .notification_widget.warning[disabled]:active,
10134 .notification_widget.warning[disabled]:active,
10135 fieldset[disabled] .notification_widget.warning:active,
10135 fieldset[disabled] .notification_widget.warning:active,
10136 .notification_widget.warning.disabled.active,
10136 .notification_widget.warning.disabled.active,
10137 .notification_widget.warning[disabled].active,
10137 .notification_widget.warning[disabled].active,
10138 fieldset[disabled] .notification_widget.warning.active {
10138 fieldset[disabled] .notification_widget.warning.active {
10139 background-color: #f0ad4e;
10139 background-color: #f0ad4e;
10140 border-color: #eea236;
10140 border-color: #eea236;
10141 }
10141 }
10142 .notification_widget.warning .badge {
10142 .notification_widget.warning .badge {
10143 color: #f0ad4e;
10143 color: #f0ad4e;
10144 background-color: #ffffff;
10144 background-color: #ffffff;
10145 }
10145 }
10146 .notification_widget.success {
10146 .notification_widget.success {
10147 color: #ffffff;
10147 color: #ffffff;
10148 background-color: #5cb85c;
10148 background-color: #5cb85c;
10149 border-color: #4cae4c;
10149 border-color: #4cae4c;
10150 }
10150 }
10151 .notification_widget.success:hover,
10151 .notification_widget.success:hover,
10152 .notification_widget.success:focus,
10152 .notification_widget.success:focus,
10153 .notification_widget.success:active,
10153 .notification_widget.success:active,
10154 .notification_widget.success.active,
10154 .notification_widget.success.active,
10155 .open .dropdown-toggle.notification_widget.success {
10155 .open .dropdown-toggle.notification_widget.success {
10156 color: #ffffff;
10156 color: #ffffff;
10157 background-color: #47a447;
10157 background-color: #47a447;
10158 border-color: #398439;
10158 border-color: #398439;
10159 }
10159 }
10160 .notification_widget.success:active,
10160 .notification_widget.success:active,
10161 .notification_widget.success.active,
10161 .notification_widget.success.active,
10162 .open .dropdown-toggle.notification_widget.success {
10162 .open .dropdown-toggle.notification_widget.success {
10163 background-image: none;
10163 background-image: none;
10164 }
10164 }
10165 .notification_widget.success.disabled,
10165 .notification_widget.success.disabled,
10166 .notification_widget.success[disabled],
10166 .notification_widget.success[disabled],
10167 fieldset[disabled] .notification_widget.success,
10167 fieldset[disabled] .notification_widget.success,
10168 .notification_widget.success.disabled:hover,
10168 .notification_widget.success.disabled:hover,
10169 .notification_widget.success[disabled]:hover,
10169 .notification_widget.success[disabled]:hover,
10170 fieldset[disabled] .notification_widget.success:hover,
10170 fieldset[disabled] .notification_widget.success:hover,
10171 .notification_widget.success.disabled:focus,
10171 .notification_widget.success.disabled:focus,
10172 .notification_widget.success[disabled]:focus,
10172 .notification_widget.success[disabled]:focus,
10173 fieldset[disabled] .notification_widget.success:focus,
10173 fieldset[disabled] .notification_widget.success:focus,
10174 .notification_widget.success.disabled:active,
10174 .notification_widget.success.disabled:active,
10175 .notification_widget.success[disabled]:active,
10175 .notification_widget.success[disabled]:active,
10176 fieldset[disabled] .notification_widget.success:active,
10176 fieldset[disabled] .notification_widget.success:active,
10177 .notification_widget.success.disabled.active,
10177 .notification_widget.success.disabled.active,
10178 .notification_widget.success[disabled].active,
10178 .notification_widget.success[disabled].active,
10179 fieldset[disabled] .notification_widget.success.active {
10179 fieldset[disabled] .notification_widget.success.active {
10180 background-color: #5cb85c;
10180 background-color: #5cb85c;
10181 border-color: #4cae4c;
10181 border-color: #4cae4c;
10182 }
10182 }
10183 .notification_widget.success .badge {
10183 .notification_widget.success .badge {
10184 color: #5cb85c;
10184 color: #5cb85c;
10185 background-color: #ffffff;
10185 background-color: #ffffff;
10186 }
10186 }
10187 .notification_widget.info {
10187 .notification_widget.info {
10188 color: #ffffff;
10188 color: #ffffff;
10189 background-color: #5bc0de;
10189 background-color: #5bc0de;
10190 border-color: #46b8da;
10190 border-color: #46b8da;
10191 }
10191 }
10192 .notification_widget.info:hover,
10192 .notification_widget.info:hover,
10193 .notification_widget.info:focus,
10193 .notification_widget.info:focus,
10194 .notification_widget.info:active,
10194 .notification_widget.info:active,
10195 .notification_widget.info.active,
10195 .notification_widget.info.active,
10196 .open .dropdown-toggle.notification_widget.info {
10196 .open .dropdown-toggle.notification_widget.info {
10197 color: #ffffff;
10197 color: #ffffff;
10198 background-color: #39b3d7;
10198 background-color: #39b3d7;
10199 border-color: #269abc;
10199 border-color: #269abc;
10200 }
10200 }
10201 .notification_widget.info:active,
10201 .notification_widget.info:active,
10202 .notification_widget.info.active,
10202 .notification_widget.info.active,
10203 .open .dropdown-toggle.notification_widget.info {
10203 .open .dropdown-toggle.notification_widget.info {
10204 background-image: none;
10204 background-image: none;
10205 }
10205 }
10206 .notification_widget.info.disabled,
10206 .notification_widget.info.disabled,
10207 .notification_widget.info[disabled],
10207 .notification_widget.info[disabled],
10208 fieldset[disabled] .notification_widget.info,
10208 fieldset[disabled] .notification_widget.info,
10209 .notification_widget.info.disabled:hover,
10209 .notification_widget.info.disabled:hover,
10210 .notification_widget.info[disabled]:hover,
10210 .notification_widget.info[disabled]:hover,
10211 fieldset[disabled] .notification_widget.info:hover,
10211 fieldset[disabled] .notification_widget.info:hover,
10212 .notification_widget.info.disabled:focus,
10212 .notification_widget.info.disabled:focus,
10213 .notification_widget.info[disabled]:focus,
10213 .notification_widget.info[disabled]:focus,
10214 fieldset[disabled] .notification_widget.info:focus,
10214 fieldset[disabled] .notification_widget.info:focus,
10215 .notification_widget.info.disabled:active,
10215 .notification_widget.info.disabled:active,
10216 .notification_widget.info[disabled]:active,
10216 .notification_widget.info[disabled]:active,
10217 fieldset[disabled] .notification_widget.info:active,
10217 fieldset[disabled] .notification_widget.info:active,
10218 .notification_widget.info.disabled.active,
10218 .notification_widget.info.disabled.active,
10219 .notification_widget.info[disabled].active,
10219 .notification_widget.info[disabled].active,
10220 fieldset[disabled] .notification_widget.info.active {
10220 fieldset[disabled] .notification_widget.info.active {
10221 background-color: #5bc0de;
10221 background-color: #5bc0de;
10222 border-color: #46b8da;
10222 border-color: #46b8da;
10223 }
10223 }
10224 .notification_widget.info .badge {
10224 .notification_widget.info .badge {
10225 color: #5bc0de;
10225 color: #5bc0de;
10226 background-color: #ffffff;
10226 background-color: #ffffff;
10227 }
10227 }
10228 .notification_widget.danger {
10228 .notification_widget.danger {
10229 color: #ffffff;
10229 color: #ffffff;
10230 background-color: #d9534f;
10230 background-color: #d9534f;
10231 border-color: #d43f3a;
10231 border-color: #d43f3a;
10232 }
10232 }
10233 .notification_widget.danger:hover,
10233 .notification_widget.danger:hover,
10234 .notification_widget.danger:focus,
10234 .notification_widget.danger:focus,
10235 .notification_widget.danger:active,
10235 .notification_widget.danger:active,
10236 .notification_widget.danger.active,
10236 .notification_widget.danger.active,
10237 .open .dropdown-toggle.notification_widget.danger {
10237 .open .dropdown-toggle.notification_widget.danger {
10238 color: #ffffff;
10238 color: #ffffff;
10239 background-color: #d2322d;
10239 background-color: #d2322d;
10240 border-color: #ac2925;
10240 border-color: #ac2925;
10241 }
10241 }
10242 .notification_widget.danger:active,
10242 .notification_widget.danger:active,
10243 .notification_widget.danger.active,
10243 .notification_widget.danger.active,
10244 .open .dropdown-toggle.notification_widget.danger {
10244 .open .dropdown-toggle.notification_widget.danger {
10245 background-image: none;
10245 background-image: none;
10246 }
10246 }
10247 .notification_widget.danger.disabled,
10247 .notification_widget.danger.disabled,
10248 .notification_widget.danger[disabled],
10248 .notification_widget.danger[disabled],
10249 fieldset[disabled] .notification_widget.danger,
10249 fieldset[disabled] .notification_widget.danger,
10250 .notification_widget.danger.disabled:hover,
10250 .notification_widget.danger.disabled:hover,
10251 .notification_widget.danger[disabled]:hover,
10251 .notification_widget.danger[disabled]:hover,
10252 fieldset[disabled] .notification_widget.danger:hover,
10252 fieldset[disabled] .notification_widget.danger:hover,
10253 .notification_widget.danger.disabled:focus,
10253 .notification_widget.danger.disabled:focus,
10254 .notification_widget.danger[disabled]:focus,
10254 .notification_widget.danger[disabled]:focus,
10255 fieldset[disabled] .notification_widget.danger:focus,
10255 fieldset[disabled] .notification_widget.danger:focus,
10256 .notification_widget.danger.disabled:active,
10256 .notification_widget.danger.disabled:active,
10257 .notification_widget.danger[disabled]:active,
10257 .notification_widget.danger[disabled]:active,
10258 fieldset[disabled] .notification_widget.danger:active,
10258 fieldset[disabled] .notification_widget.danger:active,
10259 .notification_widget.danger.disabled.active,
10259 .notification_widget.danger.disabled.active,
10260 .notification_widget.danger[disabled].active,
10260 .notification_widget.danger[disabled].active,
10261 fieldset[disabled] .notification_widget.danger.active {
10261 fieldset[disabled] .notification_widget.danger.active {
10262 background-color: #d9534f;
10262 background-color: #d9534f;
10263 border-color: #d43f3a;
10263 border-color: #d43f3a;
10264 }
10264 }
10265 .notification_widget.danger .badge {
10265 .notification_widget.danger .badge {
10266 color: #d9534f;
10266 color: #d9534f;
10267 background-color: #ffffff;
10267 background-color: #ffffff;
10268 }
10268 }
10269 div#pager_splitter {
10269 div#pager_splitter {
10270 height: 8px;
10270 height: 8px;
10271 box-sizing: border-box;
10271 box-sizing: border-box;
10272 -moz-box-sizing: border-box;
10272 -moz-box-sizing: border-box;
10273 -webkit-box-sizing: border-box;
10273 -webkit-box-sizing: border-box;
10274 }
10274 }
10275 #pager-container {
10275 #pager-container {
10276 position: relative;
10276 position: relative;
10277 padding: 15px 0px;
10277 padding: 15px 0px;
10278 box-sizing: border-box;
10278 box-sizing: border-box;
10279 -moz-box-sizing: border-box;
10279 -moz-box-sizing: border-box;
10280 -webkit-box-sizing: border-box;
10280 -webkit-box-sizing: border-box;
10281 }
10281 }
10282 div#pager {
10282 div#pager {
10283 font-size: 14px;
10283 font-size: 14px;
10284 line-height: 20px;
10284 line-height: 20px;
10285 overflow: auto;
10285 overflow: auto;
10286 display: none;
10286 display: none;
10287 box-sizing: border-box;
10287 box-sizing: border-box;
10288 -moz-box-sizing: border-box;
10288 -moz-box-sizing: border-box;
10289 -webkit-box-sizing: border-box;
10289 -webkit-box-sizing: border-box;
10290 }
10290 }
10291 div#pager pre {
10291 div#pager pre {
10292 line-height: 1.21429em;
10292 line-height: 1.21429em;
10293 color: #000000;
10293 color: #000000;
10294 background-color: #f7f7f7;
10294 background-color: #f7f7f7;
10295 padding: 0.4em;
10295 padding: 0.4em;
10296 }
10296 }
10297 .quickhelp {
10297 .quickhelp {
10298 /* Old browsers */
10298 /* Old browsers */
10299 display: -webkit-box;
10299 display: -webkit-box;
10300 -webkit-box-orient: horizontal;
10300 -webkit-box-orient: horizontal;
10301 -webkit-box-align: stretch;
10301 -webkit-box-align: stretch;
10302 display: -moz-box;
10302 display: -moz-box;
10303 -moz-box-orient: horizontal;
10303 -moz-box-orient: horizontal;
10304 -moz-box-align: stretch;
10304 -moz-box-align: stretch;
10305 display: box;
10305 display: box;
10306 box-orient: horizontal;
10306 box-orient: horizontal;
10307 box-align: stretch;
10307 box-align: stretch;
10308 /* Modern browsers */
10308 /* Modern browsers */
10309 display: flex;
10309 display: flex;
10310 flex-direction: row;
10310 flex-direction: row;
10311 align-items: stretch;
10311 align-items: stretch;
10312 /* Old browsers */
10312 /* Old browsers */
10313 -webkit-box-flex: 0;
10313 -webkit-box-flex: 0;
10314 -moz-box-flex: 0;
10314 -moz-box-flex: 0;
10315 box-flex: 0;
10315 box-flex: 0;
10316 /* Modern browsers */
10316 /* Modern browsers */
10317 flex: none;
10317 flex: none;
10318 }
10318 }
10319 .shortcut_key {
10319 .shortcut_key {
10320 display: inline-block;
10320 display: inline-block;
10321 width: 20ex;
10321 width: 20ex;
10322 text-align: right;
10322 text-align: right;
10323 font-family: monospace;
10323 font-family: monospace;
10324 }
10324 }
10325 .shortcut_descr {
10325 .shortcut_descr {
10326 display: inline-block;
10326 display: inline-block;
10327 /* Old browsers */
10327 /* Old browsers */
10328 -webkit-box-flex: 1;
10328 -webkit-box-flex: 1;
10329 -moz-box-flex: 1;
10329 -moz-box-flex: 1;
10330 box-flex: 1;
10330 box-flex: 1;
10331 /* Modern browsers */
10331 /* Modern browsers */
10332 flex: 1;
10332 flex: 1;
10333 }
10333 }
10334 span#save_widget {
10334 span#save_widget {
10335 padding: 0px 5px;
10335 padding: 0px 5px;
10336 margin-top: 12px;
10336 margin-top: 12px;
10337 }
10337 }
10338 span#checkpoint_status,
10338 span#checkpoint_status,
10339 span#autosave_status {
10339 span#autosave_status {
10340 font-size: small;
10340 font-size: small;
10341 }
10341 }
10342 @media (max-width: 767px) {
10342 @media (max-width: 767px) {
10343 span#save_widget {
10343 span#save_widget {
10344 font-size: small;
10344 font-size: small;
10345 }
10345 }
10346 span#checkpoint_status,
10346 span#checkpoint_status,
10347 span#autosave_status {
10347 span#autosave_status {
10348 font-size: x-small;
10348 font-size: x-small;
10349 }
10349 }
10350 }
10350 }
10351 @media (max-width: 767px) {
10351 @media (max-width: 767px) {
10352 span#checkpoint_status,
10352 span#checkpoint_status,
10353 span#autosave_status {
10353 span#autosave_status {
10354 display: none;
10354 display: none;
10355 }
10355 }
10356 }
10356 }
10357 @media (min-width: 768px) and (max-width: 979px) {
10357 @media (min-width: 768px) and (max-width: 979px) {
10358 span#checkpoint_status {
10358 span#checkpoint_status {
10359 display: none;
10359 display: none;
10360 }
10360 }
10361 span#autosave_status {
10361 span#autosave_status {
10362 font-size: x-small;
10362 font-size: x-small;
10363 }
10363 }
10364 }
10364 }
10365 .toolbar {
10365 .toolbar {
10366 padding: 0px;
10366 padding: 0px;
10367 margin-left: -5px;
10367 margin-left: -5px;
10368 margin-top: -5px;
10368 margin-top: -5px;
10369 box-sizing: border-box;
10369 box-sizing: border-box;
10370 -moz-box-sizing: border-box;
10370 -moz-box-sizing: border-box;
10371 -webkit-box-sizing: border-box;
10371 -webkit-box-sizing: border-box;
10372 }
10372 }
10373 .toolbar select,
10373 .toolbar select,
10374 .toolbar label {
10374 .toolbar label {
10375 width: auto;
10375 width: auto;
10376 vertical-align: middle;
10376 vertical-align: middle;
10377 margin-right: 2px;
10377 margin-right: 2px;
10378 margin-bottom: 0px;
10378 margin-bottom: 0px;
10379 display: inline;
10379 display: inline;
10380 font-size: 92%;
10380 font-size: 92%;
10381 margin-left: 0.3em;
10381 margin-left: 0.3em;
10382 margin-right: 0.3em;
10382 margin-right: 0.3em;
10383 padding: 0px;
10383 padding: 0px;
10384 padding-top: 3px;
10384 padding-top: 3px;
10385 }
10385 }
10386 .toolbar .btn {
10386 .toolbar .btn {
10387 padding: 2px 8px;
10387 padding: 2px 8px;
10388 }
10388 }
10389 .toolbar .btn-group {
10389 .toolbar .btn-group {
10390 margin-top: 0px;
10390 margin-top: 0px;
10391 margin-left: 5px;
10391 margin-left: 5px;
10392 }
10392 }
10393 #maintoolbar {
10393 #maintoolbar {
10394 margin-bottom: -3px;
10394 margin-bottom: -3px;
10395 margin-top: -8px;
10395 margin-top: -8px;
10396 border: 0px;
10396 border: 0px;
10397 min-height: 27px;
10397 min-height: 27px;
10398 margin-left: 32px;
10398 margin-left: 32px;
10399 padding-top: 6px;
10399 padding-top: 6px;
10400 padding-bottom: 8px;
10400 padding-bottom: 8px;
10401 }
10401 }
10402 #maintoolbar .navbar-text {
10402 #maintoolbar .navbar-text {
10403 float: none;
10403 float: none;
10404 vertical-align: middle;
10404 vertical-align: middle;
10405 text-align: right;
10405 text-align: right;
10406 margin-left: 5px;
10406 margin-left: 5px;
10407 margin-right: 0px;
10407 margin-right: 0px;
10408 margin-top: 0px;
10408 margin-top: 0px;
10409 }
10409 }
10410 #maintoolbar .toolbar {
10410 #maintoolbar .toolbar {
10411 margin-top: 0px;
10411 margin-top: 0px;
10412 }
10412 }
10413 .select-xs {
10413 .select-xs {
10414 height: 24px;
10414 height: 24px;
10415 }
10415 }
10416 /**
10416 /**
10417 * Primary styles
10417 * Primary styles
10418 *
10418 *
10419 * Author: IPython Development Team
10419 * Author: IPython Development Team
10420 */
10420 */
10421 /** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
10421 /** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
10422 * of chance of beeing generated from the ../less/[samename].less file, you can
10422 * of chance of beeing generated from the ../less/[samename].less file, you can
10423 * try to get back the less file by reverting somme commit in history
10423 * try to get back the less file by reverting somme commit in history
10424 **/
10424 **/
10425 /*
10425 /*
10426 * We'll try to get something pretty, so we
10426 * We'll try to get something pretty, so we
10427 * have some strange css to have the scroll bar on
10427 * have some strange css to have the scroll bar on
10428 * the left with fix button on the top right of the tooltip
10428 * the left with fix button on the top right of the tooltip
10429 */
10429 */
10430 @-moz-keyframes fadeOut {
10430 @-moz-keyframes fadeOut {
10431 from {
10431 from {
10432 opacity: 1;
10432 opacity: 1;
10433 }
10433 }
10434 to {
10434 to {
10435 opacity: 0;
10435 opacity: 0;
10436 }
10436 }
10437 }
10437 }
10438 @-webkit-keyframes fadeOut {
10438 @-webkit-keyframes fadeOut {
10439 from {
10439 from {
10440 opacity: 1;
10440 opacity: 1;
10441 }
10441 }
10442 to {
10442 to {
10443 opacity: 0;
10443 opacity: 0;
10444 }
10444 }
10445 }
10445 }
10446 @-moz-keyframes fadeIn {
10446 @-moz-keyframes fadeIn {
10447 from {
10447 from {
10448 opacity: 0;
10448 opacity: 0;
10449 }
10449 }
10450 to {
10450 to {
10451 opacity: 1;
10451 opacity: 1;
10452 }
10452 }
10453 }
10453 }
10454 @-webkit-keyframes fadeIn {
10454 @-webkit-keyframes fadeIn {
10455 from {
10455 from {
10456 opacity: 0;
10456 opacity: 0;
10457 }
10457 }
10458 to {
10458 to {
10459 opacity: 1;
10459 opacity: 1;
10460 }
10460 }
10461 }
10461 }
10462 /*properties of tooltip after "expand"*/
10462 /*properties of tooltip after "expand"*/
10463 .bigtooltip {
10463 .bigtooltip {
10464 overflow: auto;
10464 overflow: auto;
10465 height: 200px;
10465 height: 200px;
10466 -webkit-transition-property: height;
10466 -webkit-transition-property: height;
10467 -webkit-transition-duration: 500ms;
10467 -webkit-transition-duration: 500ms;
10468 -moz-transition-property: height;
10468 -moz-transition-property: height;
10469 -moz-transition-duration: 500ms;
10469 -moz-transition-duration: 500ms;
10470 transition-property: height;
10470 transition-property: height;
10471 transition-duration: 500ms;
10471 transition-duration: 500ms;
10472 }
10472 }
10473 /*properties of tooltip before "expand"*/
10473 /*properties of tooltip before "expand"*/
10474 .smalltooltip {
10474 .smalltooltip {
10475 -webkit-transition-property: height;
10475 -webkit-transition-property: height;
10476 -webkit-transition-duration: 500ms;
10476 -webkit-transition-duration: 500ms;
10477 -moz-transition-property: height;
10477 -moz-transition-property: height;
10478 -moz-transition-duration: 500ms;
10478 -moz-transition-duration: 500ms;
10479 transition-property: height;
10479 transition-property: height;
10480 transition-duration: 500ms;
10480 transition-duration: 500ms;
10481 text-overflow: ellipsis;
10481 text-overflow: ellipsis;
10482 overflow: hidden;
10482 overflow: hidden;
10483 height: 80px;
10483 height: 80px;
10484 }
10484 }
10485 .tooltipbuttons {
10485 .tooltipbuttons {
10486 position: absolute;
10486 position: absolute;
10487 padding-right: 15px;
10487 padding-right: 15px;
10488 top: 0px;
10488 top: 0px;
10489 right: 0px;
10489 right: 0px;
10490 }
10490 }
10491 .tooltiptext {
10491 .tooltiptext {
10492 /*avoid the button to overlap on some docstring*/
10492 /*avoid the button to overlap on some docstring*/
10493 padding-right: 30px;
10493 padding-right: 30px;
10494 }
10494 }
10495 .ipython_tooltip {
10495 .ipython_tooltip {
10496 max-width: 700px;
10496 max-width: 700px;
10497 /*fade-in animation when inserted*/
10497 /*fade-in animation when inserted*/
10498 -webkit-animation: fadeOut 400ms;
10498 -webkit-animation: fadeOut 400ms;
10499 -moz-animation: fadeOut 400ms;
10499 -moz-animation: fadeOut 400ms;
10500 animation: fadeOut 400ms;
10500 animation: fadeOut 400ms;
10501 -webkit-animation: fadeIn 400ms;
10501 -webkit-animation: fadeIn 400ms;
10502 -moz-animation: fadeIn 400ms;
10502 -moz-animation: fadeIn 400ms;
10503 animation: fadeIn 400ms;
10503 animation: fadeIn 400ms;
10504 vertical-align: middle;
10504 vertical-align: middle;
10505 background-color: #f7f7f7;
10505 background-color: #f7f7f7;
10506 overflow: visible;
10506 overflow: visible;
10507 border: #ababab 1px solid;
10507 border: #ababab 1px solid;
10508 outline: none;
10508 outline: none;
10509 padding: 3px;
10509 padding: 3px;
10510 margin: 0px;
10510 margin: 0px;
10511 padding-left: 7px;
10511 padding-left: 7px;
10512 font-family: monospace;
10512 font-family: monospace;
10513 min-height: 50px;
10513 min-height: 50px;
10514 -moz-box-shadow: 0px 6px 10px -1px #adadad;
10514 -moz-box-shadow: 0px 6px 10px -1px #adadad;
10515 -webkit-box-shadow: 0px 6px 10px -1px #adadad;
10515 -webkit-box-shadow: 0px 6px 10px -1px #adadad;
10516 box-shadow: 0px 6px 10px -1px #adadad;
10516 box-shadow: 0px 6px 10px -1px #adadad;
10517 border-radius: 4px;
10517 border-radius: 4px;
10518 position: absolute;
10518 position: absolute;
10519 z-index: 1000;
10519 z-index: 1000;
10520 }
10520 }
10521 .ipython_tooltip a {
10521 .ipython_tooltip a {
10522 float: right;
10522 float: right;
10523 }
10523 }
10524 .ipython_tooltip .tooltiptext pre {
10524 .ipython_tooltip .tooltiptext pre {
10525 border: 0;
10525 border: 0;
10526 border-radius: 0;
10526 border-radius: 0;
10527 font-size: 100%;
10527 font-size: 100%;
10528 background-color: #f7f7f7;
10528 background-color: #f7f7f7;
10529 }
10529 }
10530 .pretooltiparrow {
10530 .pretooltiparrow {
10531 left: 0px;
10531 left: 0px;
10532 margin: 0px;
10532 margin: 0px;
10533 top: -16px;
10533 top: -16px;
10534 width: 40px;
10534 width: 40px;
10535 height: 16px;
10535 height: 16px;
10536 overflow: hidden;
10536 overflow: hidden;
10537 position: absolute;
10537 position: absolute;
10538 }
10538 }
10539 .pretooltiparrow:before {
10539 .pretooltiparrow:before {
10540 background-color: #f7f7f7;
10540 background-color: #f7f7f7;
10541 border: 1px #ababab solid;
10541 border: 1px #ababab solid;
10542 z-index: 11;
10542 z-index: 11;
10543 content: "";
10543 content: "";
10544 position: absolute;
10544 position: absolute;
10545 left: 15px;
10545 left: 15px;
10546 top: 10px;
10546 top: 10px;
10547 width: 25px;
10547 width: 25px;
10548 height: 25px;
10548 height: 25px;
10549 -webkit-transform: rotate(45deg);
10549 -webkit-transform: rotate(45deg);
10550 -moz-transform: rotate(45deg);
10550 -moz-transform: rotate(45deg);
10551 -ms-transform: rotate(45deg);
10551 -ms-transform: rotate(45deg);
10552 -o-transform: rotate(45deg);
10552 -o-transform: rotate(45deg);
10553 }
10553 }
10554 /*# sourceMappingURL=../style/style.min.css.map */ No newline at end of file
10554 /*# sourceMappingURL=../style/style.min.css.map */
@@ -1,27 +1,27 b''
1 // Copyright (c) IPython Development Team.
1 // Copyright (c) IPython Development Team.
2 // Distributed under the terms of the Modified BSD License.
2 // Distributed under the terms of the Modified BSD License.
3
3
4 define([
4 define([
5 "widgets/js/manager",
5 "widgets/js/manager",
6 "widgets/js/widget_bool",
6 "widgets/js/widget_bool",
7 "widgets/js/widget_button",
7 "widgets/js/widget_button",
8 "widgets/js/widget_container",
8 "widgets/js/widget_box",
9 "widgets/js/widget_float",
9 "widgets/js/widget_float",
10 "widgets/js/widget_image",
10 "widgets/js/widget_image",
11 "widgets/js/widget_int",
11 "widgets/js/widget_int",
12 "widgets/js/widget_selection",
12 "widgets/js/widget_selection",
13 "widgets/js/widget_selectioncontainer",
13 "widgets/js/widget_selectioncontainer",
14 "widgets/js/widget_string",
14 "widgets/js/widget_string",
15 ], function(widgetmanager) {
15 ], function(widgetmanager) {
16
16
17 // Register all of the loaded views with the widget manager.
17 // Register all of the loaded views with the widget manager.
18 for (var i = 1; i < arguments.length; i++) {
18 for (var i = 1; i < arguments.length; i++) {
19 for (var target_name in arguments[i]) {
19 for (var target_name in arguments[i]) {
20 if (arguments[i].hasOwnProperty(target_name)) {
20 if (arguments[i].hasOwnProperty(target_name)) {
21 widgetmanager.WidgetManager.register_widget_view(target_name, arguments[i][target_name]);
21 widgetmanager.WidgetManager.register_widget_view(target_name, arguments[i][target_name]);
22 }
22 }
23 }
23 }
24 }
24 }
25
25
26 return {'WidgetManager': widgetmanager.WidgetManager};
26 return {'WidgetManager': widgetmanager.WidgetManager};
27 });
27 });
@@ -1,283 +1,307 b''
1 // Copyright (c) IPython Development Team.
1 // Copyright (c) IPython Development Team.
2 // Distributed under the terms of the Modified BSD License.
2 // Distributed under the terms of the Modified BSD License.
3
3
4 define([
4 define([
5 "widgets/js/widget",
5 "widgets/js/widget",
6 "jqueryui",
6 "jqueryui",
7 "bootstrap",
7 "bootstrap",
8 ], function(widget, $){
8 ], function(widget, $){
9
9
10 var ContainerView = widget.DOMWidgetView.extend({
10 var BoxView = widget.DOMWidgetView.extend({
11 initialize: function(){
11 initialize: function(){
12 // Public constructor
12 // Public constructor
13 ContainerView.__super__.initialize.apply(this, arguments);
13 BoxView.__super__.initialize.apply(this, arguments);
14 this.update_children([], this.model.get('children'));
15 this.model.on('change:children', function(model, value) {
14 this.model.on('change:children', function(model, value) {
16 this.update_children(model.previous('children'), value);
15 this.update_children(model.previous('children'), value);
17 }, this);
16 }, this);
18 },
17 },
19
18
20 render: function(){
19 render: function(){
21 // Called when view is rendered.
20 // Called when view is rendered.
22 this.$el.addClass('widget-container').addClass('vbox');
21 this.$box = this.$el;
22 this.$box.addClass('widget-box');
23 this.update_children([], this.model.get('children'));
23 },
24 },
24
25
25 update_children: function(old_list, new_list) {
26 update_children: function(old_list, new_list) {
26 // Called when the children list changes.
27 // Called when the children list changes.
27 this.do_diff(old_list, new_list,
28 this.do_diff(old_list, new_list,
28 $.proxy(this.remove_child_model, this),
29 $.proxy(this.remove_child_model, this),
29 $.proxy(this.add_child_model, this));
30 $.proxy(this.add_child_model, this));
30 },
31 },
31
32
32 remove_child_model: function(model) {
33 remove_child_model: function(model) {
33 // Called when a model is removed from the children list.
34 // Called when a model is removed from the children list.
34 this.pop_child_view(model).remove();
35 this.pop_child_view(model).remove();
35 },
36 },
36
37
37 add_child_model: function(model) {
38 add_child_model: function(model) {
38 // Called when a model is added to the children list.
39 // Called when a model is added to the children list.
39 var view = this.create_child_view(model);
40 var view = this.create_child_view(model);
40 this.$el.append(view.$el);
41 this.$box.append(view.$el);
41
42
42 // Trigger the displayed event of the child view.
43 // Trigger the displayed event of the child view.
43 this.after_displayed(function() {
44 this.after_displayed(function() {
44 view.trigger('displayed');
45 view.trigger('displayed');
45 });
46 });
46 },
47 },
47 });
48 });
48
49
49
50 var PopupView = widget.DOMWidgetView.extend({
50
51 var FlexBoxView = BoxView.extend({
52 render: function(){
53 FlexBoxView.__super__.render.apply(this);
54 this.model.on('change:orientation', this.update_orientation, this);
55 this.model.on('change:flex', this._flex_changed, this);
56 this.model.on('change:pack', this._pack_changed, this);
57 this.model.on('change:align', this._align_changed, this);
58 this._flex_changed();
59 this._pack_changed();
60 this._align_changed();
61 this.update_orientation();
62 },
63
64 update_orientation: function(){
65 var orientation = this.model.get("orientation");
66 if (orientation == "vertical") {
67 this.$box.removeClass("hbox").addClass("vbox");
68 } else {
69 this.$box.removeClass("vbox").addClass("hbox");
70 }
71 },
72
73 _flex_changed: function(){
74 if (this.model.previous('flex')) {
75 this.$box.removeClass('box-flex' + this.model.previous('flex'));
76 }
77 this.$box.addClass('box-flex' + this.model.get('flex'));
78 },
79
80 _pack_changed: function(){
81 if (this.model.previous('pack')) {
82 this.$box.removeClass(this.model.previous('pack'));
83 }
84 this.$box.addClass(this.model.get('pack'));
85 },
86
87 _align_changed: function(){
88 if (this.model.previous('align')) {
89 this.$box.removeClass('align-' + this.model.previous('align'));
90 }
91 this.$box.addClass('align-' + this.model.get('align'));
92 },
93 });
94
95 var PopupView = BoxView.extend({
96
51 render: function(){
97 render: function(){
52 // Called when view is rendered.
98 // Called when view is rendered.
53 var that = this;
99 var that = this;
54
100
55 this.$el.on("remove", function(){
101 this.$el.on("remove", function(){
56 that.$backdrop.remove();
102 that.$backdrop.remove();
57 });
103 });
58 this.$backdrop = $('<div />')
104 this.$backdrop = $('<div />')
59 .appendTo($('#notebook-container'))
105 .appendTo($('#notebook-container'))
60 .addClass('modal-dialog')
106 .addClass('modal-dialog')
61 .css('position', 'absolute')
107 .css('position', 'absolute')
62 .css('left', '0px')
108 .css('left', '0px')
63 .css('top', '0px');
109 .css('top', '0px');
64 this.$window = $('<div />')
110 this.$window = $('<div />')
65 .appendTo(this.$backdrop)
111 .appendTo(this.$backdrop)
66 .addClass('modal-content widget-modal')
112 .addClass('modal-content widget-modal')
67 .mousedown(function(){
113 .mousedown(function(){
68 that.bring_to_front();
114 that.bring_to_front();
69 });
115 });
70
116
71 // Set the elements array since the this.$window element is not child
117 // Set the elements array since the this.$window element is not child
72 // of this.$el and the parent widget manager or other widgets may
118 // of this.$el and the parent widget manager or other widgets may
73 // need to know about all of the top-level widgets. The IPython
119 // need to know about all of the top-level widgets. The IPython
74 // widget manager uses this to register the elements with the
120 // widget manager uses this to register the elements with the
75 // keyboard manager.
121 // keyboard manager.
76 this.additional_elements = [this.$window];
122 this.additional_elements = [this.$window];
77
123
78 this.$title_bar = $('<div />')
124 this.$title_bar = $('<div />')
79 .addClass('popover-title')
125 .addClass('popover-title')
80 .appendTo(this.$window)
126 .appendTo(this.$window)
81 .mousedown(function(){
127 .mousedown(function(){
82 that.bring_to_front();
128 that.bring_to_front();
83 });
129 });
84 this.$close = $('<button />')
130 this.$close = $('<button />')
85 .addClass('close fa fa-remove')
131 .addClass('close fa fa-remove')
86 .css('margin-left', '5px')
132 .css('margin-left', '5px')
87 .appendTo(this.$title_bar)
133 .appendTo(this.$title_bar)
88 .click(function(){
134 .click(function(){
89 that.hide();
135 that.hide();
90 event.stopPropagation();
136 event.stopPropagation();
91 });
137 });
92 this.$minimize = $('<button />')
138 this.$minimize = $('<button />')
93 .addClass('close fa fa-arrow-down')
139 .addClass('close fa fa-arrow-down')
94 .appendTo(this.$title_bar)
140 .appendTo(this.$title_bar)
95 .click(function(){
141 .click(function(){
96 that.popped_out = !that.popped_out;
142 that.popped_out = !that.popped_out;
97 if (!that.popped_out) {
143 if (!that.popped_out) {
98 that.$minimize
144 that.$minimize
99 .removeClass('fa fa-arrow-down')
145 .removeClass('fa fa-arrow-down')
100 .addClass('fa fa-arrow-up');
146 .addClass('fa fa-arrow-up');
101
147
102 that.$window
148 that.$window
103 .draggable('destroy')
149 .draggable('destroy')
104 .resizable('destroy')
150 .resizable('destroy')
105 .removeClass('widget-modal modal-content')
151 .removeClass('widget-modal modal-content')
106 .addClass('docked-widget-modal')
152 .addClass('docked-widget-modal')
107 .detach()
153 .detach()
108 .insertBefore(that.$show_button);
154 .insertBefore(that.$show_button);
109 that.$show_button.hide();
155 that.$show_button.hide();
110 that.$close.hide();
156 that.$close.hide();
111 } else {
157 } else {
112 that.$minimize
158 that.$minimize
113 .addClass('fa fa-arrow-down')
159 .addClass('fa fa-arrow-down')
114 .removeClass('fa fa-arrow-up');
160 .removeClass('fa fa-arrow-up');
115
161
116 that.$window
162 that.$window
117 .removeClass('docked-widget-modal')
163 .removeClass('docked-widget-modal')
118 .addClass('widget-modal modal-content')
164 .addClass('widget-modal modal-content')
119 .detach()
165 .detach()
120 .appendTo(that.$backdrop)
166 .appendTo(that.$backdrop)
121 .draggable({handle: '.popover-title', snap: '#notebook, .modal', snapMode: 'both'})
167 .draggable({handle: '.popover-title', snap: '#notebook, .modal', snapMode: 'both'})
122 .resizable()
168 .resizable()
123 .children('.ui-resizable-handle').show();
169 .children('.ui-resizable-handle').show();
124 that.show();
170 that.show();
125 that.$show_button.show();
171 that.$show_button.show();
126 that.$close.show();
172 that.$close.show();
127 }
173 }
128 event.stopPropagation();
174 event.stopPropagation();
129 });
175 });
130 this.$title = $('<div />')
176 this.$title = $('<div />')
131 .addClass('widget-modal-title')
177 .addClass('widget-modal-title')
132 .html("&nbsp;")
178 .html("&nbsp;")
133 .appendTo(this.$title_bar);
179 .appendTo(this.$title_bar);
134 this.$body = $('<div />')
180 this.$box = $('<div />')
135 .addClass('modal-body')
181 .addClass('modal-body')
136 .addClass('widget-modal-body')
182 .addClass('widget-modal-body')
137 .addClass('widget-container')
183 .addClass('widget-box')
138 .addClass('vbox')
184 .addClass('vbox')
139 .appendTo(this.$window);
185 .appendTo(this.$window);
140
186
141 this.$show_button = $('<button />')
187 this.$show_button = $('<button />')
142 .html("&nbsp;")
188 .html("&nbsp;")
143 .addClass('btn btn-info widget-modal-show')
189 .addClass('btn btn-info widget-modal-show')
144 .appendTo(this.$el)
190 .appendTo(this.$el)
145 .click(function(){
191 .click(function(){
146 that.show();
192 that.show();
147 });
193 });
148
194
149 this.$window.draggable({handle: '.popover-title', snap: '#notebook, .modal', snapMode: 'both'});
195 this.$window.draggable({handle: '.popover-title', snap: '#notebook, .modal', snapMode: 'both'});
150 this.$window.resizable();
196 this.$window.resizable();
151 this.$window.on('resize', function(){
197 this.$window.on('resize', function(){
152 that.$body.outerHeight(that.$window.innerHeight() - that.$title_bar.outerHeight());
198 that.$box.outerHeight(that.$window.innerHeight() - that.$title_bar.outerHeight());
153 });
199 });
154
200
155 this._shown_once = false;
201 this._shown_once = false;
156 this.popped_out = true;
202 this.popped_out = true;
157
203
158 this.update_children([], this.model.get('children'));
204 this.update_children([], this.model.get('children'));
159 this.model.on('change:children', function(model, value) {
205 this.model.on('change:children', function(model, value) {
160 this.update_children(model.previous('children'), value);
206 this.update_children(model.previous('children'), value);
161 }, this);
207 }, this);
162 },
208 },
163
209
164 hide: function() {
210 hide: function() {
165 // Called when the modal hide button is clicked.
211 // Called when the modal hide button is clicked.
166 this.$window.hide();
212 this.$window.hide();
167 this.$show_button.removeClass('btn-info');
213 this.$show_button.removeClass('btn-info');
168 },
214 },
169
215
170 show: function() {
216 show: function() {
171 // Called when the modal show button is clicked.
217 // Called when the modal show button is clicked.
172 this.$show_button.addClass('btn-info');
218 this.$show_button.addClass('btn-info');
173 this.$window.show();
219 this.$window.show();
174 if (this.popped_out) {
220 if (this.popped_out) {
175 this.$window.css("positon", "absolute");
221 this.$window.css("positon", "absolute");
176 this.$window.css("top", "0px");
222 this.$window.css("top", "0px");
177 this.$window.css("left", Math.max(0, (($('body').outerWidth() - this.$window.outerWidth()) / 2) +
223 this.$window.css("left", Math.max(0, (($('body').outerWidth() - this.$window.outerWidth()) / 2) +
178 $(window).scrollLeft()) + "px");
224 $(window).scrollLeft()) + "px");
179 this.bring_to_front();
225 this.bring_to_front();
180 }
226 }
181 },
227 },
182
228
183 bring_to_front: function() {
229 bring_to_front: function() {
184 // Make the modal top-most, z-ordered about the other modals.
230 // Make the modal top-most, z-ordered about the other modals.
185 var $widget_modals = $(".widget-modal");
231 var $widget_modals = $(".widget-modal");
186 var max_zindex = 0;
232 var max_zindex = 0;
187 $widget_modals.each(function (index, el){
233 $widget_modals.each(function (index, el){
188 var zindex = parseInt($(el).css('z-index'));
234 var zindex = parseInt($(el).css('z-index'));
189 if (!isNaN(zindex)) {
235 if (!isNaN(zindex)) {
190 max_zindex = Math.max(max_zindex, zindex);
236 max_zindex = Math.max(max_zindex, zindex);
191 }
237 }
192 });
238 });
193
239
194 // Start z-index of widget modals at 2000
240 // Start z-index of widget modals at 2000
195 max_zindex = Math.max(max_zindex, 2000);
241 max_zindex = Math.max(max_zindex, 2000);
196
242
197 $widget_modals.each(function (index, el){
243 $widget_modals.each(function (index, el){
198 $el = $(el);
244 $el = $(el);
199 if (max_zindex == parseInt($el.css('z-index'))) {
245 if (max_zindex == parseInt($el.css('z-index'))) {
200 $el.css('z-index', max_zindex - 1);
246 $el.css('z-index', max_zindex - 1);
201 }
247 }
202 });
248 });
203 this.$window.css('z-index', max_zindex);
249 this.$window.css('z-index', max_zindex);
204 },
250 },
205
251
206 update_children: function(old_list, new_list) {
207 // Called when the children list is modified.
208 this.do_diff(old_list, new_list,
209 $.proxy(this.remove_child_model, this),
210 $.proxy(this.add_child_model, this));
211 },
212
213 remove_child_model: function(model) {
214 // Called when a child is removed from children list.
215 this.pop_child_view(model).remove();
216 },
217
218 add_child_model: function(model) {
219 // Called when a child is added to children list.
220 var view = this.create_child_view(model);
221 this.$body.append(view.$el);
222
223 // Trigger the displayed event of the child view.
224 this.after_displayed(function() {
225 view.trigger('displayed');
226 });
227 },
228
229 update: function(){
252 update: function(){
230 // Update the contents of this view
253 // Update the contents of this view
231 //
254 //
232 // Called when the model is changed. The model may have been
255 // Called when the model is changed. The model may have been
233 // changed by another view or by a state update from the back-end.
256 // changed by another view or by a state update from the back-end.
234 var description = this.model.get('description');
257 var description = this.model.get('description');
235 if (description.trim().length === 0) {
258 if (description.trim().length === 0) {
236 this.$title.html("&nbsp;"); // Preserve title height
259 this.$title.html("&nbsp;"); // Preserve title height
237 } else {
260 } else {
238 this.$title.text(description);
261 this.$title.text(description);
239 MathJax.Hub.Queue(["Typeset",MathJax.Hub,this.$title.get(0)]);
262 MathJax.Hub.Queue(["Typeset",MathJax.Hub,this.$title.get(0)]);
240 }
263 }
241
264
242 var button_text = this.model.get('button_text');
265 var button_text = this.model.get('button_text');
243 if (button_text.trim().length === 0) {
266 if (button_text.trim().length === 0) {
244 this.$show_button.html("&nbsp;"); // Preserve button height
267 this.$show_button.html("&nbsp;"); // Preserve button height
245 } else {
268 } else {
246 this.$show_button.text(button_text);
269 this.$show_button.text(button_text);
247 }
270 }
248
271
249 if (!this._shown_once) {
272 if (!this._shown_once) {
250 this._shown_once = true;
273 this._shown_once = true;
251 this.show();
274 this.show();
252 }
275 }
253
276
254 return PopupView.__super__.update.apply(this);
277 return PopupView.__super__.update.apply(this);
255 },
278 },
256
279
257 _get_selector_element: function(selector) {
280 _get_selector_element: function(selector) {
258 // Get an element view a 'special' jquery selector. (see widget.js)
281 // Get an element view a 'special' jquery selector. (see widget.js)
259 //
282 //
260 // Since the modal actually isn't within the $el in the DOM, we need to extend
283 // Since the modal actually isn't within the $el in the DOM, we need to extend
261 // the selector logic to allow the user to set css on the modal if need be.
284 // the selector logic to allow the user to set css on the modal if need be.
262 // The convention used is:
285 // The convention used is:
263 // "modal" - select the modal div
286 // "modal" - select the modal div
264 // "modal [selector]" - select element(s) within the modal div.
287 // "modal [selector]" - select element(s) within the modal div.
265 // "[selector]" - select elements within $el
288 // "[selector]" - select elements within $el
266 // "" - select the $el
289 // "" - select the $el
267 if (selector.substring(0, 5) == 'modal') {
290 if (selector.substring(0, 5) == 'modal') {
268 if (selector == 'modal') {
291 if (selector == 'modal') {
269 return this.$window;
292 return this.$window;
270 } else {
293 } else {
271 return this.$window.find(selector.substring(6));
294 return this.$window.find(selector.substring(6));
272 }
295 }
273 } else {
296 } else {
274 return PopupView.__super__._get_selector_element.apply(this, [selector]);
297 return PopupView.__super__._get_selector_element.apply(this, [selector]);
275 }
298 }
276 },
299 },
277 });
300 });
278
301
279 return {
302 return {
280 'ContainerView': ContainerView,
303 'BoxView': BoxView,
281 'PopupView': PopupView,
304 'PopupView': PopupView,
305 'FlexBoxView': FlexBoxView,
282 };
306 };
283 });
307 });
@@ -1,289 +1,289 b''
1 .widget-area {
1 .widget-area {
2 /*
2 /*
3 LESS file that styles IPython notebook widgets and the area they sit in.
3 LESS file that styles IPython notebook widgets and the area they sit in.
4
4
5 The widget area typically looks something like this:
5 The widget area typically looks something like this:
6 +------------------------------------------+
6 +------------------------------------------+
7 | widget-area |
7 | widget-area |
8 | +--------+---------------------------+ |
8 | +--------+---------------------------+ |
9 | | prompt | widget-subarea | |
9 | | prompt | widget-subarea | |
10 | | | +--------+ +--------+ | |
10 | | | +--------+ +--------+ | |
11 | | | | widget | | widget | | |
11 | | | | widget | | widget | | |
12 | | | +--------+ +--------+ | |
12 | | | +--------+ +--------+ | |
13 | +--------+---------------------------+ |
13 | +--------+---------------------------+ |
14 +------------------------------------------+
14 +------------------------------------------+
15 */
15 */
16
16
17 page-break-inside : avoid;
17 page-break-inside : avoid;
18 .hbox();
18 .hbox();
19
19
20 .widget-subarea {
20 .widget-subarea {
21 padding : 0.44em 0.4em 0.4em 1px;
21 padding : 0.44em 0.4em 0.4em 1px;
22 margin-left : 6px;
22 margin-left : 6px;
23
23
24 .border-box-sizing();
24 .border-box-sizing();
25 .vbox();
25 .vbox();
26 .box-flex2();
26 .box-flex2();
27 .align-start();
27 .align-start();
28 }
28 }
29 }
29 }
30
30
31 /* THE CLASSES BELOW CAN APPEAR ANYWHERE IN THE DOM (POSSIBLEY OUTSIDE OF
31 /* THE CLASSES BELOW CAN APPEAR ANYWHERE IN THE DOM (POSSIBLEY OUTSIDE OF
32 THE WIDGET AREA). */
32 THE WIDGET AREA). */
33
33
34 .widget-hlabel {
34 .widget-hlabel {
35 /* Horizontal Label */
35 /* Horizontal Label */
36 min-width : 10ex;
36 min-width : 10ex;
37 padding-right : 8px;
37 padding-right : 8px;
38 padding-top : 5px;
38 padding-top : 5px;
39 text-align : right;
39 text-align : right;
40 vertical-align : text-top;
40 vertical-align : text-top;
41 }
41 }
42
42
43 .widget-vlabel {
43 .widget-vlabel {
44 /* Vertical Label */
44 /* Vertical Label */
45 padding-bottom : 5px;
45 padding-bottom : 5px;
46 text-align : center;
46 text-align : center;
47 vertical-align : text-bottom;
47 vertical-align : text-bottom;
48 }
48 }
49
49
50 .widget-hreadout {
50 .widget-hreadout {
51 padding-left : 8px;
51 padding-left : 8px;
52 padding-top : 5px;
52 padding-top : 5px;
53 text-align : left;
53 text-align : left;
54 vertical-align : text-top;
54 vertical-align : text-top;
55 }
55 }
56
56
57 .widget-vreadout {
57 .widget-vreadout {
58 /* Vertical Label */
58 /* Vertical Label */
59 padding-top : 5px;
59 padding-top : 5px;
60 text-align : center;
60 text-align : center;
61 vertical-align : text-top;
61 vertical-align : text-top;
62 }
62 }
63
63
64 .slide-track {
64 .slide-track {
65 /* Slider Track */
65 /* Slider Track */
66 border : 1px solid #CCCCCC;
66 border : 1px solid #CCCCCC;
67 background : #FFFFFF;
67 background : #FFFFFF;
68
68
69 .corner-all(); /* Round the corners of the slide track */
69 .corner-all(); /* Round the corners of the slide track */
70 }
70 }
71
71
72 .widget-hslider {
72 .widget-hslider {
73 /* Horizontal jQuery Slider
73 /* Horizontal jQuery Slider
74
74
75 Both the horizontal and vertical versions of the slider are characterized
75 Both the horizontal and vertical versions of the slider are characterized
76 by a styled div that contains an invisible jQuery slide div which
76 by a styled div that contains an invisible jQuery slide div which
77 contains a visible slider handle div. This is requred so we can control
77 contains a visible slider handle div. This is requred so we can control
78 how the slider is drawn and 'fix' the issue where the slide handle
78 how the slider is drawn and 'fix' the issue where the slide handle
79 doesn't stop at the end of the slide.
79 doesn't stop at the end of the slide.
80
80
81 Both horizontal and vertical sliders have this div nesting:
81 Both horizontal and vertical sliders have this div nesting:
82 +------------------------------------------+
82 +------------------------------------------+
83 | widget-(h/v)slider |
83 | widget-(h/v)slider |
84 | +--------+---------------------------+ |
84 | +--------+---------------------------+ |
85 | | ui-slider | |
85 | | ui-slider | |
86 | | +------------------+ | |
86 | | +------------------+ | |
87 | | | ui-slider-handle | | |
87 | | | ui-slider-handle | | |
88 | | +------------------+ | |
88 | | +------------------+ | |
89 | +--------+---------------------------+ |
89 | +--------+---------------------------+ |
90 +------------------------------------------+
90 +------------------------------------------+
91 */
91 */
92
92
93 /* Fix the padding of the slide track so the ui-slider is sized
93 /* Fix the padding of the slide track so the ui-slider is sized
94 correctly. */
94 correctly. */
95 padding-left : 8px;
95 padding-left : 8px;
96 padding-right : 5px;
96 padding-right : 5px;
97 overflow : visible;
97 overflow : visible;
98
98
99 /* Default size of the slider */
99 /* Default size of the slider */
100 width : 350px;
100 width : 350px;
101 height : 5px;
101 height : 5px;
102 max-height : 5px;
102 max-height : 5px;
103 margin-top : 13px;
103 margin-top : 13px;
104 margin-bottom: 10px;
104 margin-bottom: 10px;
105
105
106 /* Style the slider track */
106 /* Style the slider track */
107 .slide-track();
107 .slide-track();
108
108
109 /* Make the div a flex box (makes FF behave correctly). */
109 /* Make the div a flex box (makes FF behave correctly). */
110 .hbox();
110 .hbox();
111
111
112 .ui-slider {
112 .ui-slider {
113 /* Inner, invisible slide div */
113 /* Inner, invisible slide div */
114 border : 0px !important;
114 border : 0px !important;
115 background : none !important;
115 background : none !important;
116
116
117 .hbox();
117 .hbox();
118 .box-flex1();
118 .box-flex1();
119
119
120 .ui-slider-handle {
120 .ui-slider-handle {
121 width : 14px !important;
121 width : 14px !important;
122 height : 28px !important;
122 height : 28px !important;
123 margin-top : -8px !important;
123 margin-top : -8px !important;
124 }
124 }
125 }
125 }
126 }
126 }
127
127
128 .widget-vslider {
128 .widget-vslider {
129 /* Vertical jQuery Slider */
129 /* Vertical jQuery Slider */
130
130
131 /* Fix the padding of the slide track so the ui-slider is sized
131 /* Fix the padding of the slide track so the ui-slider is sized
132 correctly. */
132 correctly. */
133 padding-bottom : 8px;
133 padding-bottom : 8px;
134 overflow : visible;
134 overflow : visible;
135
135
136 /* Default size of the slider */
136 /* Default size of the slider */
137 width : 5px;
137 width : 5px;
138 max-width : 5px;
138 max-width : 5px;
139 height : 250px;
139 height : 250px;
140 margin-left : 12px;
140 margin-left : 12px;
141
141
142 /* Style the slider track */
142 /* Style the slider track */
143 .slide-track();
143 .slide-track();
144
144
145 /* Make the div a flex box (makes FF behave correctly). */
145 /* Make the div a flex box (makes FF behave correctly). */
146 .vbox();
146 .vbox();
147
147
148 .ui-slider {
148 .ui-slider {
149 /* Inner, invisible slide div */
149 /* Inner, invisible slide div */
150 border : 0px !important;
150 border : 0px !important;
151 background : none !important;
151 background : none !important;
152 margin-left : -4px;
152 margin-left : -4px;
153 margin-top : 5px;
153 margin-top : 5px;
154
154
155 .vbox();
155 .vbox();
156 .box-flex1();
156 .box-flex1();
157
157
158 .ui-slider-handle {
158 .ui-slider-handle {
159 width : 28px !important;
159 width : 28px !important;
160 height : 14px !important;
160 height : 14px !important;
161 margin-left : -9px;
161 margin-left : -9px;
162 }
162 }
163 }
163 }
164 }
164 }
165
165
166 .widget-text {
166 .widget-text {
167 /* String Textbox - used for TextBoxView and TextAreaView */
167 /* String Textbox - used for TextBoxView and TextAreaView */
168 width : 350px;
168 width : 350px;
169 margin : 0px !important;
169 margin : 0px !important;
170 }
170 }
171
171
172 .widget-listbox {
172 .widget-listbox {
173 /* Listbox */
173 /* Listbox */
174 width : 350px;
174 width : 350px;
175 margin-bottom : 0px;
175 margin-bottom : 0px;
176 }
176 }
177
177
178 .widget-numeric-text {
178 .widget-numeric-text {
179 /* Single Line Textbox - used for IntTextView and FloatTextView */
179 /* Single Line Textbox - used for IntTextView and FloatTextView */
180 width : 150px;
180 width : 150px;
181 margin : 0px !important;
181 margin : 0px !important;
182 }
182 }
183
183
184 .widget-progress {
184 .widget-progress {
185 /* Progress Bar */
185 /* Progress Bar */
186 margin-top: 6px;
186 margin-top: 6px;
187 width : 350px;
187 width : 350px;
188
188
189 .progress-bar {
189 .progress-bar {
190 /* Disable progress bar animation */
190 /* Disable progress bar animation */
191 -webkit-transition : none;
191 -webkit-transition : none;
192 -moz-transition : none;
192 -moz-transition : none;
193 -ms-transition : none;
193 -ms-transition : none;
194 -o-transition : none;
194 -o-transition : none;
195 transition : none;
195 transition : none;
196 }
196 }
197 }
197 }
198
198
199 .widget-combo-btn {
199 .widget-combo-btn {
200 /* ComboBox Main Button */
200 /* ComboBox Main Button */
201 min-width : 125px;
201 min-width : 125px;
202 }
202 }
203
203
204 .widget-box {
204 .widget-box {
205 /* The following section sets the style for the invisible div that
205 /* The following section sets the style for the invisible div that
206 hold widgets and their accompanying labels.
206 hold widgets and their accompanying labels.
207
207
208 Looks like this:
208 Looks like this:
209 +-----------------------------+
209 +-----------------------------+
210 | widget-box (or similar) |
210 | widget-box (or similar) |
211 | +-------+---------------+ |
211 | +-------+---------------+ |
212 | | Label | Actual Widget | |
212 | | Label | Actual Widget | |
213 | +-------+---------------+ |
213 | +-------+---------------+ |
214 +-----------------------------+
214 +-----------------------------+
215 */
215 */
216 margin : 5px;
216 margin : 5px;
217
217
218 .start();
218 .start();
219 .widget-container();
219 .widget-box();
220 }
220 }
221
221
222 .widget-hbox {
222 .widget-hbox {
223 /* Horizontal widgets */
223 /* Horizontal widgets */
224 .widget-box();
224 .widget-box();
225 .hbox();
225 .hbox();
226 }
226 }
227
227
228 .widget-hbox-single {
228 .widget-hbox-single {
229 /* Single line horizontal widgets */
229 /* Single line horizontal widgets */
230 .widget-hbox();
230 .widget-hbox();
231 height : 30px;
231 height : 30px;
232
232
233 input[type="checkbox"] {
233 input[type="checkbox"] {
234 margin-top: 9px;
234 margin-top: 9px;
235 }
235 }
236 }
236 }
237
237
238 .widget-vbox {
238 .widget-vbox {
239 /* Vertical widgets */
239 /* Vertical widgets */
240 .widget-box();
240 .widget-box();
241 .vbox();
241 .vbox();
242 }
242 }
243
243
244 .widget-vbox-single {
244 .widget-vbox-single {
245 /* For vertical slides */
245 /* For vertical slides */
246 .widget-vbox();
246 .widget-vbox();
247 width : 30px;
247 width : 30px;
248 }
248 }
249
249
250 .widget-modal {
250 .widget-modal {
251 /* ContainerWidget - ModalView */
251 /* Box - ModalView */
252 overflow : hidden;
252 overflow : hidden;
253 position : absolute !important;
253 position : absolute !important;
254 top : 0px;
254 top : 0px;
255 left : 0px;
255 left : 0px;
256 margin-left : 0px !important;
256 margin-left : 0px !important;
257 }
257 }
258
258
259 .widget-modal-body {
259 .widget-modal-body {
260 /* ContainerWidget - ModalView Body */
260 /* Box - ModalView Body */
261 max-height: none !important;
261 max-height: none !important;
262 }
262 }
263
263
264 .widget-container {
264 .widget-box {
265 /* ContainerWidget */
265 /* Box */
266 .border-box-sizing();
266 .border-box-sizing();
267 .align-start();
267 .align-start();
268 }
268 }
269
269
270 .widget-radio-box {
270 .widget-radio-box {
271 /* Contains RadioButtonsWidget */
271 /* Contains RadioButtonsWidget */
272 .vbox();
272 .vbox();
273 .border-box-sizing();
273 .border-box-sizing();
274
274
275 padding-top: 4px;
275 padding-top: 4px;
276
276
277 label {
277 label {
278 margin-top: 0px;
278 margin-top: 0px;
279 }
279 }
280 }
280 }
281
281
282 .docked-widget-modal {
282 .docked-widget-modal {
283 /* Horizontal Label */
283 /* Horizontal Label */
284 overflow: hidden;
284 overflow: hidden;
285 position: relative !important;
285 position: relative !important;
286 top: 0px !important;
286 top: 0px !important;
287 left: 0px !important;
287 left: 0px !important;
288 margin-left: 0px !important;
288 margin-left: 0px !important;
289 } No newline at end of file
289 }
@@ -1,188 +1,188 b''
1 var xor = function (a, b) {return !a ^ !b;};
1 var xor = function (a, b) {return !a ^ !b;};
2 var isArray = function (a) {
2 var isArray = function (a) {
3 try {
3 try {
4 return Object.toString.call(a) === "[object Array]" || Object.toString.call(a) === "[object RuntimeArray]";
4 return Object.toString.call(a) === "[object Array]" || Object.toString.call(a) === "[object RuntimeArray]";
5 } catch (e) {
5 } catch (e) {
6 return Array.isArray(a);
6 return Array.isArray(a);
7 }
7 }
8 };
8 };
9 var recursive_compare = function(a, b) {
9 var recursive_compare = function(a, b) {
10 // Recursively compare two objects.
10 // Recursively compare two objects.
11 var same = true;
11 var same = true;
12 same = same && !xor(a instanceof Object || typeof a == 'object', b instanceof Object || typeof b == 'object');
12 same = same && !xor(a instanceof Object || typeof a == 'object', b instanceof Object || typeof b == 'object');
13 same = same && !xor(isArray(a), isArray(b));
13 same = same && !xor(isArray(a), isArray(b));
14
14
15 if (same) {
15 if (same) {
16 if (a instanceof Object) {
16 if (a instanceof Object) {
17 var key;
17 var key;
18 for (key in a) {
18 for (key in a) {
19 if (a.hasOwnProperty(key) && !recursive_compare(a[key], b[key])) {
19 if (a.hasOwnProperty(key) && !recursive_compare(a[key], b[key])) {
20 same = false;
20 same = false;
21 break;
21 break;
22 }
22 }
23 }
23 }
24 for (key in b) {
24 for (key in b) {
25 if (b.hasOwnProperty(key) && !recursive_compare(a[key], b[key])) {
25 if (b.hasOwnProperty(key) && !recursive_compare(a[key], b[key])) {
26 same = false;
26 same = false;
27 break;
27 break;
28 }
28 }
29 }
29 }
30 } else {
30 } else {
31 return a === b;
31 return a === b;
32 }
32 }
33 }
33 }
34
34
35 return same;
35 return same;
36 };
36 };
37
37
38 // Test the widget framework.
38 // Test the widget framework.
39 casper.notebook_test(function () {
39 casper.notebook_test(function () {
40 var index;
40 var index;
41
41
42 this.then(function () {
42 this.then(function () {
43
43
44 // Check if the WidgetManager class is defined.
44 // Check if the WidgetManager class is defined.
45 this.test.assert(this.evaluate(function() {
45 this.test.assert(this.evaluate(function() {
46 return IPython.WidgetManager !== undefined;
46 return IPython.WidgetManager !== undefined;
47 }), 'WidgetManager class is defined');
47 }), 'WidgetManager class is defined');
48 });
48 });
49
49
50 index = this.append_cell(
50 index = this.append_cell(
51 'from IPython.html import widgets\n' +
51 'from IPython.html import widgets\n' +
52 'from IPython.display import display, clear_output\n' +
52 'from IPython.display import display, clear_output\n' +
53 'print("Success")');
53 'print("Success")');
54 this.execute_cell_then(index);
54 this.execute_cell_then(index);
55
55
56 this.then(function () {
56 this.then(function () {
57 // Check if the widget manager has been instantiated.
57 // Check if the widget manager has been instantiated.
58 this.test.assert(this.evaluate(function() {
58 this.test.assert(this.evaluate(function() {
59 return IPython.notebook.kernel.widget_manager !== undefined;
59 return IPython.notebook.kernel.widget_manager !== undefined;
60 }), 'Notebook widget manager instantiated');
60 }), 'Notebook widget manager instantiated');
61
61
62 // Functions that can be used to test the packing and unpacking APIs
62 // Functions that can be used to test the packing and unpacking APIs
63 var that = this;
63 var that = this;
64 var test_pack = function (input) {
64 var test_pack = function (input) {
65 var output = that.evaluate(function(input) {
65 var output = that.evaluate(function(input) {
66 var model = new IPython.WidgetModel(IPython.notebook.kernel.widget_manager, undefined);
66 var model = new IPython.WidgetModel(IPython.notebook.kernel.widget_manager, undefined);
67 var results = model._pack_models(input);
67 var results = model._pack_models(input);
68 return results;
68 return results;
69 }, {input: input});
69 }, {input: input});
70 that.test.assert(recursive_compare(input, output),
70 that.test.assert(recursive_compare(input, output),
71 JSON.stringify(input) + ' passed through Model._pack_model unchanged');
71 JSON.stringify(input) + ' passed through Model._pack_model unchanged');
72 };
72 };
73 var test_unpack = function (input) {
73 var test_unpack = function (input) {
74 var output = that.evaluate(function(input) {
74 var output = that.evaluate(function(input) {
75 var model = new IPython.WidgetModel(IPython.notebook.kernel.widget_manager, undefined);
75 var model = new IPython.WidgetModel(IPython.notebook.kernel.widget_manager, undefined);
76 var results = model._unpack_models(input);
76 var results = model._unpack_models(input);
77 return results;
77 return results;
78 }, {input: input});
78 }, {input: input});
79 that.test.assert(recursive_compare(input, output),
79 that.test.assert(recursive_compare(input, output),
80 JSON.stringify(input) + ' passed through Model._unpack_model unchanged');
80 JSON.stringify(input) + ' passed through Model._unpack_model unchanged');
81 };
81 };
82 var test_packing = function(input) {
82 var test_packing = function(input) {
83 test_pack(input);
83 test_pack(input);
84 test_unpack(input);
84 test_unpack(input);
85 };
85 };
86
86
87 test_packing({0: 'hi', 1: 'bye'});
87 test_packing({0: 'hi', 1: 'bye'});
88 test_packing(['hi', 'bye']);
88 test_packing(['hi', 'bye']);
89 test_packing(['hi', 5]);
89 test_packing(['hi', 5]);
90 test_packing(['hi', '5']);
90 test_packing(['hi', '5']);
91 test_packing([1.0, 0]);
91 test_packing([1.0, 0]);
92 test_packing([1.0, false]);
92 test_packing([1.0, false]);
93 test_packing([1, false]);
93 test_packing([1, false]);
94 test_packing([1, false, {a: 'hi'}]);
94 test_packing([1, false, {a: 'hi'}]);
95 test_packing([1, false, ['hi']]);
95 test_packing([1, false, ['hi']]);
96
96
97 // Test multi-set, single touch code. First create a custom widget.
97 // Test multi-set, single touch code. First create a custom widget.
98 this.evaluate(function() {
98 this.evaluate(function() {
99 var MultiSetView = IPython.DOMWidgetView.extend({
99 var MultiSetView = IPython.DOMWidgetView.extend({
100 render: function(){
100 render: function(){
101 this.model.set('a', 1);
101 this.model.set('a', 1);
102 this.model.set('b', 2);
102 this.model.set('b', 2);
103 this.model.set('c', 3);
103 this.model.set('c', 3);
104 this.touch();
104 this.touch();
105 },
105 },
106 });
106 });
107 IPython.WidgetManager.register_widget_view('MultiSetView', MultiSetView);
107 IPython.WidgetManager.register_widget_view('MultiSetView', MultiSetView);
108 }, {});
108 }, {});
109 });
109 });
110
110
111 // Try creating the multiset widget, verify that sets the values correctly.
111 // Try creating the multiset widget, verify that sets the values correctly.
112 var multiset = {};
112 var multiset = {};
113 multiset.index = this.append_cell(
113 multiset.index = this.append_cell(
114 'from IPython.utils.traitlets import Unicode, CInt\n' +
114 'from IPython.utils.traitlets import Unicode, CInt\n' +
115 'class MultiSetWidget(widgets.Widget):\n' +
115 'class MultiSetWidget(widgets.Widget):\n' +
116 ' _view_name = Unicode("MultiSetView", sync=True)\n' +
116 ' _view_name = Unicode("MultiSetView", sync=True)\n' +
117 ' a = CInt(0, sync=True)\n' +
117 ' a = CInt(0, sync=True)\n' +
118 ' b = CInt(0, sync=True)\n' +
118 ' b = CInt(0, sync=True)\n' +
119 ' c = CInt(0, sync=True)\n' +
119 ' c = CInt(0, sync=True)\n' +
120 ' d = CInt(-1, sync=True)\n' + // See if it sends a full state.
120 ' d = CInt(-1, sync=True)\n' + // See if it sends a full state.
121 ' def _handle_receive_state(self, sync_data):\n' +
121 ' def _handle_receive_state(self, sync_data):\n' +
122 ' widgets.Widget._handle_receive_state(self, sync_data)\n'+
122 ' widgets.Widget._handle_receive_state(self, sync_data)\n'+
123 ' self.d = len(sync_data)\n' +
123 ' self.d = len(sync_data)\n' +
124 'multiset = MultiSetWidget()\n' +
124 'multiset = MultiSetWidget()\n' +
125 'display(multiset)\n' +
125 'display(multiset)\n' +
126 'print(multiset.model_id)');
126 'print(multiset.model_id)');
127 this.execute_cell_then(multiset.index, function(index) {
127 this.execute_cell_then(multiset.index, function(index) {
128 multiset.model_id = this.get_output_cell(index).text.trim();
128 multiset.model_id = this.get_output_cell(index).text.trim();
129 });
129 });
130
130
131 this.wait_for_widget(multiset);
131 this.wait_for_widget(multiset);
132
132
133 index = this.append_cell(
133 index = this.append_cell(
134 'print("%d%d%d" % (multiset.a, multiset.b, multiset.c))');
134 'print("%d%d%d" % (multiset.a, multiset.b, multiset.c))');
135 this.execute_cell_then(index, function(index) {
135 this.execute_cell_then(index, function(index) {
136 this.test.assertEquals(this.get_output_cell(index).text.trim(), '123',
136 this.test.assertEquals(this.get_output_cell(index).text.trim(), '123',
137 'Multiple model.set calls and one view.touch update state in back-end.');
137 'Multiple model.set calls and one view.touch update state in back-end.');
138 });
138 });
139
139
140 index = this.append_cell(
140 index = this.append_cell(
141 'print("%d" % (multiset.d))');
141 'print("%d" % (multiset.d))');
142 this.execute_cell_then(index, function(index) {
142 this.execute_cell_then(index, function(index) {
143 this.test.assertEquals(this.get_output_cell(index).text.trim(), '3',
143 this.test.assertEquals(this.get_output_cell(index).text.trim(), '3',
144 'Multiple model.set calls sent a partial state.');
144 'Multiple model.set calls sent a partial state.');
145 });
145 });
146
146
147 var textbox = {};
147 var textbox = {};
148 throttle_index = this.append_cell(
148 throttle_index = this.append_cell(
149 'import time\n' +
149 'import time\n' +
150 'textbox = widgets.TextWidget()\n' +
150 'textbox = widgets.Text()\n' +
151 'display(textbox)\n' +
151 'display(textbox)\n' +
152 'textbox.add_class("my-throttle-textbox", selector="input")\n' +
152 'textbox.add_class("my-throttle-textbox", selector="input")\n' +
153 'def handle_change(name, old, new):\n' +
153 'def handle_change(name, old, new):\n' +
154 ' display(len(new))\n' +
154 ' display(len(new))\n' +
155 ' time.sleep(0.5)\n' +
155 ' time.sleep(0.5)\n' +
156 'textbox.on_trait_change(handle_change, "value")\n' +
156 'textbox.on_trait_change(handle_change, "value")\n' +
157 'print(textbox.model_id)');
157 'print(textbox.model_id)');
158 this.execute_cell_then(throttle_index, function(index){
158 this.execute_cell_then(throttle_index, function(index){
159 textbox.model_id = this.get_output_cell(index).text.trim();
159 textbox.model_id = this.get_output_cell(index).text.trim();
160
160
161 this.test.assert(this.cell_element_exists(index,
161 this.test.assert(this.cell_element_exists(index,
162 '.widget-area .widget-subarea'),
162 '.widget-area .widget-subarea'),
163 'Widget subarea exists.');
163 'Widget subarea exists.');
164
164
165 this.test.assert(this.cell_element_exists(index,
165 this.test.assert(this.cell_element_exists(index,
166 '.my-throttle-textbox'), 'Textbox exists.');
166 '.my-throttle-textbox'), 'Textbox exists.');
167
167
168 // Send 20 characters
168 // Send 20 characters
169 this.sendKeys('.my-throttle-textbox', '....................');
169 this.sendKeys('.my-throttle-textbox', '....................');
170 });
170 });
171
171
172 this.wait_for_widget(textbox);
172 this.wait_for_widget(textbox);
173
173
174 this.then(function () {
174 this.then(function () {
175 var outputs = this.evaluate(function(i) {
175 var outputs = this.evaluate(function(i) {
176 return IPython.notebook.get_cell(i).output_area.outputs;
176 return IPython.notebook.get_cell(i).output_area.outputs;
177 }, {i : throttle_index});
177 }, {i : throttle_index});
178
178
179 // Only 4 outputs should have printed, but because of timing, sometimes
179 // Only 4 outputs should have printed, but because of timing, sometimes
180 // 5 outputs will print. All we need to do is verify num outputs <= 5
180 // 5 outputs will print. All we need to do is verify num outputs <= 5
181 // because that is much less than 20.
181 // because that is much less than 20.
182 this.test.assert(outputs.length <= 5, 'Messages throttled.');
182 this.test.assert(outputs.length <= 5, 'Messages throttled.');
183
183
184 // We also need to verify that the last state sent was correct.
184 // We also need to verify that the last state sent was correct.
185 var last_state = outputs[outputs.length-1]['text/plain'];
185 var last_state = outputs[outputs.length-1]['text/plain'];
186 this.test.assertEquals(last_state, "20", "Last state sent when throttling.");
186 this.test.assertEquals(last_state, "20", "Last state sent when throttling.");
187 });
187 });
188 });
188 });
@@ -1,86 +1,86 b''
1 // Test widget bool class
1 // Test widget bool class
2 casper.notebook_test(function () {
2 casper.notebook_test(function () {
3 index = this.append_cell(
3 index = this.append_cell(
4 'from IPython.html import widgets\n' +
4 'from IPython.html import widgets\n' +
5 'from IPython.display import display, clear_output\n' +
5 'from IPython.display import display, clear_output\n' +
6 'print("Success")');
6 'print("Success")');
7 this.execute_cell_then(index);
7 this.execute_cell_then(index);
8
8
9 var bool_index = this.append_cell(
9 var bool_index = this.append_cell(
10 'bool_widgets = [widgets.CheckboxWidget(description="Title", value=True),\n' +
10 'bool_widgets = [widgets.Checkbox(description="Title", value=True),\n' +
11 ' widgets.ToggleButtonWidget(description="Title", value=True)]\n' +
11 ' widgets.ToggleButton(description="Title", value=True)]\n' +
12 'display(bool_widgets[0])\n' +
12 'display(bool_widgets[0])\n' +
13 'display(bool_widgets[1])\n' +
13 'display(bool_widgets[1])\n' +
14 'print("Success")');
14 'print("Success")');
15 this.execute_cell_then(bool_index, function(index){
15 this.execute_cell_then(bool_index, function(index){
16
16
17 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
17 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
18 'Create bool widget cell executed with correct output.');
18 'Create bool widget cell executed with correct output.');
19
19
20 this.test.assert(this.cell_element_exists(index,
20 this.test.assert(this.cell_element_exists(index,
21 '.widget-area .widget-subarea'),
21 '.widget-area .widget-subarea'),
22 'Widget subarea exists.');
22 'Widget subarea exists.');
23
23
24 this.test.assert(this.cell_element_exists(index,
24 this.test.assert(this.cell_element_exists(index,
25 '.widget-area .widget-subarea .widget-hbox-single input'),
25 '.widget-area .widget-subarea .widget-hbox-single input'),
26 'Checkbox exists.');
26 'Checkbox exists.');
27
27
28 this.test.assert(this.cell_element_function(index,
28 this.test.assert(this.cell_element_function(index,
29 '.widget-area .widget-subarea .widget-hbox-single input', 'prop', ['checked']),
29 '.widget-area .widget-subarea .widget-hbox-single input', 'prop', ['checked']),
30 'Checkbox is checked.');
30 'Checkbox is checked.');
31
31
32 this.test.assert(this.cell_element_exists(index,
32 this.test.assert(this.cell_element_exists(index,
33 '.widget-area .widget-subarea .widget-hbox-single .widget-hlabel'),
33 '.widget-area .widget-subarea .widget-hbox-single .widget-hlabel'),
34 'Checkbox label exists.');
34 'Checkbox label exists.');
35
35
36 this.test.assert(this.cell_element_function(index,
36 this.test.assert(this.cell_element_function(index,
37 '.widget-area .widget-subarea .widget-hbox-single .widget-hlabel', 'html')=="Title",
37 '.widget-area .widget-subarea .widget-hbox-single .widget-hlabel', 'html')=="Title",
38 'Checkbox labeled correctly.');
38 'Checkbox labeled correctly.');
39
39
40 this.test.assert(this.cell_element_exists(index,
40 this.test.assert(this.cell_element_exists(index,
41 '.widget-area .widget-subarea button'),
41 '.widget-area .widget-subarea button'),
42 'Toggle button exists.');
42 'Toggle button exists.');
43
43
44 this.test.assert(this.cell_element_function(index,
44 this.test.assert(this.cell_element_function(index,
45 '.widget-area .widget-subarea button', 'html')=="Title",
45 '.widget-area .widget-subarea button', 'html')=="Title",
46 'Toggle button labeled correctly.');
46 'Toggle button labeled correctly.');
47
47
48 this.test.assert(this.cell_element_function(index,
48 this.test.assert(this.cell_element_function(index,
49 '.widget-area .widget-subarea button', 'hasClass', ['active']),
49 '.widget-area .widget-subarea button', 'hasClass', ['active']),
50 'Toggle button is toggled.');
50 'Toggle button is toggled.');
51
51
52 });
52 });
53
53
54 index = this.append_cell(
54 index = this.append_cell(
55 'bool_widgets[0].value = False\n' +
55 'bool_widgets[0].value = False\n' +
56 'bool_widgets[1].value = False\n' +
56 'bool_widgets[1].value = False\n' +
57 'print("Success")');
57 'print("Success")');
58 this.execute_cell_then(index, function(index){
58 this.execute_cell_then(index, function(index){
59
59
60 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
60 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
61 'Change bool widget value cell executed with correct output.');
61 'Change bool widget value cell executed with correct output.');
62
62
63 this.test.assert(! this.cell_element_function(bool_index,
63 this.test.assert(! this.cell_element_function(bool_index,
64 '.widget-area .widget-subarea .widget-hbox-single input', 'prop', ['checked']),
64 '.widget-area .widget-subarea .widget-hbox-single input', 'prop', ['checked']),
65 'Checkbox is not checked. (1)');
65 'Checkbox is not checked. (1)');
66
66
67 this.test.assert(! this.cell_element_function(bool_index,
67 this.test.assert(! this.cell_element_function(bool_index,
68 '.widget-area .widget-subarea button', 'hasClass', ['active']),
68 '.widget-area .widget-subarea button', 'hasClass', ['active']),
69 'Toggle button is not toggled. (1)');
69 'Toggle button is not toggled. (1)');
70
70
71 // Try toggling the bool by clicking on the checkbox.
71 // Try toggling the bool by clicking on the checkbox.
72 this.cell_element_function(bool_index, '.widget-area .widget-subarea .widget-hbox-single input', 'click');
72 this.cell_element_function(bool_index, '.widget-area .widget-subarea .widget-hbox-single input', 'click');
73
73
74 this.test.assert(this.cell_element_function(bool_index,
74 this.test.assert(this.cell_element_function(bool_index,
75 '.widget-area .widget-subarea .widget-hbox-single input', 'prop', ['checked']),
75 '.widget-area .widget-subarea .widget-hbox-single input', 'prop', ['checked']),
76 'Checkbox is checked. (2)');
76 'Checkbox is checked. (2)');
77
77
78 // Try toggling the bool by clicking on the toggle button.
78 // Try toggling the bool by clicking on the toggle button.
79 this.cell_element_function(bool_index, '.widget-area .widget-subarea button', 'click');
79 this.cell_element_function(bool_index, '.widget-area .widget-subarea button', 'click');
80
80
81 this.test.assert(this.cell_element_function(bool_index,
81 this.test.assert(this.cell_element_function(bool_index,
82 '.widget-area .widget-subarea button', 'hasClass', ['active']),
82 '.widget-area .widget-subarea button', 'hasClass', ['active']),
83 'Toggle button is toggled. (3)');
83 'Toggle button is toggled. (3)');
84
84
85 });
85 });
86 }); No newline at end of file
86 });
@@ -1,80 +1,80 b''
1 // Test container class
1 // Test container class
2 casper.notebook_test(function () {
2 casper.notebook_test(function () {
3 index = this.append_cell(
3 index = this.append_cell(
4 'from IPython.html import widgets\n' +
4 'from IPython.html import widgets\n' +
5 'from IPython.display import display, clear_output\n' +
5 'from IPython.display import display, clear_output\n' +
6 'print("Success")');
6 'print("Success")');
7 this.execute_cell_then(index);
7 this.execute_cell_then(index);
8
8
9 var container_index = this.append_cell(
9 var container_index = this.append_cell(
10 'container = widgets.ContainerWidget()\n' +
10 'container = widgets.Box()\n' +
11 'button = widgets.ButtonWidget()\n'+
11 'button = widgets.Button()\n'+
12 'container.children = [button]\n'+
12 'container.children = [button]\n'+
13 'display(container)\n'+
13 'display(container)\n'+
14 'container.add_class("my-test-class")\n'+
14 'container.add_class("my-test-class")\n'+
15 'print("Success")\n');
15 'print("Success")\n');
16 this.execute_cell_then(container_index, function(index){
16 this.execute_cell_then(container_index, function(index){
17
17
18 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
18 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
19 'Create container cell executed with correct output.');
19 'Create container cell executed with correct output.');
20
20
21 this.test.assert(this.cell_element_exists(index,
21 this.test.assert(this.cell_element_exists(index,
22 '.widget-area .widget-subarea'),
22 '.widget-area .widget-subarea'),
23 'Widget subarea exists.');
23 'Widget subarea exists.');
24
24
25 this.test.assert(this.cell_element_exists(index,
25 this.test.assert(this.cell_element_exists(index,
26 '.widget-area .widget-subarea .widget-container'),
26 '.widget-area .widget-subarea .widget-box'),
27 'Widget container exists.');
27 'Widget container exists.');
28
28
29 this.test.assert(this.cell_element_exists(index,
29 this.test.assert(this.cell_element_exists(index,
30 '.widget-area .widget-subarea .my-test-class'),
30 '.widget-area .widget-subarea .my-test-class'),
31 'add_class works.');
31 'add_class works.');
32
32
33 this.test.assert(this.cell_element_exists(index,
33 this.test.assert(this.cell_element_exists(index,
34 '.widget-area .widget-subarea .my-test-class button'),
34 '.widget-area .widget-subarea .my-test-class button'),
35 'Container parent/child relationship works.');
35 'Container parent/child relationship works.');
36 });
36 });
37
37
38 index = this.append_cell(
38 index = this.append_cell(
39 'container.set_css("float", "right")\n'+
39 'container.set_css("float", "right")\n'+
40 'print("Success")\n');
40 'print("Success")\n');
41 this.execute_cell_then(index, function(index){
41 this.execute_cell_then(index, function(index){
42
42
43 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
43 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
44 'Set container class CSS cell executed with correct output.');
44 'Set container class CSS cell executed with correct output.');
45
45
46 this.test.assert(this.cell_element_function(container_index,
46 this.test.assert(this.cell_element_function(container_index,
47 '.widget-area .widget-subarea .my-test-class', 'css', ['float'])=='right',
47 '.widget-area .widget-subarea .my-test-class', 'css', ['float'])=='right',
48 'set_css works.');
48 'set_css works.');
49 });
49 });
50
50
51 index = this.append_cell(
51 index = this.append_cell(
52 'container.remove_class("my-test-class")\n'+
52 'container.remove_class("my-test-class")\n'+
53 'print("Success")\n');
53 'print("Success")\n');
54 this.execute_cell_then(index, function(index){
54 this.execute_cell_then(index, function(index){
55
55
56 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
56 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
57 'Remove container class cell executed with correct output.');
57 'Remove container class cell executed with correct output.');
58
58
59 this.test.assert(! this.cell_element_exists(container_index,
59 this.test.assert(! this.cell_element_exists(container_index,
60 '.widget-area .widget-subarea .my-test-class'),
60 '.widget-area .widget-subarea .my-test-class'),
61 'remove_class works.');
61 'remove_class works.');
62 });
62 });
63
63
64 index = this.append_cell(
64 index = this.append_cell(
65 'display(button)\n'+
65 'display(button)\n'+
66 'print("Success")\n');
66 'print("Success")\n');
67 this.execute_cell_then(index, function(index){
67 this.execute_cell_then(index, function(index){
68
68
69 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
69 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
70 'Display container child executed with correct output.');
70 'Display container child executed with correct output.');
71
71
72 this.test.assert(! this.cell_element_exists(index,
72 this.test.assert(! this.cell_element_exists(index,
73 '.widget-area .widget-subarea .widget-container'),
73 '.widget-area .widget-subarea .widget-box'),
74 'Parent container not displayed.');
74 'Parent container not displayed.');
75
75
76 this.test.assert(this.cell_element_exists(index,
76 this.test.assert(this.cell_element_exists(index,
77 '.widget-area .widget-subarea button'),
77 '.widget-area .widget-subarea button'),
78 'Child displayed.');
78 'Child displayed.');
79 });
79 });
80 }); No newline at end of file
80 });
@@ -1,43 +1,43 b''
1 // Test widget button class
1 // Test widget button class
2 casper.notebook_test(function () {
2 casper.notebook_test(function () {
3 index = this.append_cell(
3 index = this.append_cell(
4 'from IPython.html import widgets\n' +
4 'from IPython.html import widgets\n' +
5 'from IPython.display import display, clear_output\n' +
5 'from IPython.display import display, clear_output\n' +
6 'print("Success")');
6 'print("Success")');
7 this.execute_cell_then(index);
7 this.execute_cell_then(index);
8
8
9 var button_index = this.append_cell(
9 var button_index = this.append_cell(
10 'button = widgets.ButtonWidget(description="Title")\n' +
10 'button = widgets.Button(description="Title")\n' +
11 'display(button)\n' +
11 'display(button)\n' +
12 'print("Success")\n' +
12 'print("Success")\n' +
13 'def handle_click(sender):\n' +
13 'def handle_click(sender):\n' +
14 ' display("Clicked")\n' +
14 ' display("Clicked")\n' +
15 'button.on_click(handle_click)');
15 'button.on_click(handle_click)');
16 this.execute_cell_then(button_index, function(index){
16 this.execute_cell_then(button_index, function(index){
17
17
18 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
18 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
19 'Create button cell executed with correct output.');
19 'Create button cell executed with correct output.');
20
20
21 this.test.assert(this.cell_element_exists(index,
21 this.test.assert(this.cell_element_exists(index,
22 '.widget-area .widget-subarea'),
22 '.widget-area .widget-subarea'),
23 'Widget subarea exists.');
23 'Widget subarea exists.');
24
24
25 this.test.assert(this.cell_element_exists(index,
25 this.test.assert(this.cell_element_exists(index,
26 '.widget-area .widget-subarea button'),
26 '.widget-area .widget-subarea button'),
27 'Widget button exists.');
27 'Widget button exists.');
28
28
29 this.test.assert(this.cell_element_function(index,
29 this.test.assert(this.cell_element_function(index,
30 '.widget-area .widget-subarea button', 'html')=='Title',
30 '.widget-area .widget-subarea button', 'html')=='Title',
31 'Set button description.');
31 'Set button description.');
32
32
33 this.cell_element_function(index,
33 this.cell_element_function(index,
34 '.widget-area .widget-subarea button', 'click');
34 '.widget-area .widget-subarea button', 'click');
35 });
35 });
36
36
37 this.wait_for_output(button_index, 1);
37 this.wait_for_output(button_index, 1);
38
38
39 this.then(function () {
39 this.then(function () {
40 this.test.assertEquals(this.get_output_cell(button_index, 1)['text/plain'], "'Clicked'",
40 this.test.assertEquals(this.get_output_cell(button_index, 1)['text/plain'], "'Clicked'",
41 'Button click event fires.');
41 'Button click event fires.');
42 });
42 });
43 }); No newline at end of file
43 });
@@ -1,100 +1,100 b''
1 // Test widget float class
1 // Test widget float class
2 casper.notebook_test(function () {
2 casper.notebook_test(function () {
3 index = this.append_cell(
3 index = this.append_cell(
4 'from IPython.html import widgets\n' +
4 'from IPython.html import widgets\n' +
5 'from IPython.display import display, clear_output\n' +
5 'from IPython.display import display, clear_output\n' +
6 'print("Success")');
6 'print("Success")');
7 this.execute_cell_then(index);
7 this.execute_cell_then(index);
8
8
9 var float_text = {};
9 var float_text = {};
10 float_text.query = '.widget-area .widget-subarea .widget-hbox-single .my-second-float-text';
10 float_text.query = '.widget-area .widget-subarea .widget-hbox-single .my-second-float-text';
11 float_text.index = this.append_cell(
11 float_text.index = this.append_cell(
12 'float_widget = widgets.FloatTextWidget()\n' +
12 'float_widget = widgets.FloatText()\n' +
13 'display(float_widget)\n' +
13 'display(float_widget)\n' +
14 'float_widget.add_class("my-second-float-text", selector="input")\n' +
14 'float_widget.add_class("my-second-float-text", selector="input")\n' +
15 'print(float_widget.model_id)\n');
15 'print(float_widget.model_id)\n');
16 this.execute_cell_then(float_text.index, function(index){
16 this.execute_cell_then(float_text.index, function(index){
17 float_text.model_id = this.get_output_cell(index).text.trim();
17 float_text.model_id = this.get_output_cell(index).text.trim();
18
18
19 this.test.assert(this.cell_element_exists(index,
19 this.test.assert(this.cell_element_exists(index,
20 '.widget-area .widget-subarea'),
20 '.widget-area .widget-subarea'),
21 'Widget subarea exists.');
21 'Widget subarea exists.');
22
22
23 this.test.assert(this.cell_element_exists(index, float_text.query),
23 this.test.assert(this.cell_element_exists(index, float_text.query),
24 'Widget float textbox exists.');
24 'Widget float textbox exists.');
25
25
26 this.cell_element_function(float_text.index, float_text.query, 'val', ['']);
26 this.cell_element_function(float_text.index, float_text.query, 'val', ['']);
27 this.sendKeys(float_text.query, '1.05');
27 this.sendKeys(float_text.query, '1.05');
28 });
28 });
29
29
30 this.wait_for_widget(float_text);
30 this.wait_for_widget(float_text);
31
31
32 index = this.append_cell('print(float_widget.value)\n');
32 index = this.append_cell('print(float_widget.value)\n');
33 this.execute_cell_then(index, function(index){
33 this.execute_cell_then(index, function(index){
34 this.test.assertEquals(this.get_output_cell(index).text, '1.05\n',
34 this.test.assertEquals(this.get_output_cell(index).text, '1.05\n',
35 'Float textbox value set.');
35 'Float textbox value set.');
36 this.cell_element_function(float_text.index, float_text.query, 'val', ['']);
36 this.cell_element_function(float_text.index, float_text.query, 'val', ['']);
37 this.sendKeys(float_text.query, '123456789.0');
37 this.sendKeys(float_text.query, '123456789.0');
38 });
38 });
39
39
40 this.wait_for_widget(float_text);
40 this.wait_for_widget(float_text);
41
41
42 index = this.append_cell('print(float_widget.value)\n');
42 index = this.append_cell('print(float_widget.value)\n');
43 this.execute_cell_then(index, function(index){
43 this.execute_cell_then(index, function(index){
44 this.test.assertEquals(this.get_output_cell(index).text, '123456789.0\n',
44 this.test.assertEquals(this.get_output_cell(index).text, '123456789.0\n',
45 'Long float textbox value set (probably triggers throttling).');
45 'Long float textbox value set (probably triggers throttling).');
46 this.cell_element_function(float_text.index, float_text.query, 'val', ['']);
46 this.cell_element_function(float_text.index, float_text.query, 'val', ['']);
47 this.sendKeys(float_text.query, '12hello');
47 this.sendKeys(float_text.query, '12hello');
48 });
48 });
49
49
50 this.wait_for_widget(float_text);
50 this.wait_for_widget(float_text);
51
51
52 index = this.append_cell('print(float_widget.value)\n');
52 index = this.append_cell('print(float_widget.value)\n');
53 this.execute_cell_then(index, function(index){
53 this.execute_cell_then(index, function(index){
54 this.test.assertEquals(this.get_output_cell(index).text, '12.0\n',
54 this.test.assertEquals(this.get_output_cell(index).text, '12.0\n',
55 'Invald float textbox value caught and filtered.');
55 'Invald float textbox value caught and filtered.');
56 });
56 });
57
57
58 var float_text_query = '.widget-area .widget-subarea .widget-hbox-single .widget-numeric-text';
58 var float_text_query = '.widget-area .widget-subarea .widget-hbox-single .widget-numeric-text';
59 var slider = {};
59 var slider = {};
60 slider.query = '.widget-area .widget-subarea .widget-hbox-single .slider';
60 slider.query = '.widget-area .widget-subarea .widget-hbox-single .slider';
61 slider.index = this.append_cell(
61 slider.index = this.append_cell(
62 'floatrange = [widgets.BoundedFloatTextWidget(), \n' +
62 'floatrange = [widgets.BoundedFloatText(), \n' +
63 ' widgets.FloatSliderWidget()]\n' +
63 ' widgets.FloatSlider()]\n' +
64 '[display(floatrange[i]) for i in range(2)]\n' +
64 '[display(floatrange[i]) for i in range(2)]\n' +
65 'print("Success")\n');
65 'print("Success")\n');
66 this.execute_cell_then(slider.index, function(index){
66 this.execute_cell_then(slider.index, function(index){
67
67
68 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
68 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
69 'Create float range cell executed with correct output.');
69 'Create float range cell executed with correct output.');
70
70
71 this.test.assert(this.cell_element_exists(index,
71 this.test.assert(this.cell_element_exists(index,
72 '.widget-area .widget-subarea'),
72 '.widget-area .widget-subarea'),
73 'Widget subarea exists.');
73 'Widget subarea exists.');
74
74
75 this.test.assert(this.cell_element_exists(index, slider.query),
75 this.test.assert(this.cell_element_exists(index, slider.query),
76 'Widget slider exists.');
76 'Widget slider exists.');
77
77
78 this.test.assert(this.cell_element_exists(index, float_text_query),
78 this.test.assert(this.cell_element_exists(index, float_text_query),
79 'Widget float textbox exists.');
79 'Widget float textbox exists.');
80 });
80 });
81
81
82 index = this.append_cell(
82 index = this.append_cell(
83 'for widget in floatrange:\n' +
83 'for widget in floatrange:\n' +
84 ' widget.max = 50.0\n' +
84 ' widget.max = 50.0\n' +
85 ' widget.min = -50.0\n' +
85 ' widget.min = -50.0\n' +
86 ' widget.value = 25.0\n' +
86 ' widget.value = 25.0\n' +
87 'print("Success")\n');
87 'print("Success")\n');
88 this.execute_cell_then(index, function(index){
88 this.execute_cell_then(index, function(index){
89
89
90 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
90 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
91 'Float range properties cell executed with correct output.');
91 'Float range properties cell executed with correct output.');
92
92
93 this.test.assert(this.cell_element_exists(slider.index, slider.query),
93 this.test.assert(this.cell_element_exists(slider.index, slider.query),
94 'Widget slider exists.');
94 'Widget slider exists.');
95
95
96 this.test.assert(this.cell_element_function(slider.index, slider.query,
96 this.test.assert(this.cell_element_function(slider.index, slider.query,
97 'slider', ['value']) == 25.0,
97 'slider', ['value']) == 25.0,
98 'Slider set to Python value.');
98 'Slider set to Python value.');
99 });
99 });
100 }); No newline at end of file
100 });
@@ -1,48 +1,48 b''
1 // Test image class
1 // Test image class
2 casper.notebook_test(function () {
2 casper.notebook_test(function () {
3 index = this.append_cell(
3 index = this.append_cell(
4 'from IPython.html import widgets\n' +
4 'from IPython.html import widgets\n' +
5 'from IPython.display import display, clear_output\n' +
5 'from IPython.display import display, clear_output\n' +
6 'print("Success")');
6 'print("Success")');
7 this.execute_cell_then(index);
7 this.execute_cell_then(index);
8
8
9 // Get the temporary directory that the test server is running in.
9 // Get the temporary directory that the test server is running in.
10 var cwd = '';
10 var cwd = '';
11 index = this.append_cell('!echo $(pwd)');
11 index = this.append_cell('!echo $(pwd)');
12 this.execute_cell_then(index, function(index){
12 this.execute_cell_then(index, function(index){
13 cwd = this.get_output_cell(index).text.trim();
13 cwd = this.get_output_cell(index).text.trim();
14 });
14 });
15
15
16 var test_jpg = '/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40NF7GhHCExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/wgARCAABAAEDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAAA//EABUBAQEAAAAAAAAAAAAAAAAAAAME/9oADAMBAAIQAxAAAAECv//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAQUCf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Bf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Bf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEABj8Cf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8hf//aAAwDAQACAAMAAAAQn//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Qf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Qf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8Qf//Z';
16 var test_jpg = '/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40NF7GhHCExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/wgARCAABAAEDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAAA//EABUBAQEAAAAAAAAAAAAAAAAAAAME/9oADAMBAAIQAxAAAAECv//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAQUCf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Bf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Bf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEABj8Cf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8hf//aAAwDAQACAAMAAAAQn//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Qf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Qf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8Qf//Z';
17
17
18 var image_index = this.append_cell(
18 var image_index = this.append_cell(
19 'import base64\n' +
19 'import base64\n' +
20 'data = base64.b64decode("' + test_jpg + '")\n' +
20 'data = base64.b64decode("' + test_jpg + '")\n' +
21 'image = widgets.ImageWidget()\n' +
21 'image = widgets.Image()\n' +
22 'image.format = "jpeg"\n' +
22 'image.format = "jpeg"\n' +
23 'image.value = data\n' +
23 'image.value = data\n' +
24 'image.width = "50px"\n' +
24 'image.width = "50px"\n' +
25 'image.height = "50px"\n' +
25 'image.height = "50px"\n' +
26 // Set css that will make the image render within the PhantomJS visible
26 // Set css that will make the image render within the PhantomJS visible
27 // window. If we don't do this, the captured image will be black.
27 // window. If we don't do this, the captured image will be black.
28 'image.set_css({"background": "blue", "z-index": "9999", "position": "fixed", "top": "0px", "left": "0px"})\n' +
28 'image.set_css({"background": "blue", "z-index": "9999", "position": "fixed", "top": "0px", "left": "0px"})\n' +
29 'display(image)\n' +
29 'display(image)\n' +
30 'image.add_class("my-test-image")\n' +
30 'image.add_class("my-test-image")\n' +
31 'print("Success")\n');
31 'print("Success")\n');
32 this.execute_cell_then(image_index, function(index){
32 this.execute_cell_then(image_index, function(index){
33
33
34 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
34 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
35 'Create image executed with correct output.');
35 'Create image executed with correct output.');
36
36
37 this.test.assert(this.cell_element_exists(index,
37 this.test.assert(this.cell_element_exists(index,
38 '.widget-area .widget-subarea'),
38 '.widget-area .widget-subarea'),
39 'Widget subarea exists.');
39 'Widget subarea exists.');
40
40
41 var img_sel = '.widget-area .widget-subarea img';
41 var img_sel = '.widget-area .widget-subarea img';
42 this.test.assert(this.cell_element_exists(index, img_sel), 'Image exists.');
42 this.test.assert(this.cell_element_exists(index, img_sel), 'Image exists.');
43
43
44 // Verify that the image's base64 data has made it into the DOM.
44 // Verify that the image's base64 data has made it into the DOM.
45 var img_src = this.cell_element_function(image_index, img_sel, 'attr', ['src']);
45 var img_src = this.cell_element_function(image_index, img_sel, 'attr', ['src']);
46 this.test.assert(img_src.indexOf(test_jpg) > -1, 'Image src data exists.');
46 this.test.assert(img_src.indexOf(test_jpg) > -1, 'Image src data exists.');
47 });
47 });
48 }); No newline at end of file
48 });
@@ -1,157 +1,157 b''
1 // Test widget int class
1 // Test widget int class
2 casper.notebook_test(function () {
2 casper.notebook_test(function () {
3 index = this.append_cell(
3 index = this.append_cell(
4 'from IPython.html import widgets\n' +
4 'from IPython.html import widgets\n' +
5 'from IPython.display import display, clear_output\n' +
5 'from IPython.display import display, clear_output\n' +
6 'print("Success")');
6 'print("Success")');
7 this.execute_cell_then(index);
7 this.execute_cell_then(index);
8
8
9 var int_text = {};
9 var int_text = {};
10 int_text.query = '.widget-area .widget-subarea .widget-hbox-single .my-second-int-text';
10 int_text.query = '.widget-area .widget-subarea .widget-hbox-single .my-second-int-text';
11 int_text.index = this.append_cell(
11 int_text.index = this.append_cell(
12 'int_widget = widgets.IntTextWidget()\n' +
12 'int_widget = widgets.IntText()\n' +
13 'display(int_widget)\n' +
13 'display(int_widget)\n' +
14 'int_widget.add_class("my-second-int-text", selector="input")\n' +
14 'int_widget.add_class("my-second-int-text", selector="input")\n' +
15 'print(int_widget.model_id)\n');
15 'print(int_widget.model_id)\n');
16 this.execute_cell_then(int_text.index, function(index){
16 this.execute_cell_then(int_text.index, function(index){
17 int_text.model_id = this.get_output_cell(index).text.trim();
17 int_text.model_id = this.get_output_cell(index).text.trim();
18
18
19 this.test.assert(this.cell_element_exists(index,
19 this.test.assert(this.cell_element_exists(index,
20 '.widget-area .widget-subarea'),
20 '.widget-area .widget-subarea'),
21 'Widget subarea exists.');
21 'Widget subarea exists.');
22
22
23 this.test.assert(this.cell_element_exists(index, int_text.query),
23 this.test.assert(this.cell_element_exists(index, int_text.query),
24 'Widget int textbox exists.');
24 'Widget int textbox exists.');
25
25
26 this.cell_element_function(int_text.index, int_text.query, 'val', ['']);
26 this.cell_element_function(int_text.index, int_text.query, 'val', ['']);
27 this.sendKeys(int_text.query, '1.05');
27 this.sendKeys(int_text.query, '1.05');
28 });
28 });
29
29
30 this.wait_for_widget(int_text);
30 this.wait_for_widget(int_text);
31
31
32 index = this.append_cell('print(int_widget.value)\n');
32 index = this.append_cell('print(int_widget.value)\n');
33 this.execute_cell_then(index, function(index){
33 this.execute_cell_then(index, function(index){
34 this.test.assertEquals(this.get_output_cell(index).text, '1\n',
34 this.test.assertEquals(this.get_output_cell(index).text, '1\n',
35 'Int textbox value set.');
35 'Int textbox value set.');
36 this.cell_element_function(int_text.index, int_text.query, 'val', ['']);
36 this.cell_element_function(int_text.index, int_text.query, 'val', ['']);
37 this.sendKeys(int_text.query, '123456789');
37 this.sendKeys(int_text.query, '123456789');
38 });
38 });
39
39
40 this.wait_for_widget(int_text);
40 this.wait_for_widget(int_text);
41
41
42 index = this.append_cell('print(int_widget.value)\n');
42 index = this.append_cell('print(int_widget.value)\n');
43 this.execute_cell_then(index, function(index){
43 this.execute_cell_then(index, function(index){
44 this.test.assertEquals(this.get_output_cell(index).text, '123456789\n',
44 this.test.assertEquals(this.get_output_cell(index).text, '123456789\n',
45 'Long int textbox value set (probably triggers throttling).');
45 'Long int textbox value set (probably triggers throttling).');
46 this.cell_element_function(int_text.index, int_text.query, 'val', ['']);
46 this.cell_element_function(int_text.index, int_text.query, 'val', ['']);
47 this.sendKeys(int_text.query, '12hello');
47 this.sendKeys(int_text.query, '12hello');
48 });
48 });
49
49
50 this.wait_for_widget(int_text);
50 this.wait_for_widget(int_text);
51
51
52 index = this.append_cell('print(int_widget.value)\n');
52 index = this.append_cell('print(int_widget.value)\n');
53 this.execute_cell_then(index, function(index){
53 this.execute_cell_then(index, function(index){
54 this.test.assertEquals(this.get_output_cell(index).text, '12\n',
54 this.test.assertEquals(this.get_output_cell(index).text, '12\n',
55 'Invald int textbox value caught and filtered.');
55 'Invald int textbox value caught and filtered.');
56 });
56 });
57
57
58 index = this.append_cell(
58 index = this.append_cell(
59 'from IPython.html import widgets\n' +
59 'from IPython.html import widgets\n' +
60 'from IPython.display import display, clear_output\n' +
60 'from IPython.display import display, clear_output\n' +
61 'print("Success")');
61 'print("Success")');
62 this.execute_cell_then(index);
62 this.execute_cell_then(index);
63
63
64
64
65 var slider_query = '.widget-area .widget-subarea .widget-hbox-single .slider';
65 var slider_query = '.widget-area .widget-subarea .widget-hbox-single .slider';
66 var int_text2 = {};
66 var int_text2 = {};
67 int_text2.query = '.widget-area .widget-subarea .widget-hbox-single .my-second-num-test-text';
67 int_text2.query = '.widget-area .widget-subarea .widget-hbox-single .my-second-num-test-text';
68 int_text2.index = this.append_cell(
68 int_text2.index = this.append_cell(
69 'intrange = [widgets.BoundedIntTextWidget(),\n' +
69 'intrange = [widgets.BoundedIntTextWidget(),\n' +
70 ' widgets.IntSliderWidget()]\n' +
70 ' widgets.IntSliderWidget()]\n' +
71 '[display(intrange[i]) for i in range(2)]\n' +
71 '[display(intrange[i]) for i in range(2)]\n' +
72 'intrange[0].add_class("my-second-num-test-text", selector="input")\n' +
72 'intrange[0].add_class("my-second-num-test-text", selector="input")\n' +
73 'print(intrange[0].model_id)\n');
73 'print(intrange[0].model_id)\n');
74 this.execute_cell_then(int_text2.index, function(index){
74 this.execute_cell_then(int_text2.index, function(index){
75 int_text2.model_id = this.get_output_cell(index).text.trim();
75 int_text2.model_id = this.get_output_cell(index).text.trim();
76
76
77 this.test.assert(this.cell_element_exists(index,
77 this.test.assert(this.cell_element_exists(index,
78 '.widget-area .widget-subarea'),
78 '.widget-area .widget-subarea'),
79 'Widget subarea exists.');
79 'Widget subarea exists.');
80
80
81 this.test.assert(this.cell_element_exists(index, slider_query),
81 this.test.assert(this.cell_element_exists(index, slider_query),
82 'Widget slider exists.');
82 'Widget slider exists.');
83
83
84 this.test.assert(this.cell_element_exists(index, int_text2.query),
84 this.test.assert(this.cell_element_exists(index, int_text2.query),
85 'Widget int textbox exists.');
85 'Widget int textbox exists.');
86 });
86 });
87
87
88 index = this.append_cell(
88 index = this.append_cell(
89 'for widget in intrange:\n' +
89 'for widget in intrange:\n' +
90 ' widget.max = 50\n' +
90 ' widget.max = 50\n' +
91 ' widget.min = -50\n' +
91 ' widget.min = -50\n' +
92 ' widget.value = 25\n' +
92 ' widget.value = 25\n' +
93 'print("Success")\n');
93 'print("Success")\n');
94 this.execute_cell_then(index, function(index){
94 this.execute_cell_then(index, function(index){
95
95
96 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
96 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
97 'Int range properties cell executed with correct output.');
97 'Int range properties cell executed with correct output.');
98
98
99 this.test.assert(this.cell_element_exists(int_text2.index, slider_query),
99 this.test.assert(this.cell_element_exists(int_text2.index, slider_query),
100 'Widget slider exists.');
100 'Widget slider exists.');
101
101
102 this.test.assert(this.cell_element_function(int_text2.index, slider_query,
102 this.test.assert(this.cell_element_function(int_text2.index, slider_query,
103 'slider', ['value']) == 25,
103 'slider', ['value']) == 25,
104 'Slider set to Python value.');
104 'Slider set to Python value.');
105
105
106 this.test.assert(this.cell_element_function(int_text2.index, int_text2.query,
106 this.test.assert(this.cell_element_function(int_text2.index, int_text2.query,
107 'val') == 25, 'Int textbox set to Python value.');
107 'val') == 25, 'Int textbox set to Python value.');
108
108
109 // Clear the int textbox value and then set it to 1 by emulating
109 // Clear the int textbox value and then set it to 1 by emulating
110 // keyboard presses.
110 // keyboard presses.
111 this.evaluate(function(q){
111 this.evaluate(function(q){
112 var textbox = IPython.notebook.element.find(q);
112 var textbox = IPython.notebook.element.find(q);
113 textbox.val('1');
113 textbox.val('1');
114 textbox.trigger('keyup');
114 textbox.trigger('keyup');
115 }, {q: int_text2.query});
115 }, {q: int_text2.query});
116 });
116 });
117
117
118 this.wait_for_widget(int_text2);
118 this.wait_for_widget(int_text2);
119
119
120 index = this.append_cell('print(intrange[0].value)\n');
120 index = this.append_cell('print(intrange[0].value)\n');
121 this.execute_cell_then(index, function(index){
121 this.execute_cell_then(index, function(index){
122 this.test.assertEquals(this.get_output_cell(index).text, '1\n',
122 this.test.assertEquals(this.get_output_cell(index).text, '1\n',
123 'Int textbox set int range value');
123 'Int textbox set int range value');
124
124
125 // Clear the int textbox value and then set it to 120 by emulating
125 // Clear the int textbox value and then set it to 120 by emulating
126 // keyboard presses.
126 // keyboard presses.
127 this.evaluate(function(q){
127 this.evaluate(function(q){
128 var textbox = IPython.notebook.element.find(q);
128 var textbox = IPython.notebook.element.find(q);
129 textbox.val('120');
129 textbox.val('120');
130 textbox.trigger('keyup');
130 textbox.trigger('keyup');
131 }, {q: int_text2.query});
131 }, {q: int_text2.query});
132 });
132 });
133
133
134 this.wait_for_widget(int_text2);
134 this.wait_for_widget(int_text2);
135
135
136 index = this.append_cell('print(intrange[0].value)\n');
136 index = this.append_cell('print(intrange[0].value)\n');
137 this.execute_cell_then(index, function(index){
137 this.execute_cell_then(index, function(index){
138 this.test.assertEquals(this.get_output_cell(index).text, '50\n',
138 this.test.assertEquals(this.get_output_cell(index).text, '50\n',
139 'Int textbox value bound');
139 'Int textbox value bound');
140
140
141 // Clear the int textbox value and then set it to 'hello world' by
141 // Clear the int textbox value and then set it to 'hello world' by
142 // emulating keyboard presses. 'hello world' should get filtered...
142 // emulating keyboard presses. 'hello world' should get filtered...
143 this.evaluate(function(q){
143 this.evaluate(function(q){
144 var textbox = IPython.notebook.element.find(q);
144 var textbox = IPython.notebook.element.find(q);
145 textbox.val('hello world');
145 textbox.val('hello world');
146 textbox.trigger('keyup');
146 textbox.trigger('keyup');
147 }, {q: int_text2.query});
147 }, {q: int_text2.query});
148 });
148 });
149
149
150 this.wait_for_widget(int_text2);
150 this.wait_for_widget(int_text2);
151
151
152 index = this.append_cell('print(intrange[0].value)\n');
152 index = this.append_cell('print(intrange[0].value)\n');
153 this.execute_cell_then(index, function(index){
153 this.execute_cell_then(index, function(index){
154 this.test.assertEquals(this.get_output_cell(index).text, '50\n',
154 this.test.assertEquals(this.get_output_cell(index).text, '50\n',
155 'Invalid int textbox characters ignored');
155 'Invalid int textbox characters ignored');
156 });
156 });
157 }); No newline at end of file
157 });
@@ -1,138 +1,138 b''
1 // Test selection class
1 // Test selection class
2 casper.notebook_test(function () {
2 casper.notebook_test(function () {
3 index = this.append_cell(
3 index = this.append_cell(
4 'from IPython.html import widgets\n' +
4 'from IPython.html import widgets\n' +
5 'from IPython.display import display, clear_output\n' +
5 'from IPython.display import display, clear_output\n' +
6 'print("Success")');
6 'print("Success")');
7 this.execute_cell_then(index);
7 this.execute_cell_then(index);
8
8
9 var combo_selector = '.widget-area .widget-subarea .widget-hbox-single .btn-group .widget-combo-btn';
9 var combo_selector = '.widget-area .widget-subarea .widget-hbox-single .btn-group .widget-combo-btn';
10 var multibtn_selector = '.widget-area .widget-subarea .widget-hbox-single .btn-group[data-toggle="buttons-radio"]';
10 var multibtn_selector = '.widget-area .widget-subarea .widget-hbox-single .btn-group[data-toggle="buttons-radio"]';
11 var radio_selector = '.widget-area .widget-subarea .widget-hbox .widget-radio-box';
11 var radio_selector = '.widget-area .widget-subarea .widget-hbox .widget-radio-box';
12 var list_selector = '.widget-area .widget-subarea .widget-hbox .widget-listbox';
12 var list_selector = '.widget-area .widget-subarea .widget-hbox .widget-listbox';
13
13
14 var selection_index;
14 var selection_index;
15 var selection_values = 'abcd';
15 var selection_values = 'abcd';
16 var check_state = function(context, index, state){
16 var check_state = function(context, index, state){
17 if (0 <= index && index < selection_values.length) {
17 if (0 <= index && index < selection_values.length) {
18 var multibtn_state = context.cell_element_function(selection_index, multibtn_selector + ' .btn:nth-child(' + (index + 1) + ')', 'hasClass', ['active']);
18 var multibtn_state = context.cell_element_function(selection_index, multibtn_selector + ' .btn:nth-child(' + (index + 1) + ')', 'hasClass', ['active']);
19 var radio_state = context.cell_element_function(selection_index, radio_selector + ' .radio:nth-child(' + (index + 1) + ') input', 'prop', ['checked']);
19 var radio_state = context.cell_element_function(selection_index, radio_selector + ' .radio:nth-child(' + (index + 1) + ') input', 'prop', ['checked']);
20 var list_val = context.cell_element_function(selection_index, list_selector, 'val');
20 var list_val = context.cell_element_function(selection_index, list_selector, 'val');
21 var combo_val = context.cell_element_function(selection_index, combo_selector, 'html');
21 var combo_val = context.cell_element_function(selection_index, combo_selector, 'html');
22
22
23 var val = selection_values.charAt(index);
23 var val = selection_values.charAt(index);
24 var list_state = (val == list_val);
24 var list_state = (val == list_val);
25 var combo_state = (val == combo_val);
25 var combo_state = (val == combo_val);
26
26
27 return multibtn_state == state &&
27 return multibtn_state == state &&
28 radio_state == state &&
28 radio_state == state &&
29 list_state == state &&
29 list_state == state &&
30 combo_state == state;
30 combo_state == state;
31 }
31 }
32 return true;
32 return true;
33 };
33 };
34
34
35 var verify_selection = function(context, index){
35 var verify_selection = function(context, index){
36 for (var i = 0; i < selection_values.length; i++) {
36 for (var i = 0; i < selection_values.length; i++) {
37 if (!check_state(context, i, i==index)) {
37 if (!check_state(context, i, i==index)) {
38 return false;
38 return false;
39 }
39 }
40 }
40 }
41 return true;
41 return true;
42 };
42 };
43
43
44 //values=["' + selection_values + '"[i] for i in range(4)]
44 //values=["' + selection_values + '"[i] for i in range(4)]
45 selection_index = this.append_cell(
45 selection_index = this.append_cell(
46 'values=["' + selection_values + '"[i] for i in range(4)]\n' +
46 'values=["' + selection_values + '"[i] for i in range(4)]\n' +
47 'selection = [widgets.DropdownWidget(values=values),\n' +
47 'selection = [widgets.Dropdown(values=values),\n' +
48 ' widgets.ToggleButtonsWidget(values=values),\n' +
48 ' widgets.ToggleButtons(values=values),\n' +
49 ' widgets.RadioButtonsWidget(values=values),\n' +
49 ' widgets.RadioButtons(values=values),\n' +
50 ' widgets.SelectWidget(values=values)]\n' +
50 ' widgets.Select(values=values)]\n' +
51 '[display(selection[i]) for i in range(4)]\n' +
51 '[display(selection[i]) for i in range(4)]\n' +
52 'for widget in selection:\n' +
52 'for widget in selection:\n' +
53 ' def handle_change(name,old,new):\n' +
53 ' def handle_change(name,old,new):\n' +
54 ' for other_widget in selection:\n' +
54 ' for other_widget in selection:\n' +
55 ' other_widget.value = new\n' +
55 ' other_widget.value = new\n' +
56 ' widget.on_trait_change(handle_change, "value")\n' +
56 ' widget.on_trait_change(handle_change, "value")\n' +
57 'print("Success")\n');
57 'print("Success")\n');
58 this.execute_cell_then(selection_index, function(index){
58 this.execute_cell_then(selection_index, function(index){
59 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
59 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
60 'Create selection cell executed with correct output.');
60 'Create selection cell executed with correct output.');
61
61
62 this.test.assert(this.cell_element_exists(index,
62 this.test.assert(this.cell_element_exists(index,
63 '.widget-area .widget-subarea'),
63 '.widget-area .widget-subarea'),
64 'Widget subarea exists.');
64 'Widget subarea exists.');
65
65
66 this.test.assert(this.cell_element_exists(index, combo_selector),
66 this.test.assert(this.cell_element_exists(index, combo_selector),
67 'Widget combobox exists.');
67 'Widget combobox exists.');
68
68
69 this.test.assert(this.cell_element_exists(index, multibtn_selector),
69 this.test.assert(this.cell_element_exists(index, multibtn_selector),
70 'Widget multibutton exists.');
70 'Widget multibutton exists.');
71
71
72 this.test.assert(this.cell_element_exists(index, radio_selector),
72 this.test.assert(this.cell_element_exists(index, radio_selector),
73 'Widget radio buttons exists.');
73 'Widget radio buttons exists.');
74
74
75 this.test.assert(this.cell_element_exists(index, list_selector),
75 this.test.assert(this.cell_element_exists(index, list_selector),
76 'Widget list exists.');
76 'Widget list exists.');
77
77
78 // Verify that no items are selected.
78 // Verify that no items are selected.
79 this.test.assert(verify_selection(this, 0), 'Default first item selected.');
79 this.test.assert(verify_selection(this, 0), 'Default first item selected.');
80 });
80 });
81
81
82 index = this.append_cell(
82 index = this.append_cell(
83 'for widget in selection:\n' +
83 'for widget in selection:\n' +
84 ' widget.value = "a"\n' +
84 ' widget.value = "a"\n' +
85 'print("Success")\n');
85 'print("Success")\n');
86 this.execute_cell_then(index, function(index){
86 this.execute_cell_then(index, function(index){
87 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
87 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
88 'Python select item executed with correct output.');
88 'Python select item executed with correct output.');
89
89
90 // Verify that the first item is selected.
90 // Verify that the first item is selected.
91 this.test.assert(verify_selection(this, 0), 'Python selected');
91 this.test.assert(verify_selection(this, 0), 'Python selected');
92
92
93 // Verify that selecting a radio button updates all of the others.
93 // Verify that selecting a radio button updates all of the others.
94 this.cell_element_function(selection_index, radio_selector + ' .radio:nth-child(2) input', 'click');
94 this.cell_element_function(selection_index, radio_selector + ' .radio:nth-child(2) input', 'click');
95 });
95 });
96 this.wait_for_idle();
96 this.wait_for_idle();
97 this.then(function () {
97 this.then(function () {
98 this.test.assert(verify_selection(this, 1), 'Radio button selection updated view states correctly.');
98 this.test.assert(verify_selection(this, 1), 'Radio button selection updated view states correctly.');
99
99
100 // Verify that selecting a list option updates all of the others.
100 // Verify that selecting a list option updates all of the others.
101 this.cell_element_function(selection_index, list_selector + ' option:nth-child(3)', 'click');
101 this.cell_element_function(selection_index, list_selector + ' option:nth-child(3)', 'click');
102 });
102 });
103 this.wait_for_idle();
103 this.wait_for_idle();
104 this.then(function () {
104 this.then(function () {
105 this.test.assert(verify_selection(this, 2), 'List selection updated view states correctly.');
105 this.test.assert(verify_selection(this, 2), 'List selection updated view states correctly.');
106
106
107 // Verify that selecting a multibutton option updates all of the others.
107 // Verify that selecting a multibutton option updates all of the others.
108 // Bootstrap3 has changed the toggle button group behavior. Two clicks
108 // Bootstrap3 has changed the toggle button group behavior. Two clicks
109 // are required to actually select an item.
109 // are required to actually select an item.
110 this.cell_element_function(selection_index, multibtn_selector + ' .btn:nth-child(4)', 'click');
110 this.cell_element_function(selection_index, multibtn_selector + ' .btn:nth-child(4)', 'click');
111 this.cell_element_function(selection_index, multibtn_selector + ' .btn:nth-child(4)', 'click');
111 this.cell_element_function(selection_index, multibtn_selector + ' .btn:nth-child(4)', 'click');
112 });
112 });
113 this.wait_for_idle();
113 this.wait_for_idle();
114 this.then(function () {
114 this.then(function () {
115 this.test.assert(verify_selection(this, 3), 'Multibutton selection updated view states correctly.');
115 this.test.assert(verify_selection(this, 3), 'Multibutton selection updated view states correctly.');
116
116
117 // Verify that selecting a combobox option updates all of the others.
117 // Verify that selecting a combobox option updates all of the others.
118 this.cell_element_function(selection_index, '.widget-area .widget-subarea .widget-hbox-single .btn-group ul.dropdown-menu li:nth-child(3) a', 'click');
118 this.cell_element_function(selection_index, '.widget-area .widget-subarea .widget-hbox-single .btn-group ul.dropdown-menu li:nth-child(3) a', 'click');
119 });
119 });
120 this.wait_for_idle();
120 this.wait_for_idle();
121 this.then(function () {
121 this.then(function () {
122 this.test.assert(verify_selection(this, 2), 'Combobox selection updated view states correctly.');
122 this.test.assert(verify_selection(this, 2), 'Combobox selection updated view states correctly.');
123 });
123 });
124
124
125 this.wait_for_idle();
125 this.wait_for_idle();
126
126
127 index = this.append_cell(
127 index = this.append_cell(
128 'for widget in selection:\n' +
128 'for widget in selection:\n' +
129 ' d = widget.values.copy()\n' +
129 ' d = widget.values.copy()\n' +
130 ' d["z"] = "z"\n' +
130 ' d["z"] = "z"\n' +
131 ' widget.values = d\n' +
131 ' widget.values = d\n' +
132 'selection[0].value = "z"');
132 'selection[0].value = "z"');
133 this.execute_cell_then(index, function(index){
133 this.execute_cell_then(index, function(index){
134
134
135 // Verify that selecting a combobox option updates all of the others.
135 // Verify that selecting a combobox option updates all of the others.
136 this.test.assert(verify_selection(this, 4), 'Item added to selection widget.');
136 this.test.assert(verify_selection(this, 4), 'Item added to selection widget.');
137 });
137 });
138 }); No newline at end of file
138 });
@@ -1,113 +1,113 b''
1 // Test multicontainer class
1 // Test multicontainer class
2 casper.notebook_test(function () {
2 casper.notebook_test(function () {
3 index = this.append_cell(
3 index = this.append_cell(
4 'from IPython.html import widgets\n' +
4 'from IPython.html import widgets\n' +
5 'from IPython.display import display, clear_output\n' +
5 'from IPython.display import display, clear_output\n' +
6 'print("Success")');
6 'print("Success")');
7 this.execute_cell_then(index);
7 this.execute_cell_then(index);
8
8
9 // Test tab view
9 // Test tab view
10 var multicontainer1_query = '.widget-area .widget-subarea div div.nav-tabs';
10 var multicontainer1_query = '.widget-area .widget-subarea div div.nav-tabs';
11 var multicontainer1_index = this.append_cell(
11 var multicontainer1_index = this.append_cell(
12 'multicontainer = widgets.TabWidget()\n' +
12 'multicontainer = widgets.Tab()\n' +
13 'page1 = widgets.TextWidget()\n' +
13 'page1 = widgets.Text()\n' +
14 'page2 = widgets.TextWidget()\n' +
14 'page2 = widgets.Text()\n' +
15 'page3 = widgets.TextWidget()\n' +
15 'page3 = widgets.Text()\n' +
16 'multicontainer.children = [page1, page2, page3]\n' +
16 'multicontainer.children = [page1, page2, page3]\n' +
17 'display(multicontainer)\n' +
17 'display(multicontainer)\n' +
18 'multicontainer.selected_index = 0\n' +
18 'multicontainer.selected_index = 0\n' +
19 'print("Success")\n');
19 'print("Success")\n');
20 this.execute_cell_then(multicontainer1_index, function(index){
20 this.execute_cell_then(multicontainer1_index, function(index){
21
21
22 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
22 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
23 'Create multicontainer cell executed with correct output. (1)');
23 'Create multicontainer cell executed with correct output. (1)');
24
24
25 this.test.assert(this.cell_element_exists(index,
25 this.test.assert(this.cell_element_exists(index,
26 '.widget-area .widget-subarea'),
26 '.widget-area .widget-subarea'),
27 'Widget subarea exists.');
27 'Widget subarea exists.');
28
28
29 this.test.assert(this.cell_element_exists(index, multicontainer1_query),
29 this.test.assert(this.cell_element_exists(index, multicontainer1_query),
30 'Widget tab list exists.');
30 'Widget tab list exists.');
31
31
32 this.test.assert(this.cell_element_exists(index, multicontainer1_query),
32 this.test.assert(this.cell_element_exists(index, multicontainer1_query),
33 'First widget tab list exists.');
33 'First widget tab list exists.');
34
34
35 // JQuery selector is 1 based
35 // JQuery selector is 1 based
36 this.click(multicontainer1_query + ' li:nth-child(2) a');
36 this.click(multicontainer1_query + ' li:nth-child(2) a');
37 });
37 });
38
38
39 this.wait_for_idle();
39 this.wait_for_idle();
40
40
41 index = this.append_cell(
41 index = this.append_cell(
42 'print(multicontainer.selected_index)\n' +
42 'print(multicontainer.selected_index)\n' +
43 'multicontainer.selected_index = 2'); // 0 based
43 'multicontainer.selected_index = 2'); // 0 based
44 this.execute_cell_then(index, function(index){
44 this.execute_cell_then(index, function(index){
45 this.test.assertEquals(this.get_output_cell(index).text, '1\n', // 0 based
45 this.test.assertEquals(this.get_output_cell(index).text, '1\n', // 0 based
46 'selected_index property updated with tab change.');
46 'selected_index property updated with tab change.');
47
47
48 // JQuery selector is 1 based
48 // JQuery selector is 1 based
49 this.test.assert(!this.cell_element_function(multicontainer1_index, multicontainer1_query + ' li:nth-child(1)', 'hasClass', ['active']),
49 this.test.assert(!this.cell_element_function(multicontainer1_index, multicontainer1_query + ' li:nth-child(1)', 'hasClass', ['active']),
50 "Tab 1 is not selected.");
50 "Tab 1 is not selected.");
51 this.test.assert(!this.cell_element_function(multicontainer1_index, multicontainer1_query + ' li:nth-child(2)', 'hasClass', ['active']),
51 this.test.assert(!this.cell_element_function(multicontainer1_index, multicontainer1_query + ' li:nth-child(2)', 'hasClass', ['active']),
52 "Tab 2 is not selected.");
52 "Tab 2 is not selected.");
53 this.test.assert(this.cell_element_function(multicontainer1_index, multicontainer1_query + ' li:nth-child(3)', 'hasClass', ['active']),
53 this.test.assert(this.cell_element_function(multicontainer1_index, multicontainer1_query + ' li:nth-child(3)', 'hasClass', ['active']),
54 "Tab 3 is selected.");
54 "Tab 3 is selected.");
55 });
55 });
56
56
57 index = this.append_cell('multicontainer.set_title(1, "hello")\nprint("Success")'); // 0 based
57 index = this.append_cell('multicontainer.set_title(1, "hello")\nprint("Success")'); // 0 based
58 this.execute_cell_then(index, function(index){
58 this.execute_cell_then(index, function(index){
59 this.test.assert(this.cell_element_function(multicontainer1_index, multicontainer1_query +
59 this.test.assert(this.cell_element_function(multicontainer1_index, multicontainer1_query +
60 ' li:nth-child(2) a', 'html') == 'hello',
60 ' li:nth-child(2) a', 'html') == 'hello',
61 'Tab page title set (after display).');
61 'Tab page title set (after display).');
62 });
62 });
63
63
64 // Test accordion view
64 // Test accordion view
65 var multicontainer2_query = '.widget-area .widget-subarea .panel-group';
65 var multicontainer2_query = '.widget-area .widget-subarea .panel-group';
66 var multicontainer2_index = this.append_cell(
66 var multicontainer2_index = this.append_cell(
67 'multicontainer = widgets.AccordionWidget()\n' +
67 'multicontainer = widgets.Accordion()\n' +
68 'page1 = widgets.TextWidget()\n' +
68 'page1 = widgets.Text()\n' +
69 'page2 = widgets.TextWidget()\n' +
69 'page2 = widgets.Text()\n' +
70 'page3 = widgets.TextWidget()\n' +
70 'page3 = widgets.Text()\n' +
71 'multicontainer.children = [page1, page2, page3]\n' +
71 'multicontainer.children = [page1, page2, page3]\n' +
72 'multicontainer.set_title(2, "good")\n' +
72 'multicontainer.set_title(2, "good")\n' +
73 'display(multicontainer)\n' +
73 'display(multicontainer)\n' +
74 'multicontainer.selected_index = 0\n' +
74 'multicontainer.selected_index = 0\n' +
75 'print("Success")\n');
75 'print("Success")\n');
76 this.execute_cell_then(multicontainer2_index, function(index){
76 this.execute_cell_then(multicontainer2_index, function(index){
77
77
78 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
78 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
79 'Create multicontainer cell executed with correct output. (2)');
79 'Create multicontainer cell executed with correct output. (2)');
80
80
81 this.test.assert(this.cell_element_exists(index,
81 this.test.assert(this.cell_element_exists(index,
82 '.widget-area .widget-subarea'),
82 '.widget-area .widget-subarea'),
83 'Widget subarea exists.');
83 'Widget subarea exists.');
84
84
85 this.test.assert(this.cell_element_exists(index, multicontainer2_query),
85 this.test.assert(this.cell_element_exists(index, multicontainer2_query),
86 'Widget accordion exists.');
86 'Widget accordion exists.');
87
87
88 this.test.assert(this.cell_element_exists(index, multicontainer2_query +
88 this.test.assert(this.cell_element_exists(index, multicontainer2_query +
89 ' .panel:nth-child(1) .panel-collapse'),
89 ' .panel:nth-child(1) .panel-collapse'),
90 'First accordion page exists.');
90 'First accordion page exists.');
91
91
92 // JQuery selector is 1 based
92 // JQuery selector is 1 based
93 this.test.assert(this.cell_element_function(index, multicontainer2_query +
93 this.test.assert(this.cell_element_function(index, multicontainer2_query +
94 ' .panel.panel-default:nth-child(3) .panel-heading .accordion-toggle',
94 ' .panel.panel-default:nth-child(3) .panel-heading .accordion-toggle',
95 'html')=='good', 'Accordion page title set (before display).');
95 'html')=='good', 'Accordion page title set (before display).');
96
96
97 // JQuery selector is 1 based
97 // JQuery selector is 1 based
98 this.click(multicontainer2_query + ' .panel:nth-child(2) .panel-heading .accordion-toggle');
98 this.click(multicontainer2_query + ' .panel:nth-child(2) .panel-heading .accordion-toggle');
99 });
99 });
100
100
101 this.wait_for_idle();
101 this.wait_for_idle();
102
102
103 index = this.append_cell('print(multicontainer.selected_index)'); // 0 based
103 index = this.append_cell('print(multicontainer.selected_index)'); // 0 based
104 this.execute_cell_then(index, function(index){
104 this.execute_cell_then(index, function(index){
105 this.test.assertEquals(this.get_output_cell(index).text, '1\n', // 0 based
105 this.test.assertEquals(this.get_output_cell(index).text, '1\n', // 0 based
106 'selected_index property updated with tab change.');
106 'selected_index property updated with tab change.');
107
107
108 var is_collapsed = this.evaluate(function(s){
108 var is_collapsed = this.evaluate(function(s){
109 return $(s + ' div.panel:nth-child(2) a').hasClass('collapsed'); // 1 based
109 return $(s + ' div.panel:nth-child(2) a').hasClass('collapsed'); // 1 based
110 }, {s: multicontainer2_query});
110 }, {s: multicontainer2_query});
111 this.test.assertEquals(is_collapsed, false, 'Was tab actually opened?');
111 this.test.assertEquals(is_collapsed, false, 'Was tab actually opened?');
112 });
112 });
113 }); No newline at end of file
113 });
@@ -1,53 +1,53 b''
1 // Test widget string class
1 // Test widget string class
2 casper.notebook_test(function () {
2 casper.notebook_test(function () {
3 index = this.append_cell(
3 index = this.append_cell(
4 'from IPython.html import widgets\n' +
4 'from IPython.html import widgets\n' +
5 'from IPython.display import display, clear_output\n' +
5 'from IPython.display import display, clear_output\n' +
6 'print("Success")');
6 'print("Success")');
7 this.execute_cell_then(index);
7 this.execute_cell_then(index);
8
8
9 var string_index = this.append_cell(
9 var string_index = this.append_cell(
10 'string_widget = [widgets.TextWidget(value = "xyz", placeholder = "abc"),\n' +
10 'string_widget = [widgets.Text(value = "xyz", placeholder = "abc"),\n' +
11 ' widgets.TextareaWidget(value = "xyz", placeholder = "def"),\n' +
11 ' widgets.Textarea(value = "xyz", placeholder = "def"),\n' +
12 ' widgets.HTMLWidget(value = "xyz"),\n' +
12 ' widgets.HTML(value = "xyz"),\n' +
13 ' widgets.LatexWidget(value = "$\\\\LaTeX{}$")]\n' +
13 ' widgets.Latex(value = "$\\\\LaTeX{}$")]\n' +
14 '[display(widget) for widget in string_widget]\n'+
14 '[display(widget) for widget in string_widget]\n'+
15 'print("Success")');
15 'print("Success")');
16 this.execute_cell_then(string_index, function(index){
16 this.execute_cell_then(string_index, function(index){
17
17
18 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
18 this.test.assertEquals(this.get_output_cell(index).text, 'Success\n',
19 'Create string widget cell executed with correct output.');
19 'Create string widget cell executed with correct output.');
20
20
21 this.test.assert(this.cell_element_exists(index,
21 this.test.assert(this.cell_element_exists(index,
22 '.widget-area .widget-subarea'),
22 '.widget-area .widget-subarea'),
23 'Widget subarea exists.');
23 'Widget subarea exists.');
24
24
25 this.test.assert(this.cell_element_exists(index,
25 this.test.assert(this.cell_element_exists(index,
26 '.widget-area .widget-subarea .widget-hbox-single input[type=text]'),
26 '.widget-area .widget-subarea .widget-hbox-single input[type=text]'),
27 'Textbox exists.');
27 'Textbox exists.');
28
28
29 this.test.assert(this.cell_element_exists(index,
29 this.test.assert(this.cell_element_exists(index,
30 '.widget-area .widget-subarea .widget-hbox textarea'),
30 '.widget-area .widget-subarea .widget-hbox textarea'),
31 'Textarea exists.');
31 'Textarea exists.');
32
32
33 this.test.assert(this.cell_element_function(index,
33 this.test.assert(this.cell_element_function(index,
34 '.widget-area .widget-subarea .widget-hbox textarea', 'val')=='xyz',
34 '.widget-area .widget-subarea .widget-hbox textarea', 'val')=='xyz',
35 'Python set textarea value.');
35 'Python set textarea value.');
36
36
37 this.test.assert(this.cell_element_function(index,
37 this.test.assert(this.cell_element_function(index,
38 '.widget-area .widget-subarea .widget-hbox-single input[type=text]', 'val')=='xyz',
38 '.widget-area .widget-subarea .widget-hbox-single input[type=text]', 'val')=='xyz',
39 'Python set textbox value.');
39 'Python set textbox value.');
40
40
41 this.test.assert(this.cell_element_exists(string_index,
41 this.test.assert(this.cell_element_exists(string_index,
42 '.widget-area .widget-subarea div span.MathJax_Preview'),
42 '.widget-area .widget-subarea div span.MathJax_Preview'),
43 'MathJax parsed the LaTeX successfully.');
43 'MathJax parsed the LaTeX successfully.');
44
44
45 this.test.assert(this.cell_element_function(index,
45 this.test.assert(this.cell_element_function(index,
46 '.widget-area .widget-subarea .widget-hbox textarea', 'attr', ['placeholder'])=='def',
46 '.widget-area .widget-subarea .widget-hbox textarea', 'attr', ['placeholder'])=='def',
47 'Python set textarea placeholder.');
47 'Python set textarea placeholder.');
48
48
49 this.test.assert(this.cell_element_function(index,
49 this.test.assert(this.cell_element_function(index,
50 '.widget-area .widget-subarea .widget-hbox-single input[type=text]', 'attr', ['placeholder'])=='abc',
50 '.widget-area .widget-subarea .widget-hbox-single input[type=text]', 'attr', ['placeholder'])=='abc',
51 'Python set textbox placehoder.');
51 'Python set textbox placehoder.');
52 });
52 });
53 });
53 });
@@ -1,12 +1,23 b''
1 from .widget import Widget, DOMWidget, CallbackDispatcher
1 from .widget import Widget, DOMWidget, CallbackDispatcher
2
2
3 from .widget_bool import Checkbox, ToggleButton
4 from .widget_button import Button
5 from .widget_box import Box, Popup, FlexBox, HBox, VBox
6 from .widget_float import FloatText, BoundedFloatText, FloatSlider, FloatProgress
7 from .widget_image import Image
8 from .widget_int import IntText, BoundedIntText, IntSlider, IntProgress
9 from .widget_selection import RadioButtons, ToggleButtons, Dropdown, Select
10 from .widget_selectioncontainer import Tab, Accordion
11 from .widget_string import HTML, Latex, Text, Textarea
12 from .interaction import interact, interactive, fixed
13
14 # Deprecated classes
3 from .widget_bool import CheckboxWidget, ToggleButtonWidget
15 from .widget_bool import CheckboxWidget, ToggleButtonWidget
4 from .widget_button import ButtonWidget
16 from .widget_button import ButtonWidget
5 from .widget_container import ContainerWidget, PopupWidget
17 from .widget_box import ContainerWidget, PopupWidget
6 from .widget_float import FloatTextWidget, BoundedFloatTextWidget, FloatSliderWidget, FloatProgressWidget
18 from .widget_float import FloatTextWidget, BoundedFloatTextWidget, FloatSliderWidget, FloatProgressWidget
7 from .widget_image import ImageWidget
19 from .widget_image import ImageWidget
8 from .widget_int import IntTextWidget, BoundedIntTextWidget, IntSliderWidget, IntProgressWidget
20 from .widget_int import IntTextWidget, BoundedIntTextWidget, IntSliderWidget, IntProgressWidget
9 from .widget_selection import RadioButtonsWidget, ToggleButtonsWidget, DropdownWidget, SelectWidget
21 from .widget_selection import RadioButtonsWidget, ToggleButtonsWidget, DropdownWidget, SelectWidget
10 from .widget_selectioncontainer import TabWidget, AccordionWidget
22 from .widget_selectioncontainer import TabWidget, AccordionWidget
11 from .widget_string import HTMLWidget, LatexWidget, TextWidget, TextareaWidget
23 from .widget_string import HTMLWidget, LatexWidget, TextWidget, TextareaWidget
12 from .interaction import interact, interactive, fixed
@@ -1,257 +1,257 b''
1 """Interact with functions using widgets."""
1 """Interact with functions using widgets."""
2
2
3 #-----------------------------------------------------------------------------
3 #-----------------------------------------------------------------------------
4 # Copyright (c) 2013, the IPython Development Team.
4 # Copyright (c) 2013, the IPython Development Team.
5 #
5 #
6 # Distributed under the terms of the Modified BSD License.
6 # Distributed under the terms of the Modified BSD License.
7 #
7 #
8 # The full license is in the file COPYING.txt, distributed with this software.
8 # The full license is in the file COPYING.txt, distributed with this software.
9 #-----------------------------------------------------------------------------
9 #-----------------------------------------------------------------------------
10
10
11 #-----------------------------------------------------------------------------
11 #-----------------------------------------------------------------------------
12 # Imports
12 # Imports
13 #-----------------------------------------------------------------------------
13 #-----------------------------------------------------------------------------
14
14
15 from __future__ import print_function
15 from __future__ import print_function
16
16
17 try: # Python >= 3.3
17 try: # Python >= 3.3
18 from inspect import signature, Parameter
18 from inspect import signature, Parameter
19 except ImportError:
19 except ImportError:
20 from IPython.utils.signatures import signature, Parameter
20 from IPython.utils.signatures import signature, Parameter
21 from inspect import getcallargs
21 from inspect import getcallargs
22
22
23 from IPython.core.getipython import get_ipython
23 from IPython.core.getipython import get_ipython
24 from IPython.html.widgets import (Widget, TextWidget,
24 from IPython.html.widgets import (Widget, Text,
25 FloatSliderWidget, IntSliderWidget, CheckboxWidget, DropdownWidget,
25 FloatSlider, IntSlider, Checkbox, Dropdown,
26 ContainerWidget, DOMWidget)
26 Box, DOMWidget)
27 from IPython.display import display, clear_output
27 from IPython.display import display, clear_output
28 from IPython.utils.py3compat import string_types, unicode_type
28 from IPython.utils.py3compat import string_types, unicode_type
29 from IPython.utils.traitlets import HasTraits, Any, Unicode
29 from IPython.utils.traitlets import HasTraits, Any, Unicode
30
30
31 empty = Parameter.empty
31 empty = Parameter.empty
32
32
33 #-----------------------------------------------------------------------------
33 #-----------------------------------------------------------------------------
34 # Classes and Functions
34 # Classes and Functions
35 #-----------------------------------------------------------------------------
35 #-----------------------------------------------------------------------------
36
36
37
37
38 def _matches(o, pattern):
38 def _matches(o, pattern):
39 """Match a pattern of types in a sequence."""
39 """Match a pattern of types in a sequence."""
40 if not len(o) == len(pattern):
40 if not len(o) == len(pattern):
41 return False
41 return False
42 comps = zip(o,pattern)
42 comps = zip(o,pattern)
43 return all(isinstance(obj,kind) for obj,kind in comps)
43 return all(isinstance(obj,kind) for obj,kind in comps)
44
44
45
45
46 def _get_min_max_value(min, max, value=None, step=None):
46 def _get_min_max_value(min, max, value=None, step=None):
47 """Return min, max, value given input values with possible None."""
47 """Return min, max, value given input values with possible None."""
48 if value is None:
48 if value is None:
49 if not max > min:
49 if not max > min:
50 raise ValueError('max must be greater than min: (min={0}, max={1})'.format(min, max))
50 raise ValueError('max must be greater than min: (min={0}, max={1})'.format(min, max))
51 value = min + abs(min-max)/2
51 value = min + abs(min-max)/2
52 value = type(min)(value)
52 value = type(min)(value)
53 elif min is None and max is None:
53 elif min is None and max is None:
54 if value == 0.0:
54 if value == 0.0:
55 min, max, value = 0.0, 1.0, 0.5
55 min, max, value = 0.0, 1.0, 0.5
56 elif value == 0:
56 elif value == 0:
57 min, max, value = 0, 1, 0
57 min, max, value = 0, 1, 0
58 elif isinstance(value, (int, float)):
58 elif isinstance(value, (int, float)):
59 min, max = (-value, 3*value) if value > 0 else (3*value, -value)
59 min, max = (-value, 3*value) if value > 0 else (3*value, -value)
60 else:
60 else:
61 raise TypeError('expected a number, got: %r' % value)
61 raise TypeError('expected a number, got: %r' % value)
62 else:
62 else:
63 raise ValueError('unable to infer range, value from: ({0}, {1}, {2})'.format(min, max, value))
63 raise ValueError('unable to infer range, value from: ({0}, {1}, {2})'.format(min, max, value))
64 if step is not None:
64 if step is not None:
65 # ensure value is on a step
65 # ensure value is on a step
66 r = (value - min) % step
66 r = (value - min) % step
67 value = value - r
67 value = value - r
68 return min, max, value
68 return min, max, value
69
69
70 def _widget_abbrev_single_value(o):
70 def _widget_abbrev_single_value(o):
71 """Make widgets from single values, which can be used as parameter defaults."""
71 """Make widgets from single values, which can be used as parameter defaults."""
72 if isinstance(o, string_types):
72 if isinstance(o, string_types):
73 return TextWidget(value=unicode_type(o))
73 return Text(value=unicode_type(o))
74 elif isinstance(o, dict):
74 elif isinstance(o, dict):
75 return DropdownWidget(values=o)
75 return Dropdown(values=o)
76 elif isinstance(o, bool):
76 elif isinstance(o, bool):
77 return CheckboxWidget(value=o)
77 return Checkbox(value=o)
78 elif isinstance(o, float):
78 elif isinstance(o, float):
79 min, max, value = _get_min_max_value(None, None, o)
79 min, max, value = _get_min_max_value(None, None, o)
80 return FloatSliderWidget(value=o, min=min, max=max)
80 return FloatSlider(value=o, min=min, max=max)
81 elif isinstance(o, int):
81 elif isinstance(o, int):
82 min, max, value = _get_min_max_value(None, None, o)
82 min, max, value = _get_min_max_value(None, None, o)
83 return IntSliderWidget(value=o, min=min, max=max)
83 return IntSlider(value=o, min=min, max=max)
84 else:
84 else:
85 return None
85 return None
86
86
87 def _widget_abbrev(o):
87 def _widget_abbrev(o):
88 """Make widgets from abbreviations: single values, lists or tuples."""
88 """Make widgets from abbreviations: single values, lists or tuples."""
89 float_or_int = (float, int)
89 float_or_int = (float, int)
90 if isinstance(o, (list, tuple)):
90 if isinstance(o, (list, tuple)):
91 if o and all(isinstance(x, string_types) for x in o):
91 if o and all(isinstance(x, string_types) for x in o):
92 return DropdownWidget(values=[unicode_type(k) for k in o])
92 return Dropdown(values=[unicode_type(k) for k in o])
93 elif _matches(o, (float_or_int, float_or_int)):
93 elif _matches(o, (float_or_int, float_or_int)):
94 min, max, value = _get_min_max_value(o[0], o[1])
94 min, max, value = _get_min_max_value(o[0], o[1])
95 if all(isinstance(_, int) for _ in o):
95 if all(isinstance(_, int) for _ in o):
96 cls = IntSliderWidget
96 cls = IntSlider
97 else:
97 else:
98 cls = FloatSliderWidget
98 cls = FloatSlider
99 return cls(value=value, min=min, max=max)
99 return cls(value=value, min=min, max=max)
100 elif _matches(o, (float_or_int, float_or_int, float_or_int)):
100 elif _matches(o, (float_or_int, float_or_int, float_or_int)):
101 step = o[2]
101 step = o[2]
102 if step <= 0:
102 if step <= 0:
103 raise ValueError("step must be >= 0, not %r" % step)
103 raise ValueError("step must be >= 0, not %r" % step)
104 min, max, value = _get_min_max_value(o[0], o[1], step=step)
104 min, max, value = _get_min_max_value(o[0], o[1], step=step)
105 if all(isinstance(_, int) for _ in o):
105 if all(isinstance(_, int) for _ in o):
106 cls = IntSliderWidget
106 cls = IntSlider
107 else:
107 else:
108 cls = FloatSliderWidget
108 cls = FloatSlider
109 return cls(value=value, min=min, max=max, step=step)
109 return cls(value=value, min=min, max=max, step=step)
110 else:
110 else:
111 return _widget_abbrev_single_value(o)
111 return _widget_abbrev_single_value(o)
112
112
113 def _widget_from_abbrev(abbrev, default=empty):
113 def _widget_from_abbrev(abbrev, default=empty):
114 """Build a Widget instance given an abbreviation or Widget."""
114 """Build a Widget instance given an abbreviation or Widget."""
115 if isinstance(abbrev, Widget) or isinstance(abbrev, fixed):
115 if isinstance(abbrev, Widget) or isinstance(abbrev, fixed):
116 return abbrev
116 return abbrev
117
117
118 widget = _widget_abbrev(abbrev)
118 widget = _widget_abbrev(abbrev)
119 if default is not empty and isinstance(abbrev, (list, tuple, dict)):
119 if default is not empty and isinstance(abbrev, (list, tuple, dict)):
120 # if it's not a single-value abbreviation,
120 # if it's not a single-value abbreviation,
121 # set the initial value from the default
121 # set the initial value from the default
122 try:
122 try:
123 widget.value = default
123 widget.value = default
124 except Exception:
124 except Exception:
125 # ignore failure to set default
125 # ignore failure to set default
126 pass
126 pass
127 if widget is None:
127 if widget is None:
128 raise ValueError("%r cannot be transformed to a Widget" % (abbrev,))
128 raise ValueError("%r cannot be transformed to a Widget" % (abbrev,))
129 return widget
129 return widget
130
130
131 def _yield_abbreviations_for_parameter(param, kwargs):
131 def _yield_abbreviations_for_parameter(param, kwargs):
132 """Get an abbreviation for a function parameter."""
132 """Get an abbreviation for a function parameter."""
133 name = param.name
133 name = param.name
134 kind = param.kind
134 kind = param.kind
135 ann = param.annotation
135 ann = param.annotation
136 default = param.default
136 default = param.default
137 not_found = (name, empty, empty)
137 not_found = (name, empty, empty)
138 if kind in (Parameter.POSITIONAL_OR_KEYWORD, Parameter.KEYWORD_ONLY):
138 if kind in (Parameter.POSITIONAL_OR_KEYWORD, Parameter.KEYWORD_ONLY):
139 if name in kwargs:
139 if name in kwargs:
140 value = kwargs.pop(name)
140 value = kwargs.pop(name)
141 elif ann is not empty:
141 elif ann is not empty:
142 value = ann
142 value = ann
143 elif default is not empty:
143 elif default is not empty:
144 value = default
144 value = default
145 else:
145 else:
146 yield not_found
146 yield not_found
147 yield (name, value, default)
147 yield (name, value, default)
148 elif kind == Parameter.VAR_KEYWORD:
148 elif kind == Parameter.VAR_KEYWORD:
149 # In this case name=kwargs and we yield the items in kwargs with their keys.
149 # In this case name=kwargs and we yield the items in kwargs with their keys.
150 for k, v in kwargs.copy().items():
150 for k, v in kwargs.copy().items():
151 kwargs.pop(k)
151 kwargs.pop(k)
152 yield k, v, empty
152 yield k, v, empty
153
153
154 def _find_abbreviations(f, kwargs):
154 def _find_abbreviations(f, kwargs):
155 """Find the abbreviations for a function and kwargs passed to interact."""
155 """Find the abbreviations for a function and kwargs passed to interact."""
156 new_kwargs = []
156 new_kwargs = []
157 for param in signature(f).parameters.values():
157 for param in signature(f).parameters.values():
158 for name, value, default in _yield_abbreviations_for_parameter(param, kwargs):
158 for name, value, default in _yield_abbreviations_for_parameter(param, kwargs):
159 if value is empty:
159 if value is empty:
160 raise ValueError('cannot find widget or abbreviation for argument: {!r}'.format(name))
160 raise ValueError('cannot find widget or abbreviation for argument: {!r}'.format(name))
161 new_kwargs.append((name, value, default))
161 new_kwargs.append((name, value, default))
162 return new_kwargs
162 return new_kwargs
163
163
164 def _widgets_from_abbreviations(seq):
164 def _widgets_from_abbreviations(seq):
165 """Given a sequence of (name, abbrev) tuples, return a sequence of Widgets."""
165 """Given a sequence of (name, abbrev) tuples, return a sequence of Widgets."""
166 result = []
166 result = []
167 for name, abbrev, default in seq:
167 for name, abbrev, default in seq:
168 widget = _widget_from_abbrev(abbrev, default)
168 widget = _widget_from_abbrev(abbrev, default)
169 if not widget.description:
169 if not widget.description:
170 widget.description = name
170 widget.description = name
171 result.append(widget)
171 result.append(widget)
172 return result
172 return result
173
173
174 def interactive(__interact_f, **kwargs):
174 def interactive(__interact_f, **kwargs):
175 """Build a group of widgets to interact with a function."""
175 """Build a group of widgets to interact with a function."""
176 f = __interact_f
176 f = __interact_f
177 co = kwargs.pop('clear_output', True)
177 co = kwargs.pop('clear_output', True)
178 kwargs_widgets = []
178 kwargs_widgets = []
179 container = ContainerWidget()
179 container = Box()
180 container.result = None
180 container.result = None
181 container.args = []
181 container.args = []
182 container.kwargs = dict()
182 container.kwargs = dict()
183 kwargs = kwargs.copy()
183 kwargs = kwargs.copy()
184
184
185 new_kwargs = _find_abbreviations(f, kwargs)
185 new_kwargs = _find_abbreviations(f, kwargs)
186 # Before we proceed, let's make sure that the user has passed a set of args+kwargs
186 # Before we proceed, let's make sure that the user has passed a set of args+kwargs
187 # that will lead to a valid call of the function. This protects against unspecified
187 # that will lead to a valid call of the function. This protects against unspecified
188 # and doubly-specified arguments.
188 # and doubly-specified arguments.
189 getcallargs(f, **{n:v for n,v,_ in new_kwargs})
189 getcallargs(f, **{n:v for n,v,_ in new_kwargs})
190 # Now build the widgets from the abbreviations.
190 # Now build the widgets from the abbreviations.
191 kwargs_widgets.extend(_widgets_from_abbreviations(new_kwargs))
191 kwargs_widgets.extend(_widgets_from_abbreviations(new_kwargs))
192
192
193 # This has to be done as an assignment, not using container.children.append,
193 # This has to be done as an assignment, not using container.children.append,
194 # so that traitlets notices the update. We skip any objects (such as fixed) that
194 # so that traitlets notices the update. We skip any objects (such as fixed) that
195 # are not DOMWidgets.
195 # are not DOMWidgets.
196 c = [w for w in kwargs_widgets if isinstance(w, DOMWidget)]
196 c = [w for w in kwargs_widgets if isinstance(w, DOMWidget)]
197 container.children = c
197 container.children = c
198
198
199 # Build the callback
199 # Build the callback
200 def call_f(name, old, new):
200 def call_f(name, old, new):
201 container.kwargs = {}
201 container.kwargs = {}
202 for widget in kwargs_widgets:
202 for widget in kwargs_widgets:
203 value = widget.value
203 value = widget.value
204 container.kwargs[widget.description] = value
204 container.kwargs[widget.description] = value
205 if co:
205 if co:
206 clear_output(wait=True)
206 clear_output(wait=True)
207 try:
207 try:
208 container.result = f(**container.kwargs)
208 container.result = f(**container.kwargs)
209 except Exception as e:
209 except Exception as e:
210 ip = get_ipython()
210 ip = get_ipython()
211 if ip is None:
211 if ip is None:
212 container.log.warn("Exception in interact callback: %s", e, exc_info=True)
212 container.log.warn("Exception in interact callback: %s", e, exc_info=True)
213 else:
213 else:
214 ip.showtraceback()
214 ip.showtraceback()
215
215
216 # Wire up the widgets
216 # Wire up the widgets
217 for widget in kwargs_widgets:
217 for widget in kwargs_widgets:
218 widget.on_trait_change(call_f, 'value')
218 widget.on_trait_change(call_f, 'value')
219
219
220 container.on_displayed(lambda _: call_f(None, None, None))
220 container.on_displayed(lambda _: call_f(None, None, None))
221
221
222 return container
222 return container
223
223
224 def interact(__interact_f=None, **kwargs):
224 def interact(__interact_f=None, **kwargs):
225 """interact(f, **kwargs)
225 """interact(f, **kwargs)
226
226
227 Interact with a function using widgets."""
227 Interact with a function using widgets."""
228 # positional arg support in: https://gist.github.com/8851331
228 # positional arg support in: https://gist.github.com/8851331
229 if __interact_f is not None:
229 if __interact_f is not None:
230 # This branch handles the cases:
230 # This branch handles the cases:
231 # 1. interact(f, **kwargs)
231 # 1. interact(f, **kwargs)
232 # 2. @interact
232 # 2. @interact
233 # def f(*args, **kwargs):
233 # def f(*args, **kwargs):
234 # ...
234 # ...
235 f = __interact_f
235 f = __interact_f
236 w = interactive(f, **kwargs)
236 w = interactive(f, **kwargs)
237 f.widget = w
237 f.widget = w
238 display(w)
238 display(w)
239 return f
239 return f
240 else:
240 else:
241 # This branch handles the case:
241 # This branch handles the case:
242 # @interact(a=30, b=40)
242 # @interact(a=30, b=40)
243 # def f(*args, **kwargs):
243 # def f(*args, **kwargs):
244 # ...
244 # ...
245 def dec(f):
245 def dec(f):
246 w = interactive(f, **kwargs)
246 w = interactive(f, **kwargs)
247 f.widget = w
247 f.widget = w
248 display(w)
248 display(w)
249 return f
249 return f
250 return dec
250 return dec
251
251
252 class fixed(HasTraits):
252 class fixed(HasTraits):
253 """A pseudo-widget whose value is fixed and never synced to the client."""
253 """A pseudo-widget whose value is fixed and never synced to the client."""
254 value = Any(help="Any Python object")
254 value = Any(help="Any Python object")
255 description = Unicode('', help="Any Python object")
255 description = Unicode('', help="Any Python object")
256 def __init__(self, value, **kwargs):
256 def __init__(self, value, **kwargs):
257 super(fixed, self).__init__(value=value, **kwargs)
257 super(fixed, self).__init__(value=value, **kwargs)
@@ -1,482 +1,482 b''
1 """Test interact and interactive."""
1 """Test interact and interactive."""
2
2
3 #-----------------------------------------------------------------------------
3 #-----------------------------------------------------------------------------
4 # Copyright (C) 2014 The IPython Development Team
4 # Copyright (C) 2014 The IPython Development Team
5 #
5 #
6 # Distributed under the terms of the BSD License. The full license is in
6 # Distributed under the terms of the BSD License. The full license is in
7 # the file COPYING, distributed as part of this software.
7 # the file COPYING, distributed as part of this software.
8 #-----------------------------------------------------------------------------
8 #-----------------------------------------------------------------------------
9
9
10 #-----------------------------------------------------------------------------
10 #-----------------------------------------------------------------------------
11 # Imports
11 # Imports
12 #-----------------------------------------------------------------------------
12 #-----------------------------------------------------------------------------
13
13
14 from __future__ import print_function
14 from __future__ import print_function
15
15
16 from collections import OrderedDict
16 from collections import OrderedDict
17
17
18 import nose.tools as nt
18 import nose.tools as nt
19 import IPython.testing.tools as tt
19 import IPython.testing.tools as tt
20
20
21 # from IPython.core.getipython import get_ipython
21 # from IPython.core.getipython import get_ipython
22 from IPython.html import widgets
22 from IPython.html import widgets
23 from IPython.html.widgets import interact, interactive, Widget, interaction
23 from IPython.html.widgets import interact, interactive, Widget, interaction
24 from IPython.utils.py3compat import annotate
24 from IPython.utils.py3compat import annotate
25
25
26 #-----------------------------------------------------------------------------
26 #-----------------------------------------------------------------------------
27 # Utility stuff
27 # Utility stuff
28 #-----------------------------------------------------------------------------
28 #-----------------------------------------------------------------------------
29
29
30 class DummyComm(object):
30 class DummyComm(object):
31 comm_id = 'a-b-c-d'
31 comm_id = 'a-b-c-d'
32 def send(self, *args, **kwargs):
32 def send(self, *args, **kwargs):
33 pass
33 pass
34
34
35 def close(self, *args, **kwargs):
35 def close(self, *args, **kwargs):
36 pass
36 pass
37
37
38 _widget_attrs = {}
38 _widget_attrs = {}
39 displayed = []
39 displayed = []
40
40
41 def setup():
41 def setup():
42 _widget_attrs['comm'] = Widget.comm
42 _widget_attrs['comm'] = Widget.comm
43 Widget.comm = DummyComm()
43 Widget.comm = DummyComm()
44 _widget_attrs['_ipython_display_'] = Widget._ipython_display_
44 _widget_attrs['_ipython_display_'] = Widget._ipython_display_
45 def raise_not_implemented(*args, **kwargs):
45 def raise_not_implemented(*args, **kwargs):
46 raise NotImplementedError()
46 raise NotImplementedError()
47 Widget._ipython_display_ = raise_not_implemented
47 Widget._ipython_display_ = raise_not_implemented
48
48
49 def teardown():
49 def teardown():
50 for attr, value in _widget_attrs.items():
50 for attr, value in _widget_attrs.items():
51 setattr(Widget, attr, value)
51 setattr(Widget, attr, value)
52
52
53 def f(**kwargs):
53 def f(**kwargs):
54 pass
54 pass
55
55
56 def clear_display():
56 def clear_display():
57 global displayed
57 global displayed
58 displayed = []
58 displayed = []
59
59
60 def record_display(*args):
60 def record_display(*args):
61 displayed.extend(args)
61 displayed.extend(args)
62
62
63 #-----------------------------------------------------------------------------
63 #-----------------------------------------------------------------------------
64 # Actual tests
64 # Actual tests
65 #-----------------------------------------------------------------------------
65 #-----------------------------------------------------------------------------
66
66
67 def check_widget(w, **d):
67 def check_widget(w, **d):
68 """Check a single widget against a dict"""
68 """Check a single widget against a dict"""
69 for attr, expected in d.items():
69 for attr, expected in d.items():
70 if attr == 'cls':
70 if attr == 'cls':
71 nt.assert_is(w.__class__, expected)
71 nt.assert_is(w.__class__, expected)
72 else:
72 else:
73 value = getattr(w, attr)
73 value = getattr(w, attr)
74 nt.assert_equal(value, expected,
74 nt.assert_equal(value, expected,
75 "%s.%s = %r != %r" % (w.__class__.__name__, attr, value, expected)
75 "%s.%s = %r != %r" % (w.__class__.__name__, attr, value, expected)
76 )
76 )
77
77
78 def check_widgets(container, **to_check):
78 def check_widgets(container, **to_check):
79 """Check that widgets are created as expected"""
79 """Check that widgets are created as expected"""
80 # build a widget dictionary, so it matches
80 # build a widget dictionary, so it matches
81 widgets = {}
81 widgets = {}
82 for w in container.children:
82 for w in container.children:
83 widgets[w.description] = w
83 widgets[w.description] = w
84
84
85 for key, d in to_check.items():
85 for key, d in to_check.items():
86 nt.assert_in(key, widgets)
86 nt.assert_in(key, widgets)
87 check_widget(widgets[key], **d)
87 check_widget(widgets[key], **d)
88
88
89
89
90 def test_single_value_string():
90 def test_single_value_string():
91 a = u'hello'
91 a = u'hello'
92 c = interactive(f, a=a)
92 c = interactive(f, a=a)
93 w = c.children[0]
93 w = c.children[0]
94 check_widget(w,
94 check_widget(w,
95 cls=widgets.TextWidget,
95 cls=widgets.Text,
96 description='a',
96 description='a',
97 value=a,
97 value=a,
98 )
98 )
99
99
100 def test_single_value_bool():
100 def test_single_value_bool():
101 for a in (True, False):
101 for a in (True, False):
102 c = interactive(f, a=a)
102 c = interactive(f, a=a)
103 w = c.children[0]
103 w = c.children[0]
104 check_widget(w,
104 check_widget(w,
105 cls=widgets.CheckboxWidget,
105 cls=widgets.Checkbox,
106 description='a',
106 description='a',
107 value=a,
107 value=a,
108 )
108 )
109
109
110 def test_single_value_dict():
110 def test_single_value_dict():
111 for d in [
111 for d in [
112 dict(a=5),
112 dict(a=5),
113 dict(a=5, b='b', c=dict),
113 dict(a=5, b='b', c=dict),
114 ]:
114 ]:
115 c = interactive(f, d=d)
115 c = interactive(f, d=d)
116 w = c.children[0]
116 w = c.children[0]
117 check_widget(w,
117 check_widget(w,
118 cls=widgets.DropdownWidget,
118 cls=widgets.Dropdown,
119 description='d',
119 description='d',
120 values=d,
120 values=d,
121 value=next(iter(d.values())),
121 value=next(iter(d.values())),
122 )
122 )
123
123
124 def test_single_value_float():
124 def test_single_value_float():
125 for a in (2.25, 1.0, -3.5):
125 for a in (2.25, 1.0, -3.5):
126 c = interactive(f, a=a)
126 c = interactive(f, a=a)
127 w = c.children[0]
127 w = c.children[0]
128 check_widget(w,
128 check_widget(w,
129 cls=widgets.FloatSliderWidget,
129 cls=widgets.FloatSlider,
130 description='a',
130 description='a',
131 value=a,
131 value=a,
132 min= -a if a > 0 else 3*a,
132 min= -a if a > 0 else 3*a,
133 max= 3*a if a > 0 else -a,
133 max= 3*a if a > 0 else -a,
134 step=0.1,
134 step=0.1,
135 readout=True,
135 readout=True,
136 )
136 )
137
137
138 def test_single_value_int():
138 def test_single_value_int():
139 for a in (1, 5, -3):
139 for a in (1, 5, -3):
140 c = interactive(f, a=a)
140 c = interactive(f, a=a)
141 nt.assert_equal(len(c.children), 1)
141 nt.assert_equal(len(c.children), 1)
142 w = c.children[0]
142 w = c.children[0]
143 check_widget(w,
143 check_widget(w,
144 cls=widgets.IntSliderWidget,
144 cls=widgets.IntSlider,
145 description='a',
145 description='a',
146 value=a,
146 value=a,
147 min= -a if a > 0 else 3*a,
147 min= -a if a > 0 else 3*a,
148 max= 3*a if a > 0 else -a,
148 max= 3*a if a > 0 else -a,
149 step=1,
149 step=1,
150 readout=True,
150 readout=True,
151 )
151 )
152
152
153 def test_list_tuple_2_int():
153 def test_list_tuple_2_int():
154 with nt.assert_raises(ValueError):
154 with nt.assert_raises(ValueError):
155 c = interactive(f, tup=(1,1))
155 c = interactive(f, tup=(1,1))
156 with nt.assert_raises(ValueError):
156 with nt.assert_raises(ValueError):
157 c = interactive(f, tup=(1,-1))
157 c = interactive(f, tup=(1,-1))
158 for min, max in [ (0,1), (1,10), (1,2), (-5,5), (-20,-19) ]:
158 for min, max in [ (0,1), (1,10), (1,2), (-5,5), (-20,-19) ]:
159 c = interactive(f, tup=(min, max), lis=[min, max])
159 c = interactive(f, tup=(min, max), lis=[min, max])
160 nt.assert_equal(len(c.children), 2)
160 nt.assert_equal(len(c.children), 2)
161 d = dict(
161 d = dict(
162 cls=widgets.IntSliderWidget,
162 cls=widgets.IntSlider,
163 min=min,
163 min=min,
164 max=max,
164 max=max,
165 step=1,
165 step=1,
166 readout=True,
166 readout=True,
167 )
167 )
168 check_widgets(c, tup=d, lis=d)
168 check_widgets(c, tup=d, lis=d)
169
169
170 def test_list_tuple_3_int():
170 def test_list_tuple_3_int():
171 with nt.assert_raises(ValueError):
171 with nt.assert_raises(ValueError):
172 c = interactive(f, tup=(1,2,0))
172 c = interactive(f, tup=(1,2,0))
173 with nt.assert_raises(ValueError):
173 with nt.assert_raises(ValueError):
174 c = interactive(f, tup=(1,2,-1))
174 c = interactive(f, tup=(1,2,-1))
175 for min, max, step in [ (0,2,1), (1,10,2), (1,100,2), (-5,5,4), (-100,-20,4) ]:
175 for min, max, step in [ (0,2,1), (1,10,2), (1,100,2), (-5,5,4), (-100,-20,4) ]:
176 c = interactive(f, tup=(min, max, step), lis=[min, max, step])
176 c = interactive(f, tup=(min, max, step), lis=[min, max, step])
177 nt.assert_equal(len(c.children), 2)
177 nt.assert_equal(len(c.children), 2)
178 d = dict(
178 d = dict(
179 cls=widgets.IntSliderWidget,
179 cls=widgets.IntSlider,
180 min=min,
180 min=min,
181 max=max,
181 max=max,
182 step=step,
182 step=step,
183 readout=True,
183 readout=True,
184 )
184 )
185 check_widgets(c, tup=d, lis=d)
185 check_widgets(c, tup=d, lis=d)
186
186
187 def test_list_tuple_2_float():
187 def test_list_tuple_2_float():
188 with nt.assert_raises(ValueError):
188 with nt.assert_raises(ValueError):
189 c = interactive(f, tup=(1.0,1.0))
189 c = interactive(f, tup=(1.0,1.0))
190 with nt.assert_raises(ValueError):
190 with nt.assert_raises(ValueError):
191 c = interactive(f, tup=(0.5,-0.5))
191 c = interactive(f, tup=(0.5,-0.5))
192 for min, max in [ (0.5, 1.5), (1.1,10.2), (1,2.2), (-5.,5), (-20,-19.) ]:
192 for min, max in [ (0.5, 1.5), (1.1,10.2), (1,2.2), (-5.,5), (-20,-19.) ]:
193 c = interactive(f, tup=(min, max), lis=[min, max])
193 c = interactive(f, tup=(min, max), lis=[min, max])
194 nt.assert_equal(len(c.children), 2)
194 nt.assert_equal(len(c.children), 2)
195 d = dict(
195 d = dict(
196 cls=widgets.FloatSliderWidget,
196 cls=widgets.FloatSlider,
197 min=min,
197 min=min,
198 max=max,
198 max=max,
199 step=.1,
199 step=.1,
200 readout=True,
200 readout=True,
201 )
201 )
202 check_widgets(c, tup=d, lis=d)
202 check_widgets(c, tup=d, lis=d)
203
203
204 def test_list_tuple_3_float():
204 def test_list_tuple_3_float():
205 with nt.assert_raises(ValueError):
205 with nt.assert_raises(ValueError):
206 c = interactive(f, tup=(1,2,0.0))
206 c = interactive(f, tup=(1,2,0.0))
207 with nt.assert_raises(ValueError):
207 with nt.assert_raises(ValueError):
208 c = interactive(f, tup=(-1,-2,1.))
208 c = interactive(f, tup=(-1,-2,1.))
209 with nt.assert_raises(ValueError):
209 with nt.assert_raises(ValueError):
210 c = interactive(f, tup=(1,2.,-1.))
210 c = interactive(f, tup=(1,2.,-1.))
211 for min, max, step in [ (0.,2,1), (1,10.,2), (1,100,2.), (-5.,5.,4), (-100,-20.,4.) ]:
211 for min, max, step in [ (0.,2,1), (1,10.,2), (1,100,2.), (-5.,5.,4), (-100,-20.,4.) ]:
212 c = interactive(f, tup=(min, max, step), lis=[min, max, step])
212 c = interactive(f, tup=(min, max, step), lis=[min, max, step])
213 nt.assert_equal(len(c.children), 2)
213 nt.assert_equal(len(c.children), 2)
214 d = dict(
214 d = dict(
215 cls=widgets.FloatSliderWidget,
215 cls=widgets.FloatSlider,
216 min=min,
216 min=min,
217 max=max,
217 max=max,
218 step=step,
218 step=step,
219 readout=True,
219 readout=True,
220 )
220 )
221 check_widgets(c, tup=d, lis=d)
221 check_widgets(c, tup=d, lis=d)
222
222
223 def test_list_tuple_str():
223 def test_list_tuple_str():
224 values = ['hello', 'there', 'guy']
224 values = ['hello', 'there', 'guy']
225 first = values[0]
225 first = values[0]
226 dvalues = OrderedDict((v,v) for v in values)
226 dvalues = OrderedDict((v,v) for v in values)
227 c = interactive(f, tup=tuple(values), lis=list(values))
227 c = interactive(f, tup=tuple(values), lis=list(values))
228 nt.assert_equal(len(c.children), 2)
228 nt.assert_equal(len(c.children), 2)
229 d = dict(
229 d = dict(
230 cls=widgets.DropdownWidget,
230 cls=widgets.Dropdown,
231 value=first,
231 value=first,
232 values=dvalues
232 values=dvalues
233 )
233 )
234 check_widgets(c, tup=d, lis=d)
234 check_widgets(c, tup=d, lis=d)
235
235
236 def test_list_tuple_invalid():
236 def test_list_tuple_invalid():
237 for bad in [
237 for bad in [
238 (),
238 (),
239 (5, 'hi'),
239 (5, 'hi'),
240 ('hi', 5),
240 ('hi', 5),
241 ({},),
241 ({},),
242 (None,),
242 (None,),
243 ]:
243 ]:
244 with nt.assert_raises(ValueError):
244 with nt.assert_raises(ValueError):
245 print(bad) # because there is no custom message in assert_raises
245 print(bad) # because there is no custom message in assert_raises
246 c = interactive(f, tup=bad)
246 c = interactive(f, tup=bad)
247
247
248 def test_defaults():
248 def test_defaults():
249 @annotate(n=10)
249 @annotate(n=10)
250 def f(n, f=4.5, g=1):
250 def f(n, f=4.5, g=1):
251 pass
251 pass
252
252
253 c = interactive(f)
253 c = interactive(f)
254 check_widgets(c,
254 check_widgets(c,
255 n=dict(
255 n=dict(
256 cls=widgets.IntSliderWidget,
256 cls=widgets.IntSlider,
257 value=10,
257 value=10,
258 ),
258 ),
259 f=dict(
259 f=dict(
260 cls=widgets.FloatSliderWidget,
260 cls=widgets.FloatSlider,
261 value=4.5,
261 value=4.5,
262 ),
262 ),
263 g=dict(
263 g=dict(
264 cls=widgets.IntSliderWidget,
264 cls=widgets.IntSlider,
265 value=1,
265 value=1,
266 ),
266 ),
267 )
267 )
268
268
269 def test_default_values():
269 def test_default_values():
270 @annotate(n=10, f=(0, 10.), g=5, h={'a': 1, 'b': 2}, j=['hi', 'there'])
270 @annotate(n=10, f=(0, 10.), g=5, h={'a': 1, 'b': 2}, j=['hi', 'there'])
271 def f(n, f=4.5, g=1, h=2, j='there'):
271 def f(n, f=4.5, g=1, h=2, j='there'):
272 pass
272 pass
273
273
274 c = interactive(f)
274 c = interactive(f)
275 check_widgets(c,
275 check_widgets(c,
276 n=dict(
276 n=dict(
277 cls=widgets.IntSliderWidget,
277 cls=widgets.IntSlider,
278 value=10,
278 value=10,
279 ),
279 ),
280 f=dict(
280 f=dict(
281 cls=widgets.FloatSliderWidget,
281 cls=widgets.FloatSlider,
282 value=4.5,
282 value=4.5,
283 ),
283 ),
284 g=dict(
284 g=dict(
285 cls=widgets.IntSliderWidget,
285 cls=widgets.IntSlider,
286 value=5,
286 value=5,
287 ),
287 ),
288 h=dict(
288 h=dict(
289 cls=widgets.DropdownWidget,
289 cls=widgets.Dropdown,
290 values={'a': 1, 'b': 2},
290 values={'a': 1, 'b': 2},
291 value=2
291 value=2
292 ),
292 ),
293 j=dict(
293 j=dict(
294 cls=widgets.DropdownWidget,
294 cls=widgets.Dropdown,
295 values={'hi':'hi', 'there':'there'},
295 values={'hi':'hi', 'there':'there'},
296 value='there'
296 value='there'
297 ),
297 ),
298 )
298 )
299
299
300 def test_default_out_of_bounds():
300 def test_default_out_of_bounds():
301 @annotate(f=(0, 10.), h={'a': 1}, j=['hi', 'there'])
301 @annotate(f=(0, 10.), h={'a': 1}, j=['hi', 'there'])
302 def f(f='hi', h=5, j='other'):
302 def f(f='hi', h=5, j='other'):
303 pass
303 pass
304
304
305 c = interactive(f)
305 c = interactive(f)
306 check_widgets(c,
306 check_widgets(c,
307 f=dict(
307 f=dict(
308 cls=widgets.FloatSliderWidget,
308 cls=widgets.FloatSlider,
309 value=5.,
309 value=5.,
310 ),
310 ),
311 h=dict(
311 h=dict(
312 cls=widgets.DropdownWidget,
312 cls=widgets.Dropdown,
313 values={'a': 1},
313 values={'a': 1},
314 value=1,
314 value=1,
315 ),
315 ),
316 j=dict(
316 j=dict(
317 cls=widgets.DropdownWidget,
317 cls=widgets.Dropdown,
318 values={'hi':'hi', 'there':'there'},
318 values={'hi':'hi', 'there':'there'},
319 value='hi',
319 value='hi',
320 ),
320 ),
321 )
321 )
322
322
323 def test_annotations():
323 def test_annotations():
324 @annotate(n=10, f=widgets.FloatTextWidget())
324 @annotate(n=10, f=widgets.FloatText())
325 def f(n, f):
325 def f(n, f):
326 pass
326 pass
327
327
328 c = interactive(f)
328 c = interactive(f)
329 check_widgets(c,
329 check_widgets(c,
330 n=dict(
330 n=dict(
331 cls=widgets.IntSliderWidget,
331 cls=widgets.IntSlider,
332 value=10,
332 value=10,
333 ),
333 ),
334 f=dict(
334 f=dict(
335 cls=widgets.FloatTextWidget,
335 cls=widgets.FloatText,
336 ),
336 ),
337 )
337 )
338
338
339 def test_priority():
339 def test_priority():
340 @annotate(annotate='annotate', kwarg='annotate')
340 @annotate(annotate='annotate', kwarg='annotate')
341 def f(kwarg='default', annotate='default', default='default'):
341 def f(kwarg='default', annotate='default', default='default'):
342 pass
342 pass
343
343
344 c = interactive(f, kwarg='kwarg')
344 c = interactive(f, kwarg='kwarg')
345 check_widgets(c,
345 check_widgets(c,
346 kwarg=dict(
346 kwarg=dict(
347 cls=widgets.TextWidget,
347 cls=widgets.Text,
348 value='kwarg',
348 value='kwarg',
349 ),
349 ),
350 annotate=dict(
350 annotate=dict(
351 cls=widgets.TextWidget,
351 cls=widgets.Text,
352 value='annotate',
352 value='annotate',
353 ),
353 ),
354 )
354 )
355
355
356 @nt.with_setup(clear_display)
356 @nt.with_setup(clear_display)
357 def test_decorator_kwarg():
357 def test_decorator_kwarg():
358 with tt.monkeypatch(interaction, 'display', record_display):
358 with tt.monkeypatch(interaction, 'display', record_display):
359 @interact(a=5)
359 @interact(a=5)
360 def foo(a):
360 def foo(a):
361 pass
361 pass
362 nt.assert_equal(len(displayed), 1)
362 nt.assert_equal(len(displayed), 1)
363 w = displayed[0].children[0]
363 w = displayed[0].children[0]
364 check_widget(w,
364 check_widget(w,
365 cls=widgets.IntSliderWidget,
365 cls=widgets.IntSlider,
366 value=5,
366 value=5,
367 )
367 )
368
368
369 @nt.with_setup(clear_display)
369 @nt.with_setup(clear_display)
370 def test_decorator_no_call():
370 def test_decorator_no_call():
371 with tt.monkeypatch(interaction, 'display', record_display):
371 with tt.monkeypatch(interaction, 'display', record_display):
372 @interact
372 @interact
373 def foo(a='default'):
373 def foo(a='default'):
374 pass
374 pass
375 nt.assert_equal(len(displayed), 1)
375 nt.assert_equal(len(displayed), 1)
376 w = displayed[0].children[0]
376 w = displayed[0].children[0]
377 check_widget(w,
377 check_widget(w,
378 cls=widgets.TextWidget,
378 cls=widgets.Text,
379 value='default',
379 value='default',
380 )
380 )
381
381
382 @nt.with_setup(clear_display)
382 @nt.with_setup(clear_display)
383 def test_call_interact():
383 def test_call_interact():
384 def foo(a='default'):
384 def foo(a='default'):
385 pass
385 pass
386 with tt.monkeypatch(interaction, 'display', record_display):
386 with tt.monkeypatch(interaction, 'display', record_display):
387 ifoo = interact(foo)
387 ifoo = interact(foo)
388 nt.assert_equal(len(displayed), 1)
388 nt.assert_equal(len(displayed), 1)
389 w = displayed[0].children[0]
389 w = displayed[0].children[0]
390 check_widget(w,
390 check_widget(w,
391 cls=widgets.TextWidget,
391 cls=widgets.Text,
392 value='default',
392 value='default',
393 )
393 )
394
394
395 @nt.with_setup(clear_display)
395 @nt.with_setup(clear_display)
396 def test_call_interact_kwargs():
396 def test_call_interact_kwargs():
397 def foo(a='default'):
397 def foo(a='default'):
398 pass
398 pass
399 with tt.monkeypatch(interaction, 'display', record_display):
399 with tt.monkeypatch(interaction, 'display', record_display):
400 ifoo = interact(foo, a=10)
400 ifoo = interact(foo, a=10)
401 nt.assert_equal(len(displayed), 1)
401 nt.assert_equal(len(displayed), 1)
402 w = displayed[0].children[0]
402 w = displayed[0].children[0]
403 check_widget(w,
403 check_widget(w,
404 cls=widgets.IntSliderWidget,
404 cls=widgets.IntSlider,
405 value=10,
405 value=10,
406 )
406 )
407
407
408 @nt.with_setup(clear_display)
408 @nt.with_setup(clear_display)
409 def test_call_decorated_on_trait_change():
409 def test_call_decorated_on_trait_change():
410 """test calling @interact decorated functions"""
410 """test calling @interact decorated functions"""
411 d = {}
411 d = {}
412 with tt.monkeypatch(interaction, 'display', record_display):
412 with tt.monkeypatch(interaction, 'display', record_display):
413 @interact
413 @interact
414 def foo(a='default'):
414 def foo(a='default'):
415 d['a'] = a
415 d['a'] = a
416 return a
416 return a
417 nt.assert_equal(len(displayed), 1)
417 nt.assert_equal(len(displayed), 1)
418 w = displayed[0].children[0]
418 w = displayed[0].children[0]
419 check_widget(w,
419 check_widget(w,
420 cls=widgets.TextWidget,
420 cls=widgets.Text,
421 value='default',
421 value='default',
422 )
422 )
423 # test calling the function directly
423 # test calling the function directly
424 a = foo('hello')
424 a = foo('hello')
425 nt.assert_equal(a, 'hello')
425 nt.assert_equal(a, 'hello')
426 nt.assert_equal(d['a'], 'hello')
426 nt.assert_equal(d['a'], 'hello')
427
427
428 # test that setting trait values calls the function
428 # test that setting trait values calls the function
429 w.value = 'called'
429 w.value = 'called'
430 nt.assert_equal(d['a'], 'called')
430 nt.assert_equal(d['a'], 'called')
431
431
432 @nt.with_setup(clear_display)
432 @nt.with_setup(clear_display)
433 def test_call_decorated_kwargs_on_trait_change():
433 def test_call_decorated_kwargs_on_trait_change():
434 """test calling @interact(foo=bar) decorated functions"""
434 """test calling @interact(foo=bar) decorated functions"""
435 d = {}
435 d = {}
436 with tt.monkeypatch(interaction, 'display', record_display):
436 with tt.monkeypatch(interaction, 'display', record_display):
437 @interact(a='kwarg')
437 @interact(a='kwarg')
438 def foo(a='default'):
438 def foo(a='default'):
439 d['a'] = a
439 d['a'] = a
440 return a
440 return a
441 nt.assert_equal(len(displayed), 1)
441 nt.assert_equal(len(displayed), 1)
442 w = displayed[0].children[0]
442 w = displayed[0].children[0]
443 check_widget(w,
443 check_widget(w,
444 cls=widgets.TextWidget,
444 cls=widgets.Text,
445 value='kwarg',
445 value='kwarg',
446 )
446 )
447 # test calling the function directly
447 # test calling the function directly
448 a = foo('hello')
448 a = foo('hello')
449 nt.assert_equal(a, 'hello')
449 nt.assert_equal(a, 'hello')
450 nt.assert_equal(d['a'], 'hello')
450 nt.assert_equal(d['a'], 'hello')
451
451
452 # test that setting trait values calls the function
452 # test that setting trait values calls the function
453 w.value = 'called'
453 w.value = 'called'
454 nt.assert_equal(d['a'], 'called')
454 nt.assert_equal(d['a'], 'called')
455
455
456 def test_fixed():
456 def test_fixed():
457 c = interactive(f, a=widgets.fixed(5), b='text')
457 c = interactive(f, a=widgets.fixed(5), b='text')
458 nt.assert_equal(len(c.children), 1)
458 nt.assert_equal(len(c.children), 1)
459 w = c.children[0]
459 w = c.children[0]
460 check_widget(w,
460 check_widget(w,
461 cls=widgets.TextWidget,
461 cls=widgets.Text,
462 value='text',
462 value='text',
463 description='b',
463 description='b',
464 )
464 )
465
465
466 def test_default_description():
466 def test_default_description():
467 c = interactive(f, b='text')
467 c = interactive(f, b='text')
468 w = c.children[0]
468 w = c.children[0]
469 check_widget(w,
469 check_widget(w,
470 cls=widgets.TextWidget,
470 cls=widgets.Text,
471 value='text',
471 value='text',
472 description='b',
472 description='b',
473 )
473 )
474
474
475 def test_custom_description():
475 def test_custom_description():
476 c = interactive(f, b=widgets.TextWidget(value='text', description='foo'))
476 c = interactive(f, b=widgets.Text(value='text', description='foo'))
477 w = c.children[0]
477 w = c.children[0]
478 check_widget(w,
478 check_widget(w,
479 cls=widgets.TextWidget,
479 cls=widgets.Text,
480 value='text',
480 value='text',
481 description='foo',
481 description='foo',
482 )
482 )
@@ -1,34 +1,43 b''
1 """BoolWidget class.
1 """Bool class.
2
2
3 Represents a boolean using a widget.
3 Represents a boolean using a widget.
4 """
4 """
5 #-----------------------------------------------------------------------------
5 #-----------------------------------------------------------------------------
6 # Copyright (c) 2013, the IPython Development Team.
6 # Copyright (c) 2013, the IPython Development Team.
7 #
7 #
8 # Distributed under the terms of the Modified BSD License.
8 # Distributed under the terms of the Modified BSD License.
9 #
9 #
10 # The full license is in the file COPYING.txt, distributed with this software.
10 # The full license is in the file COPYING.txt, distributed with this software.
11 #-----------------------------------------------------------------------------
11 #-----------------------------------------------------------------------------
12
12
13 #-----------------------------------------------------------------------------
13 #-----------------------------------------------------------------------------
14 # Imports
14 # Imports
15 #-----------------------------------------------------------------------------
15 #-----------------------------------------------------------------------------
16 from .widget import DOMWidget
16 from .widget import DOMWidget
17 from IPython.utils.traitlets import Unicode, Bool
17 from IPython.utils.traitlets import Unicode, Bool
18 from IPython.utils.warn import DeprecatedClass
18
19
19 #-----------------------------------------------------------------------------
20 #-----------------------------------------------------------------------------
20 # Classes
21 # Classes
21 #-----------------------------------------------------------------------------
22 #-----------------------------------------------------------------------------
22 class _BoolWidget(DOMWidget):
23 class _Bool(DOMWidget):
24 """A base class for creating widgets that represent booleans."""
23 value = Bool(False, help="Bool value", sync=True)
25 value = Bool(False, help="Bool value", sync=True)
24 description = Unicode('', help="Description of the boolean (label).", sync=True)
26 description = Unicode('', help="Description of the boolean (label).", sync=True)
25 disabled = Bool(False, help="Enable or disable user changes.", sync=True)
27 disabled = Bool(False, help="Enable or disable user changes.", sync=True)
26
28
27
29
28 class CheckboxWidget(_BoolWidget):
30 class Checkbox(_Bool):
31 """Displays a boolean `value`."""
29 _view_name = Unicode('CheckboxView', sync=True)
32 _view_name = Unicode('CheckboxView', sync=True)
30
33
31
34
32 class ToggleButtonWidget(_BoolWidget):
35 class ToggleButton(_Bool):
33 _view_name = Unicode('ToggleButtonView', sync=True)
36 """Displays a boolean `value`."""
34
37
38 _view_name = Unicode('ToggleButtonView', sync=True)
39
40
41 # Remove in IPython 4.0
42 CheckboxWidget = DeprecatedClass(Checkbox, 'CheckboxWidget')
43 ToggleButtonWidget = DeprecatedClass(ToggleButton, 'ToggleButtonWidget')
@@ -1,56 +1,65 b''
1 """ButtonWidget class.
1 """Button class.
2
2
3 Represents a button in the frontend using a widget. Allows user to listen for
3 Represents a button in the frontend using a widget. Allows user to listen for
4 click events on the button and trigger backend code when the clicks are fired.
4 click events on the button and trigger backend code when the clicks are fired.
5 """
5 """
6 #-----------------------------------------------------------------------------
6 #-----------------------------------------------------------------------------
7 # Copyright (c) 2013, the IPython Development Team.
7 # Copyright (c) 2013, the IPython Development Team.
8 #
8 #
9 # Distributed under the terms of the Modified BSD License.
9 # Distributed under the terms of the Modified BSD License.
10 #
10 #
11 # The full license is in the file COPYING.txt, distributed with this software.
11 # The full license is in the file COPYING.txt, distributed with this software.
12 #-----------------------------------------------------------------------------
12 #-----------------------------------------------------------------------------
13
13
14 #-----------------------------------------------------------------------------
14 #-----------------------------------------------------------------------------
15 # Imports
15 # Imports
16 #-----------------------------------------------------------------------------
16 #-----------------------------------------------------------------------------
17 from .widget import DOMWidget, CallbackDispatcher
17 from .widget import DOMWidget, CallbackDispatcher
18 from IPython.utils.traitlets import Unicode, Bool
18 from IPython.utils.traitlets import Unicode, Bool
19 from IPython.utils.warn import DeprecatedClass
19
20
20 #-----------------------------------------------------------------------------
21 #-----------------------------------------------------------------------------
21 # Classes
22 # Classes
22 #-----------------------------------------------------------------------------
23 #-----------------------------------------------------------------------------
23 class ButtonWidget(DOMWidget):
24 class Button(DOMWidget):
25 """Button widget.
26
27 This widget has an `on_click` method that allows you to listen for the
28 user clicking on the button. The click event itself is stateless."""
24 _view_name = Unicode('ButtonView', sync=True)
29 _view_name = Unicode('ButtonView', sync=True)
25
30
26 # Keys
31 # Keys
27 description = Unicode('', help="Description of the button (label).", sync=True)
32 description = Unicode('', help="Description of the button (label).", sync=True)
28 disabled = Bool(False, help="Enable or disable user changes.", sync=True)
33 disabled = Bool(False, help="Enable or disable user changes.", sync=True)
29
34
30 def __init__(self, **kwargs):
35 def __init__(self, **kwargs):
31 """Constructor"""
36 """Constructor"""
32 super(ButtonWidget, self).__init__(**kwargs)
37 super(Button, self).__init__(**kwargs)
33 self._click_handlers = CallbackDispatcher()
38 self._click_handlers = CallbackDispatcher()
34 self.on_msg(self._handle_button_msg)
39 self.on_msg(self._handle_button_msg)
35
40
36 def on_click(self, callback, remove=False):
41 def on_click(self, callback, remove=False):
37 """Register a callback to execute when the button is clicked.
42 """Register a callback to execute when the button is clicked.
38
43
39 The callback will be called with one argument,
44 The callback will be called with one argument,
40 the clicked button widget instance.
45 the clicked button widget instance.
41
46
42 Parameters
47 Parameters
43 ----------
48 ----------
44 remove : bool (optional)
49 remove : bool (optional)
45 Set to true to remove the callback from the list of callbacks."""
50 Set to true to remove the callback from the list of callbacks."""
46 self._click_handlers.register_callback(callback, remove=remove)
51 self._click_handlers.register_callback(callback, remove=remove)
47
52
48 def _handle_button_msg(self, _, content):
53 def _handle_button_msg(self, _, content):
49 """Handle a msg from the front-end.
54 """Handle a msg from the front-end.
50
55
51 Parameters
56 Parameters
52 ----------
57 ----------
53 content: dict
58 content: dict
54 Content of the msg."""
59 Content of the msg."""
55 if content.get('event', '') == 'click':
60 if content.get('event', '') == 'click':
56 self._click_handlers(self)
61 self._click_handlers(self)
62
63
64 # Remove in IPython 4.0
65 ButtonWidget = DeprecatedClass(Button, 'ButtonWidget')
@@ -1,61 +1,69 b''
1 """FloatWidget class.
1 """Float class.
2
2
3 Represents an unbounded float using a widget.
3 Represents an unbounded float using a widget.
4 """
4 """
5 #-----------------------------------------------------------------------------
5 #-----------------------------------------------------------------------------
6 # Copyright (c) 2013, the IPython Development Team.
6 # Copyright (c) 2013, the IPython Development Team.
7 #
7 #
8 # Distributed under the terms of the Modified BSD License.
8 # Distributed under the terms of the Modified BSD License.
9 #
9 #
10 # The full license is in the file COPYING.txt, distributed with this software.
10 # The full license is in the file COPYING.txt, distributed with this software.
11 #-----------------------------------------------------------------------------
11 #-----------------------------------------------------------------------------
12
12
13 #-----------------------------------------------------------------------------
13 #-----------------------------------------------------------------------------
14 # Imports
14 # Imports
15 #-----------------------------------------------------------------------------
15 #-----------------------------------------------------------------------------
16 from .widget import DOMWidget
16 from .widget import DOMWidget
17 from IPython.utils.traitlets import Unicode, CFloat, Bool, Enum
17 from IPython.utils.traitlets import Unicode, CFloat, Bool, Enum
18 from IPython.utils.warn import DeprecatedClass
18
19
19 #-----------------------------------------------------------------------------
20 #-----------------------------------------------------------------------------
20 # Classes
21 # Classes
21 #-----------------------------------------------------------------------------
22 #-----------------------------------------------------------------------------
22 class _FloatWidget(DOMWidget):
23 class _Float(DOMWidget):
23 value = CFloat(0.0, help="Float value", sync=True)
24 value = CFloat(0.0, help="Float value", sync=True)
24 disabled = Bool(False, help="Enable or disable user changes", sync=True)
25 disabled = Bool(False, help="Enable or disable user changes", sync=True)
25 description = Unicode(help="Description of the value this widget represents", sync=True)
26 description = Unicode(help="Description of the value this widget represents", sync=True)
26
27
27
28
28 class _BoundedFloatWidget(_FloatWidget):
29 class _BoundedFloat(_Float):
29 max = CFloat(100.0, help="Max value", sync=True)
30 max = CFloat(100.0, help="Max value", sync=True)
30 min = CFloat(0.0, help="Min value", sync=True)
31 min = CFloat(0.0, help="Min value", sync=True)
31 step = CFloat(0.1, help="Minimum step that the value can take (ignored by some views)", sync=True)
32 step = CFloat(0.1, help="Minimum step that the value can take (ignored by some views)", sync=True)
32
33
33 def __init__(self, *pargs, **kwargs):
34 def __init__(self, *pargs, **kwargs):
34 """Constructor"""
35 """Constructor"""
35 DOMWidget.__init__(self, *pargs, **kwargs)
36 DOMWidget.__init__(self, *pargs, **kwargs)
36 self._validate('value', None, self.value)
37 self._validate('value', None, self.value)
37 self.on_trait_change(self._validate, ['value', 'min', 'max'])
38 self.on_trait_change(self._validate, ['value', 'min', 'max'])
38
39
39 def _validate(self, name, old, new):
40 def _validate(self, name, old, new):
40 """Validate value, max, min."""
41 """Validate value, max, min."""
41 if self.min > new or new > self.max:
42 if self.min > new or new > self.max:
42 self.value = min(max(new, self.min), self.max)
43 self.value = min(max(new, self.min), self.max)
43
44
44
45
45 class FloatTextWidget(_FloatWidget):
46 class FloatText(_Float):
46 _view_name = Unicode('FloatTextView', sync=True)
47 _view_name = Unicode('FloatTextView', sync=True)
47
48
48
49
49 class BoundedFloatTextWidget(_BoundedFloatWidget):
50 class BoundedFloatText(_BoundedFloat):
50 _view_name = Unicode('FloatTextView', sync=True)
51 _view_name = Unicode('FloatTextView', sync=True)
51
52
52
53
53 class FloatSliderWidget(_BoundedFloatWidget):
54 class FloatSlider(_BoundedFloat):
54 _view_name = Unicode('FloatSliderView', sync=True)
55 _view_name = Unicode('FloatSliderView', sync=True)
55 orientation = Enum([u'horizontal', u'vertical'], u'horizontal',
56 orientation = Enum([u'horizontal', u'vertical'], u'horizontal',
56 help="Vertical or horizontal.", sync=True)
57 help="Vertical or horizontal.", sync=True)
57 readout = Bool(True, help="Display the current value of the slider next to it.", sync=True)
58 readout = Bool(True, help="Display the current value of the slider next to it.", sync=True)
58
59
59
60
60 class FloatProgressWidget(_BoundedFloatWidget):
61 class FloatProgress(_BoundedFloat):
61 _view_name = Unicode('ProgressView', sync=True)
62 _view_name = Unicode('ProgressView', sync=True)
63
64
65 # Remove in IPython 4.0
66 FloatTextWidget = DeprecatedClass(FloatText, 'FloatTextWidget')
67 BoundedFloatTextWidget = DeprecatedClass(BoundedFloatText, 'BoundedFloatTextWidget')
68 FloatSliderWidget = DeprecatedClass(FloatSlider, 'FloatSliderWidget')
69 FloatProgressWidget = DeprecatedClass(FloatProgress, 'FloatProgressWidget')
@@ -1,35 +1,46 b''
1 """ImageWidget class.
1 """Image class.
2
2
3 Represents an image in the frontend using a widget.
3 Represents an image in the frontend using a widget.
4 """
4 """
5 #-----------------------------------------------------------------------------
5 #-----------------------------------------------------------------------------
6 # Copyright (c) 2013, the IPython Development Team.
6 # Copyright (c) 2013, the IPython Development Team.
7 #
7 #
8 # Distributed under the terms of the Modified BSD License.
8 # Distributed under the terms of the Modified BSD License.
9 #
9 #
10 # The full license is in the file COPYING.txt, distributed with this software.
10 # The full license is in the file COPYING.txt, distributed with this software.
11 #-----------------------------------------------------------------------------
11 #-----------------------------------------------------------------------------
12
12
13 #-----------------------------------------------------------------------------
13 #-----------------------------------------------------------------------------
14 # Imports
14 # Imports
15 #-----------------------------------------------------------------------------
15 #-----------------------------------------------------------------------------
16 import base64
16 import base64
17
17
18 from .widget import DOMWidget
18 from .widget import DOMWidget
19 from IPython.utils.traitlets import Unicode, CUnicode, Bytes
19 from IPython.utils.traitlets import Unicode, CUnicode, Bytes
20 from IPython.utils.warn import DeprecatedClass
20
21
21 #-----------------------------------------------------------------------------
22 #-----------------------------------------------------------------------------
22 # Classes
23 # Classes
23 #-----------------------------------------------------------------------------
24 #-----------------------------------------------------------------------------
24 class ImageWidget(DOMWidget):
25 class Image(DOMWidget):
26 """Displays an image as a widget.
27
28 The `value` of this widget accepts a byte string. The byte string is the raw
29 image data that you want the browser to display. You can explicitly define
30 the format of the byte string using the `format` trait (which defaults to
31 "png")."""
25 _view_name = Unicode('ImageView', sync=True)
32 _view_name = Unicode('ImageView', sync=True)
26
33
27 # Define the custom state properties to sync with the front-end
34 # Define the custom state properties to sync with the front-end
28 format = Unicode('png', sync=True)
35 format = Unicode('png', sync=True)
29 width = CUnicode(sync=True)
36 width = CUnicode(sync=True)
30 height = CUnicode(sync=True)
37 height = CUnicode(sync=True)
31 _b64value = Unicode(sync=True)
38 _b64value = Unicode(sync=True)
32
39
33 value = Bytes()
40 value = Bytes()
34 def _value_changed(self, name, old, new):
41 def _value_changed(self, name, old, new):
35 self._b64value = base64.b64encode(new)
42 self._b64value = base64.b64encode(new)
43
44
45 # Remove in IPython 4.0
46 ImageWidget = DeprecatedClass(Image, 'ImageWidget')
@@ -1,60 +1,75 b''
1 """IntWidget class.
1 """Int class.
2
2
3 Represents an unbounded int using a widget.
3 Represents an unbounded int using a widget.
4 """
4 """
5 #-----------------------------------------------------------------------------
5 #-----------------------------------------------------------------------------
6 # Copyright (c) 2013, the IPython Development Team.
6 # Copyright (c) 2013, the IPython Development Team.
7 #
7 #
8 # Distributed under the terms of the Modified BSD License.
8 # Distributed under the terms of the Modified BSD License.
9 #
9 #
10 # The full license is in the file COPYING.txt, distributed with this software.
10 # The full license is in the file COPYING.txt, distributed with this software.
11 #-----------------------------------------------------------------------------
11 #-----------------------------------------------------------------------------
12
12
13 #-----------------------------------------------------------------------------
13 #-----------------------------------------------------------------------------
14 # Imports
14 # Imports
15 #-----------------------------------------------------------------------------
15 #-----------------------------------------------------------------------------
16 from .widget import DOMWidget
16 from .widget import DOMWidget
17 from IPython.utils.traitlets import Unicode, CInt, Bool, Enum
17 from IPython.utils.traitlets import Unicode, CInt, Bool, Enum
18 from IPython.utils.warn import DeprecatedClass
18
19
19 #-----------------------------------------------------------------------------
20 #-----------------------------------------------------------------------------
20 # Classes
21 # Classes
21 #-----------------------------------------------------------------------------
22 #-----------------------------------------------------------------------------
22 class _IntWidget(DOMWidget):
23 class _Int(DOMWidget):
24 """Base class used to create widgets that represent an int."""
23 value = CInt(0, help="Int value", sync=True)
25 value = CInt(0, help="Int value", sync=True)
24 disabled = Bool(False, help="Enable or disable user changes", sync=True)
26 disabled = Bool(False, help="Enable or disable user changes", sync=True)
25 description = Unicode(help="Description of the value this widget represents", sync=True)
27 description = Unicode(help="Description of the value this widget represents", sync=True)
26
28
27
29
28 class _BoundedIntWidget(_IntWidget):
30 class _BoundedInt(_Int):
31 """Base class used to create widgets that represent a int that is bounded
32 by a minium and maximum."""
29 step = CInt(1, help="Minimum step that the value can take (ignored by some views)", sync=True)
33 step = CInt(1, help="Minimum step that the value can take (ignored by some views)", sync=True)
30 max = CInt(100, help="Max value", sync=True)
34 max = CInt(100, help="Max value", sync=True)
31 min = CInt(0, help="Min value", sync=True)
35 min = CInt(0, help="Min value", sync=True)
32
36
33 def __init__(self, *pargs, **kwargs):
37 def __init__(self, *pargs, **kwargs):
34 """Constructor"""
38 """Constructor"""
35 DOMWidget.__init__(self, *pargs, **kwargs)
39 DOMWidget.__init__(self, *pargs, **kwargs)
36 self.on_trait_change(self._validate, ['value', 'min', 'max'])
40 self.on_trait_change(self._validate, ['value', 'min', 'max'])
37
41
38 def _validate(self, name, old, new):
42 def _validate(self, name, old, new):
39 """Validate value, max, min."""
43 """Validate value, max, min."""
40 if self.min > new or new > self.max:
44 if self.min > new or new > self.max:
41 self.value = min(max(new, self.min), self.max)
45 self.value = min(max(new, self.min), self.max)
42
46
43
47
44 class IntTextWidget(_IntWidget):
48 class IntText(_Int):
49 """Textbox widget that represents a int."""
45 _view_name = Unicode('IntTextView', sync=True)
50 _view_name = Unicode('IntTextView', sync=True)
46
51
47
52
48 class BoundedIntTextWidget(_BoundedIntWidget):
53 class BoundedIntText(_BoundedInt):
54 """Textbox widget that represents a int bounded by a minimum and maximum value."""
49 _view_name = Unicode('IntTextView', sync=True)
55 _view_name = Unicode('IntTextView', sync=True)
50
56
51
57
52 class IntSliderWidget(_BoundedIntWidget):
58 class IntSlider(_BoundedInt):
59 """Slider widget that represents a int bounded by a minimum and maximum value."""
53 _view_name = Unicode('IntSliderView', sync=True)
60 _view_name = Unicode('IntSliderView', sync=True)
54 orientation = Enum([u'horizontal', u'vertical'], u'horizontal',
61 orientation = Enum([u'horizontal', u'vertical'], u'horizontal',
55 help="Vertical or horizontal.", sync=True)
62 help="Vertical or horizontal.", sync=True)
56 readout = Bool(True, help="Display the current value of the slider next to it.", sync=True)
63 readout = Bool(True, help="Display the current value of the slider next to it.", sync=True)
57
64
58
65
59 class IntProgressWidget(_BoundedIntWidget):
66 class IntProgress(_BoundedInt):
67 """Progress bar that represents a int bounded by a minimum and maximum value."""
60 _view_name = Unicode('ProgressView', sync=True)
68 _view_name = Unicode('ProgressView', sync=True)
69
70
71 # Remove in IPython 4.0
72 IntTextWidget = DeprecatedClass(IntText, 'IntTextWidget')
73 BoundedIntTextWidget = DeprecatedClass(BoundedIntText, 'BoundedIntTextWidget')
74 IntSliderWidget = DeprecatedClass(IntSlider, 'IntSliderWidget')
75 IntProgressWidget = DeprecatedClass(IntProgress, 'IntProgressWidget')
@@ -1,125 +1,139 b''
1 """SelectionWidget classes.
1 """Selection classes.
2
2
3 Represents an enumeration using a widget.
3 Represents an enumeration using a widget.
4 """
4 """
5 #-----------------------------------------------------------------------------
5 #-----------------------------------------------------------------------------
6 # Copyright (c) 2013, the IPython Development Team.
6 # Copyright (c) 2013, the IPython Development Team.
7 #
7 #
8 # Distributed under the terms of the Modified BSD License.
8 # Distributed under the terms of the Modified BSD License.
9 #
9 #
10 # The full license is in the file COPYING.txt, distributed with this software.
10 # The full license is in the file COPYING.txt, distributed with this software.
11 #-----------------------------------------------------------------------------
11 #-----------------------------------------------------------------------------
12
12
13 #-----------------------------------------------------------------------------
13 #-----------------------------------------------------------------------------
14 # Imports
14 # Imports
15 #-----------------------------------------------------------------------------
15 #-----------------------------------------------------------------------------
16
16
17 from collections import OrderedDict
17 from collections import OrderedDict
18 from threading import Lock
18 from threading import Lock
19
19
20 from .widget import DOMWidget
20 from .widget import DOMWidget
21 from IPython.utils.traitlets import Unicode, List, Bool, Any, Dict, TraitError
21 from IPython.utils.traitlets import Unicode, List, Bool, Any, Dict, TraitError
22 from IPython.utils.py3compat import unicode_type
22 from IPython.utils.py3compat import unicode_type
23 from IPython.utils.warn import DeprecatedClass
23
24
24 #-----------------------------------------------------------------------------
25 #-----------------------------------------------------------------------------
25 # SelectionWidget
26 # SelectionWidget
26 #-----------------------------------------------------------------------------
27 #-----------------------------------------------------------------------------
27 class _SelectionWidget(DOMWidget):
28 class _Selection(DOMWidget):
28 """Base class for Selection widgets
29 """Base class for Selection widgets
29
30
30 ``values`` can be specified as a list or dict. If given as a list,
31 ``values`` can be specified as a list or dict. If given as a list,
31 it will be transformed to a dict of the form ``{str(value):value}``.
32 it will be transformed to a dict of the form ``{str(value):value}``.
32 """
33 """
33
34
34 value = Any(help="Selected value")
35 value = Any(help="Selected value")
35 values = Dict(help="""Dictionary of {name: value} the user can select.
36 values = Dict(help="""Dictionary of {name: value} the user can select.
36
37
37 The keys of this dictionary are the strings that will be displayed in the UI,
38 The keys of this dictionary are the strings that will be displayed in the UI,
38 representing the actual Python choices.
39 representing the actual Python choices.
39
40
40 The keys of this dictionary are also available as value_names.
41 The keys of this dictionary are also available as value_names.
41 """)
42 """)
42 value_name = Unicode(help="The name of the selected value", sync=True)
43 value_name = Unicode(help="The name of the selected value", sync=True)
43 value_names = List(Unicode, help="""Read-only list of names for each value.
44 value_names = List(Unicode, help="""Read-only list of names for each value.
44
45
45 If values is specified as a list, this is the string representation of each element.
46 If values is specified as a list, this is the string representation of each element.
46 Otherwise, it is the keys of the values dictionary.
47 Otherwise, it is the keys of the values dictionary.
47
48
48 These strings are used to display the choices in the front-end.""", sync=True)
49 These strings are used to display the choices in the front-end.""", sync=True)
49 disabled = Bool(False, help="Enable or disable user changes", sync=True)
50 disabled = Bool(False, help="Enable or disable user changes", sync=True)
50 description = Unicode(help="Description of the value this widget represents", sync=True)
51 description = Unicode(help="Description of the value this widget represents", sync=True)
51
52
52
53
53 def __init__(self, *args, **kwargs):
54 def __init__(self, *args, **kwargs):
54 self.value_lock = Lock()
55 self.value_lock = Lock()
55 self._in_values_changed = False
56 self._in_values_changed = False
56 if 'values' in kwargs:
57 if 'values' in kwargs:
57 values = kwargs['values']
58 values = kwargs['values']
58 # convert list values to an dict of {str(v):v}
59 # convert list values to an dict of {str(v):v}
59 if isinstance(values, list):
60 if isinstance(values, list):
60 # preserve list order with an OrderedDict
61 # preserve list order with an OrderedDict
61 kwargs['values'] = OrderedDict((unicode_type(v), v) for v in values)
62 kwargs['values'] = OrderedDict((unicode_type(v), v) for v in values)
62 # python3.3 turned on hash randomization by default - this means that sometimes, randomly
63 # python3.3 turned on hash randomization by default - this means that sometimes, randomly
63 # we try to set value before setting values, due to dictionary ordering. To fix this, force
64 # we try to set value before setting values, due to dictionary ordering. To fix this, force
64 # the setting of self.values right now, before anything else runs
65 # the setting of self.values right now, before anything else runs
65 self.values = kwargs.pop('values')
66 self.values = kwargs.pop('values')
66 DOMWidget.__init__(self, *args, **kwargs)
67 DOMWidget.__init__(self, *args, **kwargs)
67
68
68 def _values_changed(self, name, old, new):
69 def _values_changed(self, name, old, new):
69 """Handles when the values dict has been changed.
70 """Handles when the values dict has been changed.
70
71
71 Setting values implies setting value names from the keys of the dict.
72 Setting values implies setting value names from the keys of the dict.
72 """
73 """
73 self._in_values_changed = True
74 self._in_values_changed = True
74 try:
75 try:
75 self.value_names = list(new.keys())
76 self.value_names = list(new.keys())
76 finally:
77 finally:
77 self._in_values_changed = False
78 self._in_values_changed = False
78
79
79 # ensure that the chosen value is one of the choices
80 # ensure that the chosen value is one of the choices
80 if self.value not in new.values():
81 if self.value not in new.values():
81 self.value = next(iter(new.values()))
82 self.value = next(iter(new.values()))
82
83
83 def _value_names_changed(self, name, old, new):
84 def _value_names_changed(self, name, old, new):
84 if not self._in_values_changed:
85 if not self._in_values_changed:
85 raise TraitError("value_names is a read-only proxy to values.keys(). Use the values dict instead.")
86 raise TraitError("value_names is a read-only proxy to values.keys(). Use the values dict instead.")
86
87
87 def _value_changed(self, name, old, new):
88 def _value_changed(self, name, old, new):
88 """Called when value has been changed"""
89 """Called when value has been changed"""
89 if self.value_lock.acquire(False):
90 if self.value_lock.acquire(False):
90 try:
91 try:
91 # Reverse dictionary lookup for the value name
92 # Reverse dictionary lookup for the value name
92 for k,v in self.values.items():
93 for k,v in self.values.items():
93 if new == v:
94 if new == v:
94 # set the selected value name
95 # set the selected value name
95 self.value_name = k
96 self.value_name = k
96 return
97 return
97 # undo the change, and raise KeyError
98 # undo the change, and raise KeyError
98 self.value = old
99 self.value = old
99 raise KeyError(new)
100 raise KeyError(new)
100 finally:
101 finally:
101 self.value_lock.release()
102 self.value_lock.release()
102
103
103 def _value_name_changed(self, name, old, new):
104 def _value_name_changed(self, name, old, new):
104 """Called when the value name has been changed (typically by the frontend)."""
105 """Called when the value name has been changed (typically by the frontend)."""
105 if self.value_lock.acquire(False):
106 if self.value_lock.acquire(False):
106 try:
107 try:
107 self.value = self.values[new]
108 self.value = self.values[new]
108 finally:
109 finally:
109 self.value_lock.release()
110 self.value_lock.release()
110
111
111
112
112 class ToggleButtonsWidget(_SelectionWidget):
113 class ToggleButtons(_Selection):
114 """Group of toggle buttons that represent an enumeration. Only one toggle
115 button can be toggled at any point in time."""
113 _view_name = Unicode('ToggleButtonsView', sync=True)
116 _view_name = Unicode('ToggleButtonsView', sync=True)
114
117
115
118
116 class DropdownWidget(_SelectionWidget):
119 class Dropdown(_Selection):
120 """Allows you to select a single item from a dropdown."""
117 _view_name = Unicode('DropdownView', sync=True)
121 _view_name = Unicode('DropdownView', sync=True)
118
122
119
123
120 class RadioButtonsWidget(_SelectionWidget):
124 class RadioButtons(_Selection):
125 """Group of radio buttons that represent an enumeration. Only one radio
126 button can be toggled at any point in time."""
121 _view_name = Unicode('RadioButtonsView', sync=True)
127 _view_name = Unicode('RadioButtonsView', sync=True)
122
128
123
129
124 class SelectWidget(_SelectionWidget):
130 class Select(_Selection):
131 """Listbox that only allows one item to be selected at any given time."""
125 _view_name = Unicode('SelectView', sync=True)
132 _view_name = Unicode('SelectView', sync=True)
133
134
135 # Remove in IPython 4.0
136 ToggleButtonsWidget = DeprecatedClass(ToggleButtons, 'ToggleButtonsWidget')
137 DropdownWidget = DeprecatedClass(Dropdown, 'DropdownWidget')
138 RadioButtonsWidget = DeprecatedClass(RadioButtons, 'RadioButtonsWidget')
139 SelectWidget = DeprecatedClass(Select, 'SelectWidget')
@@ -1,58 +1,67 b''
1 """SelectionContainerWidget class.
1 """SelectionContainer class.
2
2
3 Represents a multipage container that can be used to group other widgets into
3 Represents a multipage container that can be used to group other widgets into
4 pages.
4 pages.
5 """
5 """
6 #-----------------------------------------------------------------------------
6 #-----------------------------------------------------------------------------
7 # Copyright (c) 2013, the IPython Development Team.
7 # Copyright (c) 2013, the IPython Development Team.
8 #
8 #
9 # Distributed under the terms of the Modified BSD License.
9 # Distributed under the terms of the Modified BSD License.
10 #
10 #
11 # The full license is in the file COPYING.txt, distributed with this software.
11 # The full license is in the file COPYING.txt, distributed with this software.
12 #-----------------------------------------------------------------------------
12 #-----------------------------------------------------------------------------
13
13
14 #-----------------------------------------------------------------------------
14 #-----------------------------------------------------------------------------
15 # Imports
15 # Imports
16 #-----------------------------------------------------------------------------
16 #-----------------------------------------------------------------------------
17 from .widget_container import ContainerWidget
17 from .widget_box import Box
18 from IPython.utils.traitlets import Unicode, Dict, CInt
18 from IPython.utils.traitlets import Unicode, Dict, CInt
19 from IPython.utils.warn import DeprecatedClass
19
20
20 #-----------------------------------------------------------------------------
21 #-----------------------------------------------------------------------------
21 # Classes
22 # Classes
22 #-----------------------------------------------------------------------------
23 #-----------------------------------------------------------------------------
23 class _SelectionContainerWidget(ContainerWidget):
24 class _SelectionContainer(Box):
25 """Base class used to display multiple child widgets."""
24 _titles = Dict(help="Titles of the pages", sync=True)
26 _titles = Dict(help="Titles of the pages", sync=True)
25 selected_index = CInt(0, sync=True)
27 selected_index = CInt(0, sync=True)
26
28
27 # Public methods
29 # Public methods
28 def set_title(self, index, title):
30 def set_title(self, index, title):
29 """Sets the title of a container page.
31 """Sets the title of a container page.
30
32
31 Parameters
33 Parameters
32 ----------
34 ----------
33 index : int
35 index : int
34 Index of the container page
36 Index of the container page
35 title : unicode
37 title : unicode
36 New title"""
38 New title"""
37 self._titles[index] = title
39 self._titles[index] = title
38 self.send_state('_titles')
40 self.send_state('_titles')
39
41
40 def get_title(self, index):
42 def get_title(self, index):
41 """Gets the title of a container pages.
43 """Gets the title of a container pages.
42
44
43 Parameters
45 Parameters
44 ----------
46 ----------
45 index : int
47 index : int
46 Index of the container page"""
48 Index of the container page"""
47 if index in self._titles:
49 if index in self._titles:
48 return self._titles[index]
50 return self._titles[index]
49 else:
51 else:
50 return None
52 return None
51
53
52
54
53 class AccordionWidget(_SelectionContainerWidget):
55 class Accordion(_SelectionContainer):
56 """Displays children each on a separate accordion page."""
54 _view_name = Unicode('AccordionView', sync=True)
57 _view_name = Unicode('AccordionView', sync=True)
55
58
56
59
57 class TabWidget(_SelectionContainerWidget):
60 class Tab(_SelectionContainer):
61 """Displays children each on a separate accordion tab."""
58 _view_name = Unicode('TabView', sync=True)
62 _view_name = Unicode('TabView', sync=True)
63
64
65 # Remove in IPython 4.0
66 AccordionWidget = DeprecatedClass(Accordion, 'AccordionWidget')
67 TabWidget = DeprecatedClass(Tab, 'TabWidget')
@@ -1,73 +1,87 b''
1 """StringWidget class.
1 """String class.
2
2
3 Represents a unicode string using a widget.
3 Represents a unicode string using a widget.
4 """
4 """
5 #-----------------------------------------------------------------------------
5 #-----------------------------------------------------------------------------
6 # Copyright (c) 2013, the IPython Development Team.
6 # Copyright (c) 2013, the IPython Development Team.
7 #
7 #
8 # Distributed under the terms of the Modified BSD License.
8 # Distributed under the terms of the Modified BSD License.
9 #
9 #
10 # The full license is in the file COPYING.txt, distributed with this software.
10 # The full license is in the file COPYING.txt, distributed with this software.
11 #-----------------------------------------------------------------------------
11 #-----------------------------------------------------------------------------
12
12
13 #-----------------------------------------------------------------------------
13 #-----------------------------------------------------------------------------
14 # Imports
14 # Imports
15 #-----------------------------------------------------------------------------
15 #-----------------------------------------------------------------------------
16 from .widget import DOMWidget, CallbackDispatcher
16 from .widget import DOMWidget, CallbackDispatcher
17 from IPython.utils.traitlets import Unicode, Bool
17 from IPython.utils.traitlets import Unicode, Bool
18 from IPython.utils.warn import DeprecatedClass
18
19
19 #-----------------------------------------------------------------------------
20 #-----------------------------------------------------------------------------
20 # Classes
21 # Classes
21 #-----------------------------------------------------------------------------
22 #-----------------------------------------------------------------------------
22 class _StringWidget(DOMWidget):
23 class _String(DOMWidget):
24 """Base class used to create widgets that represent a string."""
23 value = Unicode(help="String value", sync=True)
25 value = Unicode(help="String value", sync=True)
24 disabled = Bool(False, help="Enable or disable user changes", sync=True)
26 disabled = Bool(False, help="Enable or disable user changes", sync=True)
25 description = Unicode(help="Description of the value this widget represents", sync=True)
27 description = Unicode(help="Description of the value this widget represents", sync=True)
26 placeholder = Unicode("", help="Placeholder text to display when nothing has been typed", sync=True)
28 placeholder = Unicode("", help="Placeholder text to display when nothing has been typed", sync=True)
27
29
28
30
29 class HTMLWidget(_StringWidget):
31 class HTML(_String):
32 """Renders the string `value` as HTML."""
30 _view_name = Unicode('HTMLView', sync=True)
33 _view_name = Unicode('HTMLView', sync=True)
31
34
32
35
33 class LatexWidget(_StringWidget):
36 class Latex(_String):
37 """Renders math inside the string `value` as Latex (requires $ $ or $$ $$
38 and similar latex tags)."""
34 _view_name = Unicode('LatexView', sync=True)
39 _view_name = Unicode('LatexView', sync=True)
35
40
36
41
37 class TextareaWidget(_StringWidget):
42 class Textarea(_String):
43 """Multiline text area widget."""
38 _view_name = Unicode('TextareaView', sync=True)
44 _view_name = Unicode('TextareaView', sync=True)
39
45
40 def scroll_to_bottom(self):
46 def scroll_to_bottom(self):
41 self.send({"method": "scroll_to_bottom"})
47 self.send({"method": "scroll_to_bottom"})
42
48
43
49
44 class TextWidget(_StringWidget):
50 class Text(_String):
51 """Single line textbox widget."""
45 _view_name = Unicode('TextView', sync=True)
52 _view_name = Unicode('TextView', sync=True)
46
53
47 def __init__(self, **kwargs):
54 def __init__(self, **kwargs):
48 super(TextWidget, self).__init__(**kwargs)
55 super(Text, self).__init__(**kwargs)
49 self._submission_callbacks = CallbackDispatcher()
56 self._submission_callbacks = CallbackDispatcher()
50 self.on_msg(self._handle_string_msg)
57 self.on_msg(self._handle_string_msg)
51
58
52 def _handle_string_msg(self, _, content):
59 def _handle_string_msg(self, _, content):
53 """Handle a msg from the front-end.
60 """Handle a msg from the front-end.
54
61
55 Parameters
62 Parameters
56 ----------
63 ----------
57 content: dict
64 content: dict
58 Content of the msg."""
65 Content of the msg."""
59 if content.get('event', '') == 'submit':
66 if content.get('event', '') == 'submit':
60 self._submission_callbacks(self)
67 self._submission_callbacks(self)
61
68
62 def on_submit(self, callback, remove=False):
69 def on_submit(self, callback, remove=False):
63 """(Un)Register a callback to handle text submission.
70 """(Un)Register a callback to handle text submission.
64
71
65 Triggered when the user clicks enter.
72 Triggered when the user clicks enter.
66
73
67 Parameters
74 Parameters
68 ----------
75 ----------
69 callback: callable
76 callback: callable
70 Will be called with exactly one argument: the Widget instance
77 Will be called with exactly one argument: the Widget instance
71 remove: bool (optional)
78 remove: bool (optional)
72 Whether to unregister the callback"""
79 Whether to unregister the callback"""
73 self._submission_callbacks.register_callback(callback, remove=remove)
80 self._submission_callbacks.register_callback(callback, remove=remove)
81
82
83 # Remove in IPython 4.0
84 HTMLWidget = DeprecatedClass(HTML, 'HTMLWidget')
85 LatexWidget = DeprecatedClass(Latex, 'LatexWidget')
86 TextareaWidget = DeprecatedClass(Textarea, 'TextareaWidget')
87 TextWidget = DeprecatedClass(Text, 'TextWidget')
@@ -1,67 +1,81 b''
1 # encoding: utf-8
1 # encoding: utf-8
2 """
2 """
3 Utilities for warnings. Shoudn't we just use the built in warnings module.
3 Utilities for warnings. Shoudn't we just use the built in warnings module.
4 """
4 """
5
5
6 #-----------------------------------------------------------------------------
6 #-----------------------------------------------------------------------------
7 # Copyright (C) 2008-2011 The IPython Development Team
7 # Copyright (C) 2008-2011 The IPython Development Team
8 #
8 #
9 # Distributed under the terms of the BSD License. The full license is in
9 # Distributed under the terms of the BSD License. The full license is in
10 # the file COPYING, distributed as part of this software.
10 # the file COPYING, distributed as part of this software.
11 #-----------------------------------------------------------------------------
11 #-----------------------------------------------------------------------------
12
12
13 #-----------------------------------------------------------------------------
13 #-----------------------------------------------------------------------------
14 # Imports
14 # Imports
15 #-----------------------------------------------------------------------------
15 #-----------------------------------------------------------------------------
16 from __future__ import print_function
16 from __future__ import print_function
17
17
18 import sys
18 import sys
19 import warnings
19
20
20 from IPython.utils import io
21 from IPython.utils import io
21
22
22 #-----------------------------------------------------------------------------
23 #-----------------------------------------------------------------------------
23 # Code
24 # Code
24 #-----------------------------------------------------------------------------
25 #-----------------------------------------------------------------------------
25
26
26 def warn(msg,level=2,exit_val=1):
27 def warn(msg,level=2,exit_val=1):
27 """Standard warning printer. Gives formatting consistency.
28 """Standard warning printer. Gives formatting consistency.
28
29
29 Output is sent to io.stderr (sys.stderr by default).
30 Output is sent to io.stderr (sys.stderr by default).
30
31
31 Options:
32 Options:
32
33
33 -level(2): allows finer control:
34 -level(2): allows finer control:
34 0 -> Do nothing, dummy function.
35 0 -> Do nothing, dummy function.
35 1 -> Print message.
36 1 -> Print message.
36 2 -> Print 'WARNING:' + message. (Default level).
37 2 -> Print 'WARNING:' + message. (Default level).
37 3 -> Print 'ERROR:' + message.
38 3 -> Print 'ERROR:' + message.
38 4 -> Print 'FATAL ERROR:' + message and trigger a sys.exit(exit_val).
39 4 -> Print 'FATAL ERROR:' + message and trigger a sys.exit(exit_val).
39
40
40 -exit_val (1): exit value returned by sys.exit() for a level 4
41 -exit_val (1): exit value returned by sys.exit() for a level 4
41 warning. Ignored for all other levels."""
42 warning. Ignored for all other levels."""
42
43
43 if level>0:
44 if level>0:
44 header = ['','','WARNING: ','ERROR: ','FATAL ERROR: ']
45 header = ['','','WARNING: ','ERROR: ','FATAL ERROR: ']
45 print(header[level], msg, sep='', file=io.stderr)
46 print(header[level], msg, sep='', file=io.stderr)
46 if level == 4:
47 if level == 4:
47 print('Exiting.\n', file=io.stderr)
48 print('Exiting.\n', file=io.stderr)
48 sys.exit(exit_val)
49 sys.exit(exit_val)
49
50
50
51
51 def info(msg):
52 def info(msg):
52 """Equivalent to warn(msg,level=1)."""
53 """Equivalent to warn(msg,level=1)."""
53
54
54 warn(msg,level=1)
55 warn(msg,level=1)
55
56
56
57
57 def error(msg):
58 def error(msg):
58 """Equivalent to warn(msg,level=3)."""
59 """Equivalent to warn(msg,level=3)."""
59
60
60 warn(msg,level=3)
61 warn(msg,level=3)
61
62
62
63
63 def fatal(msg,exit_val=1):
64 def fatal(msg,exit_val=1):
64 """Equivalent to warn(msg,exit_val=exit_val,level=4)."""
65 """Equivalent to warn(msg,exit_val=exit_val,level=4)."""
65
66
66 warn(msg,exit_val=exit_val,level=4)
67 warn(msg,exit_val=exit_val,level=4)
67
68
69
70 def DeprecatedClass(base, class_name):
71 # Hook the init method of the base class.
72 def init_hook(self, *pargs, **kwargs):
73 base.__init__(self, *pargs, **kwargs)
74
75 # Warn once per class.
76 if base not in DeprecatedClass._warned_classes:
77 DeprecatedClass._warned_classes.append(base)
78 warn('"{}" is deprecated, please use "{}" instead.'.format(
79 class_name, base.__name__))
80 return type(class_name, (base,), {'__init__': init_hook})
81 DeprecatedClass._warned_classes = []
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now