1 h1:first-child, h2:first-child, h3:first-child,
2 p + h1, p + h2, p + h3 {
6 /* ====== COMMON ELEMENTS ======*/
11 margin: 0; -padding: 0 .5em;
14 background-color: #444;
15 box-shadow: inset 0 -.25em .25em #000;
21 display: inline-block;
26 box-shadow: inset 0 0 .5em #000;
28 body.cards > .menu a[href$="/cards/"],
29 body.courses > .menu a[href$="/courses/"] {
31 background-color: #FFF;
35 /* =========== FILTER AND SEARCH Headers ========= */
38 form.search, form.sort, form.filter, form.newcard, form.newcourses {
39 margin-top: 1em; padding: 0 1em;
42 form.filter > h1 { display: none; }
44 form.filter fieldset { margin-top: .5em; }
45 form.filter fieldset.item + fieldset.item legend { display: none; }
47 form.filter fieldset.item input[value=course] ~ input[type=text],
48 form.filter fieldset.item input[value=CATEGORIES] ~ input[type=text] { display: block; }
49 form.filter fieldset.item input[value=course]:checked ~ input[type=text],
50 form.filter fieldset.item input[value=CATEGORIES]:checked ~ input[type=text] { display: none; }
51 form.filter fieldset.item input[value=course]:checked ~ fieldset.courses,
52 form.filter fieldset.item input[value=CATEGORIES]:checked ~ fieldset.categories { display: block; }
54 form.filter fieldset.order legend {
55 float: left; margin-right: 1em;
58 form.filter fieldset label,
59 form.filter fieldset a { white-space: pre;}
60 form.filter button[type=submit] {
61 margin-top: .5em; margin-bottom: .5em;
64 form.filter button[value=export_csv] { margin-left: 1em; }
66 body.courses form .order { display: inline-block; margin-right: 2em;}
68 body.cards form.newcard { display: flex; }
69 body.cards form.newcard input[name=seed] { flex: 1; }
72 /* ============ LIST ITEMS, Generic ============= */
78 width: 98%; width: calc(100% - 2em);
79 margin-left: auto; margin-right: auto;
81 box-shadow: .125em .125em .25em;
85 /* HACK: put anchor point 10em above card and highlight target element */
86 div:target { box-shadow: none; z-index: 0; }
100 box-shadow: .125em .125em .25em;
101 animation: highlight 4s;
104 @keyframes highlight { from { background-color: #FF0; } to { background-color: transparent; } }
107 div .section, form .section {
112 word-break: break-word;
115 div .section :last-child, form .section :last-child {
119 div .section h2, form .section h2,
120 div .section h3, form .section h3 {
121 border-bottom: 1pt solid #EEE;
123 div .control, form .control {
124 background-color: #EEE;
129 @media(min-width: 60em) {
130 div .section, form .section {
132 width: calc(100% / 10);
134 div .section :last-child { margin-bottom: 0; }
135 div .control, form .control {
136 background-color: transparent;
138 div .section:nth-of-type(2n) {
139 background-color: #EEE;
142 @media(min-width: 80em) {
143 div .control, form .control {
145 width: calc(100% / 10);
147 div .control .item, form .control .item {
149 margin-bottom: .25em;
153 div .section .item, form .section .item,
154 form .section.attendance > label {
159 div .section .item.NOTE {
160 white-space: pre-wrap;
163 form .section .item {
164 margin-bottom: .25em;
167 form .section button[value^=addfield] {
169 margin-top: .5em; padding: 0 .375em;
172 /* HACK: "responsive" Delete Button above each field */
173 form input.delete { display: none; }
174 form input.delete + label {
178 max-width: 1.75em; height: 1.125em; overflow: hidden;
179 color: #FBB; background-color: #444;
180 margin: 0; padding: .125em .5em 0 .5em;
181 border-radius: 4pt 4pt 0 0;
182 transition: max-width .3s;
184 form input.delete + label:before { content: '\274c '; margin-right: .5em; }
185 form input.delete + label:hover { max-width: 10em; }
186 -form input.delete + label:hover:before { content: ''; }
187 -form input.delete + label:hover:after { content: ' \274c'; }
188 form input.delete:checked + label,
189 form input.delete:checked + label + *,
190 form input.delete:checked + label + .teltype + .TEL {
196 /* ====== right hand Control Buttons on list items ====== */
203 form .control .item {
204 display: inline-block;
205 margin-bottom: .25em;
206 vertical-align: text-bottom;
209 /* Combined Select/Submit Box */
210 form .control .item.newfield { box-shadow: .125em .125em .25em; }
211 form .control .item.newfield select { margin-right: -1pt; }
212 form .control .item.newfield button { box-shadow: none; }
215 /* HACK: Delete Checkbox before delete Button */
216 form .control .item.delete {
218 bottom: .375em; left: .25em; width: auto;
219 padding-bottom: calc(2.25em + 2pt);
222 form .control .item.delete input + label + button {
225 bottom: 0; width: 100%;
227 background-color: #FEE;
230 form .control .item.delete:after {
231 content: attr(label);
234 bottom: 0; width: 100%;
239 box-shadow: .125em .125em .25em;
241 form .control .item.delete input:checked + label + button { display: block; }
244 @media(min-width: 80em) {
245 form .control { padding: .25em; min-height: 16em; }
246 form .control .item { width: 100%; }
247 form .control .item.newfield select { width: calc(100% - 2.5em); }
248 form .control .item.delete { bottom: .125em; right: .25em; }
252 /* ======= LIST ITEMS, Cards ======= */
254 form.card .attendance div.attendance,
255 form.card .attendance div.categories {
259 form.card .attendance label {
260 display: inline-block;
261 width: calc(100% - 2em);
265 form.card .attendance input { margin-top: .375em; }
268 /* ======= LIST ITEMS, Courses ======= */
270 form.course .dtstart input[name=DTS_YEAR],
271 form.course .dtstart select[name=DTS_MONTH] { width: calc(50% - 1.25em); }
272 form.course .dtstart input[name=DTS_YEAR] { margin-right: -.375em; }
273 form.course .dtstart table { width: 100%; margin: 1em 0; }
274 form.course .dtstart table td { text-align: right; -border: .5pt solid; }
275 form.course .dtstart table input[type=radio] { display: none; }
276 form.course .dtstart table input[type=radio] + label {
279 margin: 0; padding: 0 3pt;
281 form.course .dtstart table input[type=radio]:checked + label {
284 box-shadow: .125em .125em .25em;
287 form.course .dtstart label.DTSTIME {
288 display: inline-block;
291 width: calc(100% - 7.875em);
293 form.course .dtstart input[name=DTS_HOUR],
294 form.course .dtstart input[name=DTS_MINUTE] {
295 vertical-align: baseline;
300 form.course .recur .item { white-space: nowrap; }
301 form.course .recur .item > * { margin-bottom: 0; vertical-align: baseline; }
302 form.course .recur input[name=RRULE_INTERVAL],
303 form.course .recur input[name=RRULE_COUNT],
304 form.course .recur input[name=RRULE_UMONTH],
305 form.course .recur input[name=RRULE_UDAY] { width: 3.5em; }
306 form.course .recur input[name=RRULE_UYEAR] { width: 4.5em; }
307 form.course .recur input[name=RRULE_UYEAR],
308 form.course .recur input[name=RRULE_UMONTH],
309 form.course .recur input[name=RRULE_UDAY] {
310 margin-right: -.375em;
313 form.course .attendance div.attendance {
317 form.course .attendance label {
318 display: inline-block;
319 max-width: calc(100% - 2em);
323 form.course .attendance input { margin-top: .375em; }
325 /* ======== Categories Page ======== */
327 body.categories form ul { list-style: none; margin: 0; }
330 display: inline-block;
331 background-color: #EEE;
332 margin-right: .5em; margin-bottom: .5em;
334 box-shadow: .125em .125em .25em;
336 form.categories li button[name=remove] {
339 background-color: #FBB;
343 form.categories li button[name=remove]:before {
348 form.categories li:last-child { padding-left: 0 }
350 body.categories form.namelist ul.namelist > li:nth-of-type(2n + 1) { background-color: #EEE; }
351 body.categories form.namelist ul.namelist > li h2,
352 body.categories form.namelist ul.namelist > li ul {
353 display: inline-block;
355 body.categories form.namelist ul.namelist > li h2 {
359 body.categories form.namelist ul.namelist > li ul li {
360 display: inline-block;