]> git.plutz.net Git - lobster/blob - style.css
#message block
[lobster] / style.css
1 h1:first-child, h2:first-child, h3:first-child,
2 p + h1, p + h2, p + h3 {
3   margin-top: 3pt;
4 }
5
6 /* ====== COMMON ELEMENTS ======*/
7
8 #message {
9   display: block;
10   position: fixed;
11   top: 0; width: 100%;
12   margin: 0; padding: 1em;
13   text-align: center;
14   font-weight: bold;
15   background-color: #FAA;
16   border: 1px solid #000;
17   border-style: none none solid none;
18 }
19
20 /* =========== FILTER AND SEARCH Headers ========= */
21
22 form.categories,
23 form.search, form.sort, form.filter, form.newcard, form.newcourses {
24   margin-top: 1em; padding: 0 1em;
25   z-index: 1;
26 }
27 form.filter > h1 { display: none; }
28
29 form.filter fieldset { margin-top: .5em; }
30 form.filter fieldset.item + fieldset.item legend { display: none; }
31
32 form.filter fieldset.item input[type=text] { display: block; }
33
34 form.filter fieldset.order legend {
35   float: left; margin-right: 1em;
36 }
37
38 form.filter fieldset label,
39 form.filter fieldset a { white-space: pre;}
40 form.filter button[type=submit] {
41   margin-top: .5em; margin-bottom: .5em;
42 }
43
44 form.filter button[value=export_csv] { margin-left: 1em; }
45
46 body.courses form .order { display: inline-block; margin-right: 2em;}
47
48 body.cards form.newcard { display: flex; }
49 body.cards form.newcard input[name=seed] { flex: 1; }
50
51
52 /* ============ LIST ITEMS, Generic ============= */
53
54 body > form,
55 div.card,
56 div.course {
57   position: relative;
58   width: 98%; width: calc(100% - 2em);
59   margin-left: auto; margin-right: auto;
60   margin-bottom: 1em;
61   box-shadow: .125em .125em .25em;
62   z-index: 1;
63 }
64
65 /* HACK: put anchor point 10em above card and highlight target element */
66     div:target { box-shadow: none; z-index: 0; }
67     div:target:before {
68       content: '';
69       display: block;
70       margin-top: -10em;
71       height: 10em;
72       visibility: hidden;
73     }
74     div:target:after {
75       content: '';
76       display: block;
77       position: absolute;
78       left: 0; right: 0;
79       top: 10em; bottom: 0;
80       box-shadow: .125em .125em .25em;
81       animation: highlight 4s;
82       z-index: -1;
83     }
84     @keyframes highlight { from { background-color: #FF0; } to { background-color: transparent; } }
85 /**/
86
87 div .section, form .section {
88   display: block;
89   vertical-align: top;
90   padding: 0 1em;
91   overflow: hidden;
92   word-break: break-word;
93 }
94
95 div .section :last-child, form .section :last-child {
96   margin-bottom: 1em;
97 }
98
99 div .section h2, form .section h2,
100 div .section h3, form .section h3 { 
101   border-bottom: 1pt solid #EEE;
102 }
103 div .control, form .control {
104   background-color: #EEE;
105   padding: .25em;
106   text-align: right;
107 }
108
109 @media(min-width: 60em) {
110   div .section, form .section {
111     display: table-cell;
112     width: calc(100% / 10);
113   }
114   div .section :last-child { margin-bottom: 0; }
115   div .control, form .control {
116     background-color: transparent;
117   }
118   div .section:nth-of-type(2n) {
119     background-color: #EEE;
120   }
121 }
122 @media(min-width: 80em) {
123   div .control, form .control {
124     display: table-cell;
125     width: calc(100% / 10);
126   }
127   div .control .item, form .control .item {
128     display: block;
129     margin-bottom: .25em;
130   }
131 }
132
133 div .section .item, form .section .item,
134 form .section.attendance > label {
135   display: block;
136   width: 100%;
137 }
138
139 div .section .item.NOTE {
140   white-space: pre-wrap;
141 }
142
143 form .section .item {
144   margin-bottom: .25em;
145 }
146
147 form .section button[value^=addfield] {
148   font-size: .75em;
149   margin-top: .5em; padding: 0 .375em;
150 }
151
152 /* HACK: "responsive" Delete Button above each field */
153     form input.delete { display: none; }
154     form input.delete + label {
155       float: right;
156       font-size: .75em;
157       line-height: 1;
158       max-width: 1.75em; height: 1.125em; overflow: hidden;
159       color: #FBB; background-color: #444;
160       margin: 0; padding: .125em .5em 0 .5em;
161       border-radius: 4pt 4pt 0 0;
162       transition: max-width .3s;
163     }
164     form input.delete + label:before  { content: '\274c '; margin-right: .5em; }
165     form input.delete + label:hover   { max-width: 10em; }
166     -form input.delete + label:hover:before { content: ''; }
167     -form input.delete + label:hover:after  { content: ' \274c'; }
168     form input.delete:checked + label,
169     form input.delete:checked + label + *,
170     form input.delete:checked + label + .teltype + .TEL {
171       display: none;
172     }
173 /**/
174
175
176 /* ====== right hand Control Buttons on list items ====== */
177
178 form .control {
179   position: relative;
180   padding-left: 11em;
181   padding-top: 1.5em;
182 }
183 form .control .item {
184   display: inline-block;
185   margin-bottom: .25em;
186   vertical-align: text-bottom;
187 }
188
189 /* Combined Select/Submit Box */
190     form .control .item.newfield { box-shadow: .125em .125em .25em; }
191     form .control .item.newfield select { margin-right: -1pt; }
192     form .control .item.newfield button { box-shadow: none; }
193 /**/
194
195 /* HACK: Delete Checkbox before delete Button */
196     form .control .item.delete {
197       position: absolute;
198       bottom: .375em; left: .25em; width: auto;
199       padding-bottom: calc(2.25em + 2pt);
200     }
201     
202     form .control .item.delete input + label + button {
203       display: none;
204       position: absolute;
205       bottom: 0; width: 100%;
206       color: #800;
207       background-color: #FEE;
208       z-index: 1;
209     }
210     form .control .item.delete:after {
211       content: attr(label);
212       display: block;
213       position: absolute;
214       bottom: 0; width: 100%;
215       text-align: center;
216       color: #BAA;
217       padding: .25em 0;
218       border: 1pt solid;
219       box-shadow: .125em .125em .25em;
220     }
221     form .control .item.delete input:checked + label + button { display: block; }
222 /**/
223
224 @media(min-width: 80em) {
225   form .control { padding: .25em; min-height: 16em; }
226   form .control .item { width: 100%; }
227   form .control .item.newfield select { width: calc(100% - 2.5em); }
228   form .control .item.delete { bottom: .125em; right: .25em; }
229 }
230
231 /* ======= LIST ITEMS, Clients ======= */
232
233 div.card .therapies a.therapy.button { padding: .25em; line-height: .75em; }
234
235 form.card .insurance #hi_select_list:checked ~ .tab[name=hi_company] {display: block; }
236 form.card .insurance #hi_other:checked ~ .tab[name=hi_other] {display: block; }
237
238 /* ======= LIST ITEMS, Courses ======= */
239
240 form.course .dtstart input[name=DTS_YEAR],
241 form.course .dtstart select[name=DTS_MONTH] { width: calc(50% - 1.25em); }
242 form.course .dtstart input[name=DTS_YEAR] { margin-right: -.375em; }
243 form.course .dtstart table { width: 100%; margin: 1em 0; }
244 form.course .dtstart table td { text-align: right; -border: .5pt solid; }
245 form.course .dtstart table input[type=radio] { display: none; }
246 form.course .dtstart table input[type=radio] + label {
247   display: block;
248   width: 100%;
249   margin: 0; padding: 0 3pt;
250 }
251 form.course .dtstart table input[type=radio]:checked + label {
252   font-weight: bold;
253   padding: 0 2pt;
254   box-shadow: .125em .125em .25em;
255 }
256
257 form.course .dtstart label.DTSTIME {
258   display: inline-block;
259   font-weight: bold;
260   margin: 0;
261   width: calc(100% - 7.875em);
262 }
263 form.course .dtstart input[name=DTS_HOUR],
264 form.course .dtstart input[name=DTS_MINUTE] {
265   vertical-align: baseline;
266   width: 3.5em;
267   margin-bottom: 0;
268 }
269
270 form.course .recur .item { white-space: nowrap; }
271 form.course .recur .item > * { margin-bottom: 0; vertical-align: baseline; }
272 form.course .recur input[name=RRULE_INTERVAL],
273 form.course .recur input[name=RRULE_COUNT],
274 form.course .recur input[name=RRULE_UMONTH],
275 form.course .recur input[name=RRULE_UDAY] { width: 3.5em; }
276 form.course .recur input[name=RRULE_UYEAR] { width: 4.5em; }
277 form.course .recur input[name=RRULE_UYEAR],
278 form.course .recur input[name=RRULE_UMONTH],
279 form.course .recur input[name=RRULE_UDAY] {
280   margin-right: -.375em;
281 }
282
283 form.course .attendance div.attendance {
284   max-height: 16em;
285   overflow-y: scroll;
286 }
287 form.course .attendance label {
288   display: inline-block;
289   max-width: calc(100% - 2em);
290   vertical-align: top;
291   margin-bottom: 0;
292 }
293 form.course .attendance input { margin-top: .375em; }
294
295 /* ======== Categories Page ======== */
296
297 body.categories form ul { list-style: none; margin: 0; }
298
299 form.categories li {
300   display: inline-block;
301   background-color: #EEE;
302   margin-right: .5em; margin-bottom: .5em;
303   padding-left: .5em;
304   box-shadow: .125em .125em .25em;
305 }
306 form.categories li button[name=remove] {
307   font-size: .75em;
308   width: 2.5em;
309   background-color: #FBB;
310   overflow: hidden;
311   white-space: pre;
312 }
313 form.categories li button[name=remove]:before {
314   content: '\274C ';
315   margin-right: 3em;
316 }
317
318 form.categories li:last-child { padding-left: 0 }
319
320 body.categories form.namelist ul.namelist > li:nth-of-type(2n + 1) { background-color: #EEE; }
321 body.categories form.namelist ul.namelist > li h2,
322 body.categories form.namelist ul.namelist > li ul {
323   display: inline-block;
324 }
325 body.categories form.namelist ul.namelist > li h2 {
326   width: 20%;
327   min-width: 10em;
328 }
329 body.categories form.namelist ul.namelist > li ul li {
330   display: inline-block;
331 }