/**
 * @file
 * CSS Styling for app.
 */

html {
    color: var(--font-color);
    background-color: var(--background-color);
    background-image: var(--background-image);
    background-repeat: no-repeat;
    background-position: top center;
    background-size: cover;
    font-size: 100%;
}

body,
button,
caption,
fieldset,
input,
legend,
option,
select,
textarea,
td,
th {
    max-width: 100%;
    /* Fixes forms and tables to be responsive */
    font-family: var(--main-font);
    font-size: var(--initial-font-size);
    line-height: var(--initial-line-height);
}

.page-header {
    margin: 0 auto 1rem;
    border-bottom: 2px solid var(--border-color);
    background-color: var(--background-color);
}

.header-content {
    width: 98vw;
    margin: 0 auto;
    padding: 0 0 1rem;
}

.site-name {
    padding: 0 0 0.25rem;
    font-size: 2.2em;
    font-weight: bold;
}

.site-name a {
    text-decoration: none;
    color: var(--link-color);
}

.main-navigation {
    font-size: 1.2rem;
}

.portfolio-navigation {
    padding: 0.2em 0;
}

a.nav-link,
button {
    display: inline-block;
    margin: 0 0.1em;
    padding: 0.1em 0.8em;
    text-decoration: none;
    color: var(--link-color);
    border: 1px solid var(--border-color);
    border-radius: 0.5em;
    background-color: var(--background-color);
}

button {
    color: var(--accent-color);
}

a.nav-link:hover,
a.nav-link:active,
button:hover,
button:active {
    color: var(--kpi-border-color);
    border-color: var(--kpi-border-color);
    background-color: var(--kpi-background-color);
}

.hidden,
.element-invisible {
    position: absolute !important;
    overflow: hidden;
    clip-path: circle(0);
    width: 1px;
    height: 1px;
}

div.layout-content {
    width: 98vw;
    margin: 0 auto 1em;
}

form {
    padding: 0 0 1.5em;
}

label.required::after {
    content: " *";
    color: var(--accent-color);
    font-weight: bold;
}

input {
    color: var(--light-gray);
    background: var(--black);
}

table {
    width: 98%;
    margin: 0 auto 1em;
}

thead {
    position: sticky;
    top: 0;
}

td {
    padding: 3px 6px;
}

.portfolio td.title {
    padding: 0 0 1px;
}

.portfolio h2 {
    margin: 0;
    padding-bottom: 0.1em;
    border-bottom: 1px solid var(--border-color);
}

.portfolio tr.totals {
    color: var(--highlight-color);
}

.portfolio th,
.holding td {
    border: 1px solid var(--border-color);
    background: var(--background-color);
}

.portfolio th.empty,
td.empty {
    border: none;
    background: inherit;
}

.portfolio td.center,
.portfolio td.novalue {
    text-align: center;
}

.portfolio td.numbers {
    text-align: right;
}

.portfolio td.bold {
    font-weight: bold;
}

.portfolio th.kpi,
.holding td.kpi {
    border-color: var(--kpi-border-color);
    background: var(--kpi-background-color);
}

.portfolio td.negative {
    color: var(--negative-border-color);
    background: var(--negative-background-color);
}

.portfolio td.positive {
    color: var(--positive-border-color);
    background: var(--positive-background-color);
}

.yoy-report-row {
    padding: 1rem 0;
    text-align: center;
    border: 1px solid var(--border-color);
    border-radius: 0.5em;
    background: var(--background-color);
}

.yoy-date {
    font-size: 1.5rem;
}

.yoy-gain {
    padding: 2rem;
    font-size: 2.5rem;
}

.transaction-form {
    margin: 1em 0;
}

.transaction-form div {
    margin-bottom: 1em;
    padding-left: 1em;
}

.transaction-form label {
    display: block;
    margin-bottom: 0.2em;
}
