:root {
    --color-black: #000;
    --color-red: #ff4242; /* website: #bd483b */
    --color-primary: #3f70b9;
    --color-green: #0ead69;
    --color-orange: orange;
    --color-border: #ddd;
}

body {
    background-color: #f3f4f6;
}

/* General */

.wrapper {
    max-width: calc(1200px + 2rem);
    margin: auto;
    padding: 0 1rem;
}

.shadow-md {
    box-shadow: 0 0 #0000, 0 0 #0000, 0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.rounded-md {
    border-radius: 0.375rem;
}

.default-container {
    background-color: #fff;
    padding: 2rem;
    margin: 1rem 0;

    border-radius: 0.375rem;
    box-shadow: 0 0 #0000, 0 0 #0000, 0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.inline-container {
    display: inline-block;

    background-color: #fff;
    padding: 2rem;
    margin: 1rem 0;

    border-radius: 0.375rem;
    box-shadow: 0 0 #0000, 0 0 #0000, 0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

div.notice, div.error, div.success, div.info {
    background-color: #fff;
    padding: 1rem;
    margin: 1rem 0;

    border-radius: 0.375rem;
    box-shadow: 0 0 #0000, 0 0 #0000, 0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);

    border-left: 4px solid gray;
}

div.notice {
    border-color: var(--color-orange);
}

div.error {
    border-color: var(--color-red);
}

div.success {
    border-color: var(--color-green);
}

div.info {
    border-color: var(--color-primary);
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
    color: var(--color-black);
}

.content-container h1, .content-container h2, .content-container h3, .content-container h4, .content-container h5, .content-container h6 {
    color: var(--color-primary);
}

h1 {
    font-size: 2em;
    font-weight: bold;
    margin-bottom: 0.5em;
    word-wrap: break-word;
}

h2 {
    font-size: 1.5em;
    font-weight: bold;
    margin-bottom: 0.5em;
}

h3 {
    font-size: 1.2em;
    font-weight: bold;
    margin-bottom: 0.5em;
}


/* Tables */

table.v-align-middle > tr > td, table.v-align-middle > tr > th, table.v-align-middle > thead > tr > th, table.v-align-middle > tbody > tr > td, table.v-align-middle > tfoot > tr > td  {
    vertical-align: middle;
}

/* TODO: remove? */
table thead.sticky tr th {
    position: sticky;
    top: 49px;
}

div.responsive-table {
    overflow-x: auto; overflow-y: auto;
}

div.responsive-table table thead tr th {
    position: static !important;
}

/* TODO: https://uxdesign.cc/position-stuck-96c9f55d9526 */
div.data-table {
    border-radius: 0.5rem;
    /*overflow: hidden;*/
    box-shadow: 0 0 #0000,0 0 #0000, 0 1px 3px 0 rgba(0, 0, 0, 0.1),0 1px 2px 0 rgba(0, 0, 0, 0.06);
    margin: 1rem 0;
    /*overflow-x: auto;*/
}

div.data-table table {
    line-height: 1.5;
    min-width: 100%;
    border-collapse: collapse;
    text-indent: 0;
    border-color: inherit;
    text-align: center;
}

div.data-table table thead tr th {
    background-color: rgb(249,250,251);
    border-color: rgb(229,231,235);
    border-style: solid;
    border-width: 0;
    border-bottom-width: 2px;
    padding: 0.75rem 1.25rem;
    letter-spacing: .05em;
    text-transform: uppercase;
    font-weight: 600;
    font-size: .75rem;
    line-height: 1rem;
    vertical-align: middle;
    /* default sticky */
    position: sticky;
    top: 49px;
}

div.data-table table tbody tr td, div.data-table table tfoot tr td {
    padding: 1.25rem;
    font-size: .875rem;
    line-height: 1.25rem;
    background-color: #fff;
    border-style: solid;
    border-color: rgb(229,231,235);
    border-width: 0;
    border-bottom-width: 1px;
}



div.slim-table {
    border-radius: 0.5rem;
    /*overflow: hidden;*/
    box-shadow: 0 0 #0000,0 0 #0000, 0 1px 3px 0 rgba(0, 0, 0, 0.1),0 1px 2px 0 rgba(0, 0, 0, 0.06);
    margin: 1rem 0;
    /*overflow-x: auto;*/
}

div.slim-table table {
    /*line-height: 1.5;*/
    min-width: 100%;
    border-collapse: collapse;
    /*text-indent: 0;*/
    border-color: inherit;
    text-align: center;
}

div.slim-table table thead tr th {
    background-color: rgb(249,250,251);
    border-color: rgb(229,231,235);
    border-style: solid;
    border-width: 1px;
    border-bottom-width: 2px;
    padding: 8px;
    letter-spacing: .05em;
    text-transform: uppercase;
    font-weight: 600;
    font-size: .75rem;
    /*line-height: 1rem;*/
    vertical-align: middle;
    /* default sticky */
    position: sticky;
    top: 49px;
}

div.slim-table table tbody tr td, div.slim-table table tfoot tr td {
    padding: 8px;
    font-size: .875rem;
    /*line-height: 1.25rem;*/
    background-color: #fff;
    border-style: solid;
    border-color: rgb(229,231,235);
    border-width: 1px;
}


/* Tabs */
div.tab-row {
    display: flex;
    margin: 2rem 0;
}

div.tab-row > .tab {
    padding: 1rem;
    background-color: #fff;
    cursor: pointer;
    border-bottom: 3px solid var(--color-border);
}

div.tab-row > .tab.active {
    font-weight: bold;
    border-bottom-color: var(--color-primary);
}

.tab-view > .tab-content-container .tab-content {
    display: none;
}

.tab-view > .tab-content-container .tab-content.active {
    display: block;
}