html {
    margin: 0;
    padding: 0;
}
body {
    --purple: rgba(233.55682, 204, 255, 1);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    margin: 0;
    padding: 2em;
    color: #333;
    background-color: var(--purple);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%23000'%3E%3Cpath opacity='.5' d='M96 95h4v1h-4v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9zm-1 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9z'/%3E%3Cpath d='M6 5V0H5v5H0v1h5v94h1V6h94V5H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    background-blend-mode: overlay;
    line-height: 1.4;
}

html, body{
    margin: 0;
    padding: 0;
}
html{
    font-size: 14px;
}
body{
    font-size: 1rem;
}
main {
    padding: 2em;
}
*{
    box-sizing: border-box;
}
a{
    color: #3b82f6;
    &:hover{
        color: #2563eb;
    }
}
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
dl,
pre{
    margin: 0;
}

table{
    background-color: transparent;
    border-collapse: collapse;
    td, th{
        display: table-cell;
        text-align: left;
    }
}

fieldset{
    margin: 0;
    padding: 0;
    border: none;
}

textarea{
    resize: vertical;
}

input,
select,
textarea,
button{
    border-width: 1px;
    margin: 0;
    line-height: inherit;
    font: inherit;
    text-align: inherit;
    text-transform: inherit;
    letter-spacing: inherit;
}

[hidden] {
    display: none !important;
}

a,
button{
    cursor: pointer;
}
button{
    font-family: inherit;
    font-size: 1em;
}

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  vertical-align: middle;
}

komp-table,
komp-spreadsheet {
    gap: 1px;
    border-radius: 0.35em;
    font-size: 1rem;

    komp-table-header-cell,
    komp-table-cell,
    komp-spreadsheet-cell,
    komp-spreadsheet-header-cell,
    komp-spreadsheet-inputcell {
        background: white;
    }

    komp-table-header-cell,
    komp-table-cell,
    komp-spreadsheet-header-cell,
    komp-spreadsheet-cell {
        padding: 0.5em 1em;
        outline: 1px solid #ede8f5;
    }
    komp-table-row {
        outline: 1px solid #ede8f5;
    }

    komp-table-header-cell,
    komp-spreadsheet-header-cell {
      background: rgb(248,248,251);
      font-weight: bold;
      text-transform: uppercase;
    }
}
komp-table-row {
    &:nth-child(2n) {
        komp-spreadsheet-cell {
            background: #f5f2fa;
        }
    }
}
/* Uniform-style utility classes */
.flex { display: flex; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.flex-none { flex: 0 0 auto; }
.gap { gap: 0.5em; }
.gap-xl { gap: 1.5em; }
.gap-2x { gap: 2em; }
.block { display: block; }
.inline-block { display: inline-block; }

.justify-content-center { justify-content: center; }
.justify-content-between { justify-content: space-between; }
.align-center { align-items: center; }
.align-start { align-items: flex-start; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-bold { font-weight: bold; }
.text-white { color: white; }
.text-green { color: #4ade80; }

.width-full { width: 100%; }
.width-1\/2 { width: 50%; }
.min-width-100-px { min-width: 100px; }

.pad {padding: 1em;}
.pad-2x { padding: 2em; }
.pad-h { padding-inline: 0.75em; }
.pad-v { padding-block: 0.75em; }
.pad-h-2x { padding-inline: 2em; }
.pad-v-1\/2x { padding-block: 0.25em; }
.pad-h-1\/2x { padding-inline: 0.25em; }

.margin-bottom-1\/2x { margin-bottom: 0.5em; }

.space-v > * + * { margin-top: 0.75em; }

.bg-white { background: white; }
.bg-gray-90 { background: #1a1a2e; }
.bg-green { background: #22c55e; }
.bg-opacity-80 { --bg-opacity: 0.8; }
.bg-green.bg-opacity-80 { background: rgba(34, 197, 94, 0.8); }

.rounded-sm { border-radius: 0.25em; }
.rounded { border-radius: 0.35em; }
.rounded-xl { border-radius: 0.75em; }
.rounded-bottom {
  border-bottom-left-radius: 0.35em;
  border-bottom-right-radius: 0.35em;
}
.border { border: 1px solid #e2e2ea; }
.border-top { border-top: 1px solid #e2e2ea; }
.border-purple-10 { border-color: #ede8f5; }
.border-purple-20 { border-color: #dbd1eb; }
.border-green-70 { border-color: #16a34a; }

.shadow {
  box-shadow: 0 1px 3px rgba(0,0,0, 0.3);
}

.bottom-0 { bottom: 0; }
.right-0 { right: 0; }

.uniformButton {
    display: inline-block;
    padding: 0.5em 1.25em;
    border: 1px solid hsl(275, 100%, 40%);
    border-radius: 0.25em;
    background-image: linear-gradient(hsl(275, 100%, 50%), hsl(275, 100%, 40%));
    cursor: pointer;
    font-size: 1em;
    text-decoration: none;
    color: white;
}
.uniformButton:hover { background: hsl(275, 100%, 40%); }
.uniformButton.-green {
    background: #22c55e;
    color: white;
    border-color: #16a34a;
}
.uniformButton.-green:hover { background: #16a34a; }

.uniformInputs input,
.uniformInputs select,
.uniformInputs textarea {
    padding: 0.4em 0.6em;
    border: 1px solid #d1d5db;
    border-radius: 0.25em;
    font-size: 1em;
}
.uniformInputs input:focus,
.uniformInputs select:focus,
.uniformInputs textarea:focus {
    outline: 2px solid #6366f1;
    outline-offset: -1px;
}

@keyframes fadein {
    from {
        opacity: 0;
        transform: var(--transform);
    }

    to {
        opacity: 1;
        transform: none;
    }
}
@keyframes fadeout {
    from {
        opacity: 1;
        transform: none;
    }

    to {
        opacity: 0;
        transform: var(--transform);
    }
}
