.secret-key {
    font-size: 1.2em;
    margin-bottom: 1em;
}

#summation-calculation, #denominator-calculation, .result-calculation {
    font-family: monospace;
    font-size: 1.2em;
    color: var(--primary-accent);
}

.result-calculation {
    margin-bottom: .5em;
}

.result-ciphertext {
    word-wrap: anywhere;
    font-size: 16px;
    font-family: monospace;
    background-color: #20182c;
    border: 2px solid #635ace;
    border-radius: 12px;
    padding: .5em;
    color: #fff;
    margin-bottom: 1em;
}

.cipher-input {}

.cipher-input label {
    padding: 1em 0 1em 0;
    font-weight: bold;
    display: block;
}

.cipher-input input, textarea {
    font-size: 16px;
    font-family: monospace;
    background-color: #20182c;
    border-radius: 12px;
    border-color: #635ace;
    padding: .5em;
    color: #fff;
    white-space: pre-wrap;
    overflow-wrap: break-word;
}
table {
    font-family:Frutiger,"Frutiger Linotype",Univers,Calibri,"Gill Sans","Gill Sans MT","Myriad Pro",Myriad,"DejaVu Sans Condensed","Liberation Sans","Nimbus Sans L",Tahoma,Geneva,"Helvetica Neue",Helvetica,Arial,sans-serif;
    font-size: .9em;
    line-height: 1.5rem;
}
.bar-chart{
    vertical-align: center;
    height: 1.25ex;
    background: #4d57f0;
}

table.chi-squared-results-table {
    text-align: center;
    margin-top: 1em;
    margin-bottom: 1em;
}

table.chi-squared-results-table td,
table.chi-squared-results-table th {
    width: 6em;
    border-bottom: 1px dashed #482f36;
}
table.chi-squared-results-table th {
    font-weight: normal;
    color: #783de0;
}

table.first-group-frequency-table {
    text-align: center;
    margin-top: 1em;
    margin-bottom: 1em;
}

table.first-group-frequency-table td,
table.first-group-frequency-table th {
    width: 5em;
    border: 1px solid #482f36;
}

table.first-group-frequency-table th {
    font-weight: normal;
    color: #783de0;
}

table.frequency-result-table {
    text-align: center;
    margin-top: 1em;
    margin-bottom: 1em;
}

table.frequency-result-table td {
    width: 1.5em;
    border: 1px solid #482f36;
}

table.ic-result-table {
    text-align: center;
    margin-bottom: 2em;
}

table.ic-result-table thead th {
    padding-left: .5em;
    padding-right: .5em;
    font-weight: normal;
    color: #783de0;
}

table.vigenere {
    overflow: hidden;
    cursor: none;
}

table.vigenere th {
    font-weight: bold;
    color: var(--primary-accent);
}

table.vigenere thead {
    color: var(--primary-accent);
}

table.vigenere td,
table.vigenere th {
    font-size: .7em;
    line-height: 1.5em;
    cursor: text;
    width: 24px;
    height: 24px;
    text-align: center;
    padding: 0;
    position: relative;
    outline: 0;
    margin: 0;
    border: 1px solid #482f36;
}

body:not(.nohover) tbody tr:hover {
    background-color: var(--secondary-color);
}

table.vigenere td:hover {
    cursor: none;
    font-weight: normal;
    color: var(--primary-accent);
    background-color: var(--secondary-color);
}

table.vigenere td:hover::after,
table.vigenere thead th:not(:empty):hover::after,
table.vigenere td:focus::after,
table.vigenere thead th:not(:empty):focus::after {
    content: '';
    height: 10000px;
    left: 0;
    position: absolute;
    top: -5000px;
    width: 100%;
    z-index: -1;
}

table.vigenere td:hover::after,
table.vigenere th:hover::after {
    background-color: var(--secondary-color);
}

table.vigenere td:focus::after,
table.vigenere th:focus::after {
    background-color: lightblue;
}

/* Focus stuff for mobile */
table.vigenere td:focus::before,
table.vigenere tbody th:focus::before {
    background-color: lightblue;
    content: '';
    height: 100%;
    top: 0;
    left: -5000px;
    position: absolute;
    width: 10000px;
    z-index: -1;
}
