/**
 * This file is part of Numerus
 * Copyright (C) 2025 jordi fita mas <jordi@tandem.blog>
 * Copyright (C) 2025 Oriol Carbonell <info@oriolcarbonell.cat>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */


:root, [data-bs-theme="light"] {
    --numerus--rgb--black: 63, 59, 55;
    --numerus--rgb--dark-gray: 138, 136, 133;
    --numerus--rgb--light-gray: 225, 219, 214;
    --numerus--rgb--white: 255, 255, 255;
    --numerus--rgb--yellow: 255, 210, 0;
    --numerus--rgb--red: 255, 122, 83;
    --numerus--rgb--rosy: 255, 186, 166;
    --numerus--rgb--green: 90, 228, 135;
    --numerus--rgb--light-green: 159, 239, 185;
    --numerus--rgb--blue: 144, 199, 211;
    --numerus--rgb--light-blue: 203, 235, 255;
    --numerus--rgb--hay: 255, 230, 115;

    --numerus--color--black: rgb(var(--numerus--rgb--black));
    --numerus--color--dark-gray: rgb(var(--numerus--rgb--dark-gray));
    --numerus--color--light-gray: rgb(var(--numerus--rgb--light-gray));
    --numerus--color--white: rgb(var(--numerus--rgb--white));
    --numerus--color--yellow: rgb(var(--numerus--rgb--yellow));
    --numerus--color--red: rgb(var(--numerus--rgb--red));
    --numerus--color--rosy: rgb(var(--numerus--rgb--rosy));
    --numerus--color--green: rgb(var(--numerus--rgb--green));
    --numerus--color--light-green: rgb(var(--numerus--rgb--light-green));
    --numerus--color--blue: rgb(var(--numerus--rgb--blue));
    --numerus--color--light-blue: rgb(var(--numerus--rgb--light-blue));
    --numerus--color--hay: rgb(var(--numerus--rgb--hay));

    --numerus--text-color: var(--numerus--color--black);
    --numerus--background-color: var(--numerus--color--white);
    --numerus--font-family: 'JetBrains Mono';

    --numerus--header--background-color: #ede9e5;

    --lt-color-overlay-transparent: rgba(0, 0, 0, 0) !important;
    --lt-shadow-website-overlay: 0 !important;
    --lt-shadowDefault: 0 !important;
    --lt-shadowActive: 0 !important;

    --bs-border-radius: 0;
    --bs-border-radius-sm: 0;
    --bs-border-radius-lg: 0;
    --bs-border-radius-xl: 0;
    --bs-border-radius-xxl: 0;
    --bs-border-radius-2xl: 0;
    --bs-border-radius-pill: 0;
    --bs-box-shadow: none;
    --bs-box-shadow-sm: none;
    --bs-box-shadow-lg: none;
    --bs-box-shadow-inset: none;

    --bs-danger-rgb: var(--numerus--rgb--red);
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: italic;
    font-weight: 100;
    font-display: swap;
    src: local('JetBrains Mono Thin'), url('../Fonts/JetBrainsMono-ThinItalic.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: italic;
    font-weight: 200;
    font-display: swap;
    src: local('JetBrains Mono ExtraLight'), url('../Fonts/JetBrainsMono-ExtraLightItalic.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: italic;
    font-weight: 300;
    font-display: swap;
    src: local('JetBrains Mono Light'), url('../Fonts/JetBrainsMono-LightItalic.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: local('JetBrains Mono'), url('../Fonts/JetBrainsMono-Italic.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: italic;
    font-weight: 500;
    font-display: swap;
    src: local('JetBrains Mono Medium'), url('../Fonts/JetBrainsMono-MediumItalic.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: italic;
    font-weight: 600;
    font-display: swap;
    src: local('JetBrains Mono SemiBoldItalic'), url('../Fonts/JetBrainsMono-SemiBoldItalic.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: italic;
    font-weight: 700;
    font-display: swap;
    src: local('JetBrains Mono Bold'), url('../Fonts/JetBrainsMono-BoldItalic.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: italic;
    font-weight: 800;
    font-display: swap;
    src: local('JetBrains Mono ExtraBold'), url('../Fonts/JetBrainsMono-ExtraBoldItalic.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 100;
    font-display: swap;
    src: local('JetBrains Mono Thin'), url('../Fonts/JetBrainsMono-Thin.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 200;
    font-display: swap;
    src: local('JetBrains Mono ExtraLight'), url('../Fonts/JetBrainsMono-ExtraLight.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: local('JetBrains Mono Light'), url('../Fonts/JetBrainsMono-Light.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: local('JetBrains Mono'), url('../Fonts/JetBrainsMono-Regular.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: local('JetBrains Mono Medium'), url('../Fonts/JetBrainsMono-Medium.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: local('JetBrains Mono SemiBold'), url('../Fonts/JetBrainsMono-SemiBold.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: local('JetBrains Mono Bold'), url('../Fonts/JetBrainsMono-Bold.woff2') format('woff2');
}

@font-face {
    font-family: 'JetBrains Mono';
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: local('JetBrains Mono ExtraBold'), url('../Fonts/JetBrainsMono-ExtraBold.woff2') format('woff2');
}

:any-link, .navbar-nav .nav-link.active {
    color: #0000ff;
}

:any-link:is(.btn-secondary, .btn-success, .btn-danger) {
    color: var(--numerus--color--white);
}

:any-link.btn-warning {
    color: var(--numerus--color--black);
}

body {
    font-family: var(--numerus--font-family), monospace;
}

.navbar.sticky-top {
    background-color: var(--numerus--header--background-color);
}

.navbar-nav .nav-link span {
    text-decoration: inherit;
}

.navbar-nav .nav-link.active {
    text-decoration: underline;
}

.navbar-nav:hover .nav-link {
    color: #ccc;
}

.navbar-nav:hover .nav-item:hover .nav-link {
    color: var(--numerus--text-color);
    text-decoration: none;
}

#dashboard-period {
    margin-top: 2rem;
    margin-bottom: 2rem;
}

#dashboard-stats,
#dashboard-period fieldset {
    display: flex;
    flex-wrap: wrap;
}

#dashboard-period fieldset {
    justify-content: space-between;
    gap: 1ch;
}

#dashboard-period legend {
    position: absolute;
    left: -9999px;
}

#dashboard-stats dt,
#dashboard-period label {
    text-transform: lowercase;
}

#dashboard-stats {
    justify-content: space-evenly;
}

#dashboard-stats div {
    flex: 1;
    padding: 1.25rem;
    min-width: 20.625em;
}

#dashboard-stats div:first-of-type {
    background-color: var(--numerus--color--blue);
}

#dashboard-stats + canvas thead th:nth-of-type(2),
#dashboard-stats div:nth-of-type(2) {
    background-color: var(--numerus--color--green);
}

#dashboard-stats + canvas thead th:nth-of-type(3),
#dashboard-stats div:nth-of-type(3) {
    background-color: var(--numerus--color--red);
}

#dashboard-stats + canvas thead th:nth-of-type(4),
#dashboard-stats div:nth-of-type(4) {
    background-color: var(--numerus--color--yellow);
}

