+table.calendar {
+ display: inline-block;
+ -border: 1pt solid;
+ border-collapse: collapse;
+ vertical-align: top;
+}
+table.calendar td {
+ border: 1pt solid;
+}
+
+table.calendar thead tr.monthname {
+ border-style: solid;
+ border-width: 1pt 1pt 1pt 1pt;
+}
+table.calendar thead tr.weekday th:first-of-type {
+ border-style: solid;
+ border-width: 0pt 0pt 0pt 1pt;
+}
+table.calendar thead tr.weekday th:last-child {
+ border-right: 1pt solid;
+}
+table.calendar tbody tr th {
+ border-left: 1pt solid #000;
+}
+table.calendar tbody tr:last-child th {
+ border-bottom: 1pt solid #000;
+}
+
+table.calendar tbody tr th.weekno {
+ width: 2em;
+ padding: 0 .25em;
+ text-align: right;
+ font-weight: normal;
+ color: #888;
+}
+
+table.calendar input[type=radio] {
+ display: none;
+}
+table.calendar td input + label {
+ display: inline-block;
+ width: 2em;
+ margin: 0; padding: .25em;
+ text-align: right;
+ line-height: 1em;
+}
+table.calendar td input:checked + label {
+ font-weight: bold;
+ line-height: .75em;
+ border: .125em solid;
+}