:root {
  --bs-border-radius: 0;
  --bs-border-radius-lg: 0;
  --bs-primary-rgb: 233, 30, 99;
}

a {
  --bs-link-color-rgb: 233, 30, 99; /* #e91e63 */
  --bs-link-hover-color-rgb: 173, 20, 87; /* #ad1457 */
}

.text-wrap-balance {
    text-wrap: balance
}

.text-wrap-pretty {
    text-wrap: pretty
}

.fv-tabular-nums {
    font-variant-numeric: tabular-nums
}

body {
  display: grid;
  grid-template-rows: auto 1fr auto;
  grid-template-areas: "header"
    "body"
    "footer";
  overflow: hidden;
  height: 100vh;
  width: 100vw;

  & > nav {
    grid-area: header;
  }

  & > main {
    grid-area: body;
    overflow: auto;
  }

  & > footer {
    grid-area: footer;
    background-color: var(--bs-gray-700);
    color: var(--bs-gray-200);
    padding: .375rem 0;
  }
}

.navbar-dark {
  --bs-navbar-color: rgba(255, 255, 255, 0.8);
  --bs-navbar-hover-color: #ffffff;
  --bs-navbar-active-color: #ffffff;
  --bs-navbar-brand-color: #ffffff;
  --bs-navbar-brand-hover-color: #e0f7fa;
  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.8)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  background-color: #008b8b;
}

.modal {
  --bs-modal-header-border-width: 0;
  --bs-modal-footer-border-width: 0;
  --bs-modal-footer-bg: var(--bs-secondary-bg);
}

.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: #e91e63;
  --bs-btn-border-color: #e91e63;
  --bs-btn-hover-bg: #d81b60;
  --bs-btn-hover-border-color: #d81b60;
  --bs-btn-active-bg: #c2185b;
  --bs-btn-active-border-color: #c2185b;
}

.btn-outline-primary {
  --bs-btn-color: #e91e63;
  --bs-btn-border-color: #e91e63;
  --bs-btn-hover-bg: #d81b60;
  --bs-btn-hover-border-color: #d81b60;
  --bs-btn-active-bg: #c2185b;
  --bs-btn-active-border-color: #c2185b;
}

.btn-secondary {
  --bs-btn-bg: #008b8b;
  --bs-btn-border-color: #008b8b;
  --bs-btn-hover-bg: #006f6f;
  --bs-btn-hover-border-color: #006f6f;
  --bs-btn-active-bg: #005858;
  --bs-btn-active-border-color: #005858;
}


.btn-outline-secondary {
  --bs-btn-color: #008b8b;
  --bs-btn-border-color: #008b8b;
  --bs-btn-hover-bg: #006f6f;
  --bs-btn-hover-border-color: #006f6f;
  --bs-btn-active-bg: #005858;
  --bs-btn-active-border-color: #005858;
}

.alert-primary {
  --bs-alert-bg: #fce4ec;
  --bs-alert-border-color: #f8bbd0;
  --bs-alert-color: #ad1457;
}

.badge.bg-primary {
  --bs-badge-bg: #e91e63;
}

.pagination-quiet {
  --bs-pagination-border-width: 0;
  --bs-pagination-bg: transparent;
  --bs-pagination-color: var(--bs-secondary-color);
  --bs-pagination-hover-bg: transparent;
  --bs-pagination-hover-color: #005858;
  --bs-pagination-focus-bg: transparent;
  --bs-pagination-active-bg: transparent;
  --bs-pagination-active-color: #005858;
  --bs-pagination-disabled-bg: transparent;
  --bs-pagination-disabled-color: var(--bs-tertiary-color);

  & .page-item.active .page-link {
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: #008b8b;
    text-decoration-thickness: 2px;
    text-underline-offset: .25rem;
  }
}

.table-quiet {
  --bs-table-border-color: var(--bs-border-color-translucent);
  --bs-table-striped-bg: transparent;
  --bs-table-hover-bg: transparent;

  & > :not(caption) > * > * {
    padding-top: .6rem;
    padding-bottom: .6rem;
  }

  & thead th {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    border-bottom-width: 2px;
  }

  & tbody tr:hover td:first-child {
    box-shadow: inset 4px 0 0 0 #008b8b;
  }
}

.cell-primary {
  font-weight: 600;
  font-size: 1rem;
}

.cell-secondary {
  color: var(--bs-secondary-color);
  font-size: .875rem;
}

.border-gradient-primary {
    border-width: 2px;
    background: linear-gradient(#fce4ec, #e91e63) border-area, transparent;
}

.border-gradient-secondary {
    border-width: 2px;
    background: linear-gradient(#91f0f0, #008b8b) border-area, transparent;
}

h2 {
  color: #c2185b;
}

h3 {
  color: #005858;
}


.markdown-body {
    /* table gets Bootstrap's own .table/.table-striped/.table-hover classes (see DocumentationService) */

    & code {
        background-color: var(--bs-tertiary-bg);
        padding: .1rem .3rem;
        border-radius: var(--bs-border-radius);
    }

    & pre {
        border: 1px solid var(--bs-border-color);
        border-radius: var(--bs-border-radius);
        overflow: hidden;
    }

    & pre code {
        display: block;
        padding: .75rem 1rem;
        background-color: var(--bs-tertiary-bg);
        overflow-x: auto;
    }

    /* highlight.js's own theme colours the block once JS runs; just match our padding/radius */
    & pre code.hljs {
        padding: .75rem 1rem;
        border-radius: 0;
    }

    & blockquote {
        padding: .5rem 1rem;
        border-left: 4px solid var(--bs-secondary-border-subtle);
        background-color: var(--bs-tertiary-bg);
        color: var(--bs-secondary-color);
    }
}

.calendar {
    display:grid;
    width: 100%;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;

    > div {
        background-color: var(--bs-tertiary-bg);
        border: solid 1px var(--bs-secondary-border-subtle);
        display:flex;
        flex-direction: column;
        padding: .25rem;
        justify-content: start;
        gap: .25rem;
    }

    .DayHeader {
        background-color: var(--bs-secondary-bg);
        text-align: center;
        font-weight: bold;
    }

    .holiday {
        background-color: var(--bs-info-bg-subtle);
        border-color: var(--bs-info-border-subtle);
        color: var(--bs-info-text-emphasis);
    }
}