#dashboard-stats + canvas thead th:nth-of-type(5),
#dashboard-stats div:last-of-type {
    background-color: var(--numerus--color--black);
    color: var(--numerus--color--white);
}

#dashboard-stats dt {
    font-weight: normal;
}

#dashboard-stats dd {
    text-align: end;
    font-size: 2.5rem;
}

#dashboard-stats + canvas,
#dashboard-stats + canvas table {
    margin-bottom: 1em;
}

#dashboard-stats + canvas tbody tr:has(> td:nth-of-type(1) data[value="0"]):has(> td:nth-of-type(2) data[value="0"]):has(> td:nth-of-type(3) data[value="0"]):has(> td:nth-of-type(4) data[value="0"]) {
    display: none;
}

.btn.btn-spin-action.btn-sm.btn-info.me-1 {
    background: transparent;
    border: 0;
}

.badge {
    --bs-badge-padding-x: 1rem;
    --bs-badge-padding-y: 0.5rem;
}

.btn-danger {
    --bs-btn-bg: var(--numerus--color--red);
    --bs-btn-border-color: var(--numerus--color--red);
    --bs-btn-hover-bg: var(--numerus--color--red);
    --bs-btn-hover-border-color: var(--numerus--color--red);
    --bs-btn-active-bg: var(--numerus--color--red);
    --bs-btn-active-border-color: var(--numerus--color--red);
    --bs-btn-disabled-bg: var(--numerus--color--red);
    --bs-btn-disabled-border-color: var(--numerus--color--red);
}

.btn-success {
    --bs-btn-bg: var(--numerus--color--green);
    --bs-btn-border-color: var(--numerus--color--green);
    --bs-btn-hover-bg: var(--numerus--color--green);
    --bs-btn-hover-border-color: var(--numerus--color--green);
    --bs-btn-active-bg: var(--numerus--color--green);
    --bs-btn-active-border-color: var(--numerus--color--green);
    --bs-btn-disabled-bg: var(--numerus--color--green);
    --bs-btn-disabled-border-color: var(--numerus--color--green);
}

.btn-danger, .btn-success {
    --bs-btn-color: var(--numerus--color--white);
    --bs-btn-hover-color: var(--numerus--color--white);
    --bs-btn-active-color: var(--numerus--color--white);
    --bs-btn-disabled-color: var(--numerus--color--white);
    --bs-btn-focus-shadow-rgb: 0, 0, 0;
    --bs-btn-active-shadow: none;
}

/* footer */

.debugbar-item a {
    color: var(--numerus--color--black) !important;
}

.debugbar-item span {
    background-color: var(--numerus--color--black) !important;
}
