/* Шрифт лежит в репозитории: без запросов к Google и без утечки IP клиента. */
@font-face {
    font-family: "JetBrains Mono";
    src: url("/assets/fonts/JetBrainsMono-Variable.ttf") format("truetype");
    font-weight: 100 800;
    font-style: normal;
    font-display: swap;
}

:root {
    --font-mono: "JetBrains Mono";
}

/* Элементы с hidden не должны перебиваться display из классов. */
[hidden] {
    display: none !important;
}

/* Мастер: вариант выбора — теперь label с настоящим input внутри.
   Подсветка работает и через :has, и через класс .sel, который ставит JS. */
.opt {
    position: relative;
}

.opt-input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
    opacity: 0;
    pointer-events: none;
}

.opt:has(.opt-input:checked) {
    border-color: rgba(0, 232, 154, 0.85);
    background: rgba(0, 232, 154, 0.075);
    color: #eafff6;
    box-shadow:
        0 0 0 1px rgba(0, 232, 154, 0.16),
        0 0 22px -12px rgba(0, 232, 154, 0.6);
}

.opt:has(.opt-input:checked) .box {
    color: var(--grn);
    text-shadow: 0 0 8px rgba(0, 232, 154, 0.5);
}

.opt:has(.opt-input:focus-visible) {
    outline: 1px dashed rgba(0, 232, 154, 0.7);
    outline-offset: 3px;
}

body.day .opt:has(.opt-input:checked) {
    background: rgba(0, 120, 85, 0.08);
    border-color: #00795a;
    color: #0b241a;
    box-shadow: none;
}

body.day .opt:has(.opt-input:checked) .box {
    color: #00795a;
}

/* Квадратик выбора рисует CSS — текст в разметке остаётся пустым. */
.opt .box::before {
    content: "[ ]";
}

.opt:has(.opt-input:checked) .box::before {
    content: "[x]";
}

/* Мелкие дополнения, которых не было в Next-версии. */
.inline-form {
    display: inline;
    margin: 0;
}

.linklike {
    background: none;
    border: 0;
    color: inherit;
    font: inherit;
    cursor: pointer;
    padding: 0;
}