/* General ********************************************************************/ body { font-family: sans-serif; margin: 0; display: flex; flex-direction: column; min-height: 100vh; } body > header { padding: 0 20px; border-bottom: solid 1px black; } body > article { flex-grow: 2; padding: 20px; } body > footer { border-top: solid 1px black; background-color: #fafafa; padding: 8px 20px; } body > footer a { color: #0063c4; text-decoration: none; } body > footer a:hover, body > footer a:active, body > footer a:focus { text-decoration: underline; } /* Jobs table *****************************************************************/ table.jobs { border-collapse: collapse; } table.jobs > * > tr > th, table.jobs > * > tr > td { border: solid 1px black; padding: 0.2em; } table.jobs > * > tr:nth-child(odd) > td { background-color: #eeeeee; } table.jobs tt { background-color: #ddddff; } table.jobs td.job-id { text-align: center } table.jobs td.job-triggers table { border-spacing: 0; border-radius: 0.8em; border: solid 1px black; overflow: hidden; } table.jobs td.job-triggers td { padding: 0.4em; } table.jobs td.job-triggers td:not(:last-child) { border-right: solid 1px black; } table.jobs td.job-triggers tr:not(:last-child) td { border-bottom: solid 1px black; } table.jobs td.job-status { text-align: center; } table.jobs tr.job-new td.job-status { background-color: yellow; } table.jobs tr.job-running td.job-status { background-color: blue; } table.jobs tr.job-succeeded td.job-status { background-color: green; } table.jobs tr.job-failed td.job-status { background-color: red; } table.jobs tr.job-error td { background-color: red; }