+* {
+ font-family: sans-serif;
+ font-weight: normal;
+ font-size: initial;
+ font-style: normal;
+ text-decoration: none;
+ line-height: 1.5em;
+ color: inherit; background: transparent;
+ padding: 0; margin: 0;
+ border: none;
+}
+
+body {
+ color: #000; background-color: #FFF;
+}
+
+p { margin-bottom: 1em; }
+
+a {
+ text-decoration: underline;
+ font-style: italic;
+ color: #068;
+}
+
+i, em { font-style: italic; }
+b, strong { font-weight: bolder; }
+ul, ol { margin-left: 1.125em; }
+
+h1, h2, h3 {
+ font-weight: bold;
+ margin-top: 1em;
+ margin-bottom: .5em;
+}
+
+h1:first-child, h2:first-child, h3:first-child,
+p + h1, p + h2, p + h3 {
+ margin-top: 0;
+}
+
+h4, h5, h6, form legend {
+ font-weight: bolder;
+ margin-bottom: .25em;
+}
+
+h1 { font-size: 1.5em; }
+h2 { font-size: 1.125em; }
+
+select, input, button, textarea,
+.control a {
+ display: inline-block;
+ background-color: #FFF;
+ border: 1pt solid;
+ padding: .25em .75em;
+ vertical-align: text-bottom;
+}
+.control a {
+ color: inherit;
+ font-style: normal;
+ text-decoration: none;
+}
+
+select { padding: .375em 0; }
+
+input[type=radio], input[type=checkbox] {
+ vertical-align: baseline;
+}
+
+button, input[type=button],
+.control a {
+ box-shadow: .125em .125em .25em;
+}
+
+label { margin-right: .75em; }
+input + label {
+ margin-left: .375em;
+}
+
+body > form,
+div.card,
+div.courselist {
+ position: relative;
+ width: 98%; width: calc(100% - 2em);
+ margin-left: auto; margin-right: auto;
+ margin-bottom: 1em;
+ box-shadow: .125em .125em .25em;
+ z-index: 1;
+}
+
+/* HACK: put anchor point 10em above card and highlight target element */
+ div:target { box-shadow: none; z-index: 0; }
+ div:target:before {
+ content: '';
+ display: block;
+ margin-top: -10em;
+ height: 10em;
+ visibility: hidden;
+ }
+ div:target:after {
+ content: '';
+ display: block;
+ position: absolute;
+ left: 0; right: 0;
+ top: 10em; bottom: 0;
+ box-shadow: .125em .125em .25em;
+ animation: highlight 4s;
+ z-index: -1;
+ }
+ @keyframes highlight { from { background-color: #FF0; } to { background-color: transparent; } }
+/**/
+
+div .section, form .section {
+ display: block;
+ vertical-align: top;
+ padding: 0 1em;
+ overflow: hidden;
+ word-break: break-word;
+}
+
+div .section :last-child, form .section :last-child {
+ margin-bottom: 1em;
+}
+
+div .section h2, form .section h2,
+div .section h3, form .section h3 {
+ border-bottom: 1pt solid #EEE;
+}
+div .control, form .control {
+ background-color: #EEE;
+ padding: .25em;
+ text-align: right;
+}
+
+@media(min-width: 60em) {
+ div .section, form .section {
+ display: table-cell;
+ width: calc(100% / 10);
+ }
+ div .section :last-child { margin-bottom: 0; }
+ div .control, form .control {
+ background-color: transparent;
+ }
+ div .section:nth-of-type(2n) {
+ background-color: #EEE;
+ }
+}
+@media(min-width: 80em) {
+ div .control, form .control {
+ display: table-cell;
+ width: calc(100% / 10);
+ }
+ div .control .item, form .control .item {
+ display: block;
+ margin-bottom: .25em;
+ }
+}
+
+div .section .item, form .section .item,
+form .section.attendance > label {
+ display: block;
+ width: 100%;
+}
+
+form .section .item {
+ margin-bottom: .25em;
+}
+
+form .section button[value^=addfield] {
+ font-size: .75em;
+ margin-top: .5em; padding: 0 .375em;
+}
+
+form input.delete { display: none; }
+form input.delete + label {
+ float: right;
+ font-size: .75em;
+ line-height: 1;
+ max-width: .75em; height: .875em; overflow: hidden;
+ color: #FBB; background-color: #444;
+ margin: 0; padding: .125em .5em 0 .5em;
+ border-radius: 4pt 4pt 0 0;
+ transition: max-width .3s;
+}
+form input.delete + label:before { content: '\274c '; margin-right: .5em; }
+form input.delete + label:hover { max-width: 10em; }
+-form input.delete + label:hover:before { content: ''; }
+-form input.delete + label:hover:after { content: ' \274c'; }
+form input.delete:checked + label,
+form input.delete:checked + label + * {
+ display: none;
+}
+
+form .control {
+ position: relative;
+ padding-left: 11em;
+ padding-top: 1.5em;
+}
+form .control .item {
+ display: inline-block;
+ margin-bottom: .25em;
+ vertical-align: text-bottom;
+}
+
+form .control .item.newfield {
+ box-shadow: .125em .125em .25em;
+}
+form .control .item.newfield select {
+ margin-right: -1pt;
+}
+form .control .item.newfield button {
+ box-shadow: none;
+}
+
+form .control .item.delete {
+ position: absolute;
+ bottom: .375em; left: .25em; width: auto;
+ padding-bottom: calc(2.25em + 2pt);
+}
+
+@media(min-width: 80em) {
+ form .control { padding: .25em; min-height: 16em; }
+ form .control .item { width: 100%; }
+ form .control .item.newfield select { width: calc(100% - 2.5em); }
+ form .control .item.delete { bottom: .125em; right: .25em; }
+}
+form .control .item.delete input + label + button {
+ display: none;
+ position: absolute;
+ bottom: 0; width: 100%;
+ color: #800;
+ background-color: #FEE;
+ z-index: 1;
+}
+form .control .item.delete:after {
+ content: attr(label);
+ display: block;
+ position: absolute;
+ bottom: 0; width: 100%;
+ text-align: center;
+ color: #BAA;
+ padding: .25em 0;
+ border: 1pt solid;
+ box-shadow: .125em .125em .25em;
+}
+form .control .item.delete input:checked + label + button { display: block; }