1 /* Table styling. */ 2 3 table.calendar, 4 table.conflicts, 5 table.recurrence, 6 table.object { 7 border: 2px solid #000; 8 } 9 10 colgroup#columns-request { 11 background-color: #eef; 12 } 13 14 colgroup#columns-freebusy { 15 background-color: #fee; 16 } 17 18 th.requestheading { 19 background-color: #aaf; 20 } 21 22 th.participantheading{ 23 background-color: #faa; 24 } 25 26 th.dayheading, 27 th.mainheading { 28 background-color: #f85; 29 } 30 31 th.timeslot, 32 th.objectheading { 33 white-space: nowrap; 34 } 35 36 th.objectheading { 37 background-color: #fca; 38 } 39 40 th.timeslot { 41 padding-top: 0; 42 vertical-align: top; 43 } 44 45 th.timeslot span.endpoint { 46 display: none; 47 font-size: smaller; 48 } 49 50 td.event { 51 background-color: #ff8; 52 border: 2px solid #000; 53 } 54 55 td.event.only-organising { 56 background-color: #afd; 57 } 58 59 td.event.organising { 60 background-color: #af8; 61 } 62 63 td.event.continued { 64 border-top: 2px dotted #000; 65 } 66 67 td.event.continues { 68 border-bottom: 2px dotted #000; 69 } 70 71 td.event:target { 72 border-width: 4px; 73 background-color: #ee2; 74 } 75 76 td.event.organising:target { 77 background-color: #5f4; 78 } 79 80 td.event a { 81 color: #009; 82 } 83 84 th.objectheading.error { 85 background-color: #f77; 86 } 87 88 .partstat { 89 margin-left: 1em; 90 background-color: #eee; 91 } 92 93 .partstat, 94 .partstat option { 95 padding: 0.25em; 96 } 97 98 select.partstat { 99 background-color: #ccc; 100 padding: 0; 101 font-family: inherit; 102 font-size: inherit; 103 } 104 105 .affected { 106 font-weight: bold; 107 } 108 109 table.conflicts .replaced { 110 text-decoration: line-through; 111 } 112 113 .objectvalue.dtstart.replaced { 114 vertical-align: top; 115 } 116 117 /* Selection of slots/periods for new events. */ 118 119 input.newevent.selector { 120 display: none; 121 } 122 123 th.container, 124 td.container { 125 padding: 0; /* for regions covered by labels */ 126 } 127 128 th.dayheading:hover, 129 th.dayheading:focus, 130 th.timeslot:hover, 131 th.timeslot:focus, 132 td.container:hover, 133 td.container:focus { 134 background-color: #af8; 135 } 136 137 label.day, 138 label.newevent.popup { 139 display: block; /* to make labels cover regions */ 140 padding: 0.25em; 141 } 142 143 label.newevent.popup { 144 visibility: hidden; 145 text-align: center; 146 } 147 148 td.container:hover label.newevent.popup, 149 td.container:focus label.newevent.popup { 150 visibility: visible; 151 } 152 153 input.newevent:checked ~ .timepoint { 154 background-color: #5f4; 155 text-decoration: underline; 156 } 157 158 /* Hiding/showing busy slots/periods or unused days. */ 159 160 /* Hide the controls. */ 161 162 input#hidebusy, 163 input#showdays, 164 165 /* Hide the enable labels when controls are already enabled. */ 166 /* Hide the disable labels when controls are already disabled. */ 167 168 input#hidebusy:checked ~ .controls label.enable[for=hidebusy], 169 input#showdays:checked ~ .controls label.disable[for=showdays], 170 input#hidebusy:not(:checked) ~ .controls label.disable[for=hidebusy], 171 input#showdays:not(:checked) ~ .controls label.enable[for=showdays], 172 173 /* Hide calendar rows depending on the selected controls. */ 174 175 input#hidebusy:checked ~ .calendar tr.slot.busy, 176 input#showdays:not(:checked) ~ .calendar thead.separator.empty, 177 input#showdays:not(:checked) ~ .calendar tbody.points.empty, 178 179 /* Hiding/showing end datetimes and start/end times. */ 180 181 input#dttimes-enable, 182 input#dtend-enable, 183 input#dttimes-enable:not(:checked) ~ .object td.objectvalue .time.enabled, 184 input#dttimes-enable:checked ~ .object td.objectvalue .time.disabled, 185 input#dtend-enable:not(:checked) ~ .object td.objectvalue.dtend .dt.enabled, 186 input#dtend-enable:checked ~ .object td.objectvalue.dtend .dt.disabled, 187 188 /* Hiding/showing remove/uninvite labels. */ 189 190 input.add, 191 input.remove, 192 input.remove:checked ~ label.remove, 193 input.remove:not(:checked) ~ label.removed, 194 195 /* Hide the participation refresh control, selected using a label. */ 196 197 input.refresh, 198 199 /* Hide the reset control, selected using a label. */ 200 201 input#reset { 202 display: none; 203 } 204 205 /* Show slot endpoints when hiding adjacent busy periods. */ 206 207 input#hidebusy:checked ~ .calendar th.timeslot span.endpoint { 208 display: block; 209 } 210 211 /* Style the labels. */ 212 213 label.day, 214 label.timepoint, 215 label.newevent, 216 .dt.disabled label, 217 .dt.enabled label, 218 label.add, 219 label.remove, 220 label.removed, 221 label.hidebusy, 222 label.showdays, 223 label.reset { 224 cursor: pointer; 225 } 226 227 label.add, 228 label.remove, 229 label.removed { 230 float: right; 231 } 232 233 .dt.disabled label, 234 .dt.enabled label, 235 label.add, 236 label.remove, 237 label.removed, 238 label.hidebusy, 239 label.showdays, 240 label.reset { 241 color: #009; 242 text-decoration: underline; 243 } 244 245 .dt.disabled label, 246 .dt.enabled label { 247 display: inline-block; 248 } 249 250 .dt.enabled label { 251 margin-top: 0.25em; 252 } 253 254 label.hidebusy, 255 label.showdays, 256 label.reset { 257 padding-left: 0.25em; 258 } 259 260 label.showdays { 261 border-left: 1em solid #faa; /* th.participantheading background-color */ 262 } 263 264 label.hidebusy { 265 border-left: 1em solid #af8; /* td.event background-color */ 266 } 267 268 label.reset { 269 border-left: 1em solid #5f4; /* (selected) .timepoint background-color */ 270 }