/*table, th, td {*/ th, td { border: 1px solid black; padding: 0; } td { overflow: hidden; } th { padding: 3px; background-color: #ccc; /* https://stackoverflow.com/questions/41882616/why-border-is-not-visible-with-position-sticky-when-background-color-exists */ background-clip: padding-box; } th:after{ content:''; position:absolute; left: 0; bottom: 0; width:100%; border-bottom: 1px solid black; } tr:first-child { position: sticky; top: -1px; border: 1px solid #000; z-index: 100; } tr > td:first-child { padding-left: 2px; padding-right: 2px; background-color: #ccc; } td.has-task { padding: 3px; background-color: #aaa; position: relative; background-clip: padding-box; } td.tag-busy { background-color: red; } td.tag-tentative { /* https://www.quackit.com/css/codes/patterns/css_background_stripes.cfm */ background-image: repeating-linear-gradient(165deg, #ccc, #ccc 10px, #dbdbdb 10px, #dbdbdb 20px); } td.tag-rough { border-style: dashed; border-width: 2px; } td.tag-join-me { background-color: #2a2; } td.tag-self { background-color: #22aa9d6e; } td a { display: block; text-decoration: none; color: inherit; padding: 0; overflow-y: auto; position: absolute; top: 0; height: 100%; width: 100%; } li:target { background-color: #aeb; }