/* Colors of the Telegram theme (--tg-theme-*, set by telegram-web-app.js); the fallbacks are for a plain browser. */
:root {
    --bg: var(--tg-theme-bg-color, #ffffff);
    --text: var(--tg-theme-text-color, #222222);
    --hint: var(--tg-theme-hint-color, #999999);
    --accent: var(--tg-theme-button-color, #3390ec);
    --accent-text: var(--tg-theme-button-text-color, #ffffff);
}

@media (prefers-color-scheme: dark) {
    :root {
        --bg: var(--tg-theme-bg-color, #17212b);
        --text: var(--tg-theme-text-color, #f5f5f5);
        --hint: var(--tg-theme-hint-color, #708499);
        --accent: var(--tg-theme-button-color, #5288c1);
        --accent-text: var(--tg-theme-button-text-color, #ffffff);
    }
}

body {
    margin: 0;
    padding: 16px;
    min-height: 100vh;
    box-sizing: border-box;
    font-family: system-ui, -apple-system, sans-serif;
    background: var(--bg);
    color: var(--text);
}

[hidden] {
    display: none !important;
}

.hint {
    color: var(--hint);
}

/* loading and errors: in the middle of the screen */
.status {
    min-height: calc(100vh - 32px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.status p {
    margin: 4px 0;
}

.month-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.month-bar h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
}

.arrow {
    width: 44px;
    height: 44px;
    border: none;
    background: none;
    color: var(--accent);
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

.arrow:disabled {
    color: var(--hint);
    opacity: 0.4;
    cursor: default;
}

.weekdays,
.grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
}

.weekdays {
    font-size: 13px;
    color: var(--hint);
    margin-bottom: 4px;
}

/* a day: the number in a circle, the dot of notes under it */
.cell {
    height: 48px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 2px 0 0;
    border: none;
    background: none;
    color: var(--text);
    font: inherit;
    cursor: pointer;
}

.cell:disabled {
    color: var(--hint);
    cursor: default;
}

.number {
    width: 34px;
    height: 34px;
    box-sizing: border-box;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.today .number {
    border: 2px solid var(--accent);
}

.selected .number {
    background: var(--accent);
    color: var(--accent-text);
}

.dot {
    width: 5px;
    height: 5px;
    margin-top: 3px;
    border-radius: 50%;
}

.has-notes .dot {
    background: var(--accent);
}

.day {
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid color-mix(in srgb, var(--hint) 30%, transparent);
}

.day h2 {
    margin: 0 0 8px;
    font-size: 16px;
    font-weight: 600;
}

.day p {
    margin: 0;
}
