@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

:root {
    --bg: white;
    --fg: black;
    --links: rebeccapurple;
    --code: #eee;
}

* { scrollbar-color: var(--code) var(--bg); box-sizing: border-box; }

body {
    color: var(--fg);
    background-color: var(--bg);
    font-family:'Inter', sans-serif;
    font-size: 14px;
    font-weight: 300;
    margin: 0;
    min-height: 100%;
    overflow-wrap: break-word;
    line-height: 1.5;
}
  
header, main { padding: 1em 2em; }
article { max-width: 666px; margin: 0 auto; }
footer {
    left: 0;
    bottom: 0;
    max-width: 100%;
    padding: 1em 2em;
}

a { color: var(--links); text-decoration: none; font-weight: 400; }
a:hover { text-decoration: underline; }
a.active { color: var(--fg); }
a.active:hover { text-decoration: none; opacity: 0.5; }
a.menu { color: var(--fg); opacity: 0.5; }
a.menu:hover { text-decoration: none; opacity: 1; }

h1 { display: block; font-size: 1.6rem; margin-bottom: 0.4em; font-weight: 500; }
h2 { display: block; font-size: 1.3rem; margin-bottom: 1em; font-weight: 400; margin-top: 2em; }
h3 { display: block; font-size: 1.1rem; margin-bottom: 0.6em; font-weight: 400; }

p { margin-bottom: 1rem; font-weight: 300; }

hr {
    margin: 2rem 0;
    border-top-width: 1px;
    color: var(--fg);
    opacity: 0.25;
}

.title { color: var(--fg); text-decoration: none; font-size: 1.5em; font-weight: 600; }
.title:hover { text-decoration: underline; }

.month-section { margin: 4em 0; max-width: 800px; }
.month-section:first-of-type { margin-top: 1em; }
.month-heading { font-size: 1.2em; font-weight: 500; margin-bottom: 0.8em; }

.days-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    grid-template-rows: repeat(auto-fit, 1fr);
    grid-gap: 0;
    max-width: 800px;
    margin-top: -0.90px;
    margin-left: -0.90px;
}

.days-grid .day-cell {
    border: .90px solid black;
    height: 100px;
    padding: .60em;
    color: black;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.days-grid .day-cell.empty {
    border: .90px solid black;
    background: transparent;
    pointer-events: none;
}

.days-grid .day-cell.has-data .day-number::after {
    content: '';
    background: #656565;
    width: 10px; height: 10px;
    margin-left: 8px;
    border-radius: 100%;
    display: inline-block;
}

.days-grid .day-cell:hover:not(.empty) { background: #c1c1c1; color: #ffffff; }
.days-grid .day-cell:hover:not(.empty) .day-number { color: #ffffff; }
.days-grid .day-cell:hover:not(.empty) .day-number::after { background: #ffffff; }
.step-display { font-size: 0.85em; font-weight: 400; text-align: right; align-self: flex-end; }