:root { --calendar-fablab-red: #D13F34; --calendar-fablab-blue: #16A3C4; --calendar-border: 1px solid #999; } body { color: black; /* inspired by fablab-altmuehlfranken.de */ font-weight: 100; line-height: 1.3; font-size: 9pt; height: auto; overflow: auto; /*background: repeating-linear-gradient(135deg, #eee, #eee 100px, #ccc 100px, #ccc 200px);*/ } .calendar { width: 100%; margin: 0 auto; } .calendar-date { margin-bottom: 8px; display: flex; align-items: stretch; flex-direction: row; } .calendar-date-date { border: var(--calendar-border); text-align: center; border-radius: 5px; margin-right: 8px; flex: 35px 0 0; height: 100%; background-color: white; } .calendar-date-month { background-color: var(--calendar-fablab-red); color: white; padding: 3px 0; } .calendar-date:nth-of-type(2n) .calendar-date-month { /*background-color: var(--calendar-fablab-blue);*/ } .calendar-date-day { font-size: 13pt; font-weight: 700; padding-top: 3px; } .calendar-date-weekday { padding-bottom: 3px; } .calendar-events { flex-grow: 100; vertical-align: top; } .calendar-event { background-color: white; border: var(--calendar-border); border-radius: 5px; padding: 5px; margin-bottom: 5px; filter: brightness(1); display: flex; align-items: stretch; flex-direction: row; justify-content: center; } .calendar-event-time { text-align: center; padding: 5px 8px 5px 5px; margin: -5px 0 -5px -5px; flex: 0 0 45px; background-color: #ddd; } .calendar-event-timesep { line-height: 1.2; } .calendar-event-timesep:before { display: block; content: "⋮"; } .calendar-event-description { flex-grow: 100; margin: 0 5px; word-break: break-word; word-wrap: break-word; hyphens: auto; } .calendar-event-description, .calendar-event-time { display: flex; flex-direction: column; justify-content: center; } .calendar-event-description p { margin-bottom: 0.5em; } .calendar-event-description p:last-child { margin-bottom: 0; } .calendar-event-type { flex: 0 0 12px; margin: -5px -5px -5px 0; } .calendar-subscription-buttons { text-align: center; } @media only screen and (max-width: 960px) { .calendar-event { flex-direction: column; } .calendar-event-time { flex-direction: row; padding: 5px 8px 5px 5px; margin: -5px -5px 5px -5px; flex: 0 0 12px; align-content: center; justify-content: center; } .calendar-event-type { flex: 0 0 12px; margin: 5px -5px -5px -5px; } .calendar-event-timesep { display: block; } .calendar-event-timesep:before { display: block; content: "..."; padding: 0 3px; } } .calendar-date-date, .calendar-event { /* make sure border radius clips content */ overflow: hidden; } details.calendar-event-details > summary { text-decoration: underline dotted black; } .calendar-popover-content > * { margin: 5px 0; } .calendar-popover-entry { display: flex; margin: 5px 0; } .calendar-popover-entry-icon { flex: 0 0 18px; } /* CSS-only "fake soft open", might be replaced something more sophisticated in the future */ details.calendar-event-details[open] summary ~ * { animation: calendar-event-details-sweep .5s ease-in-out; } @keyframes calendar-event-details-sweep { 0% {opacity: 0; transform: translateY(-10px)} 100% {opacity: 1; transform: translateY(0)} }