:root {
    color-scheme: light dark;
    --bg: light-dark(#fffbf0, #293737);
    --bg-alt: light-dark(#f5f7ff, #2a3350);
    --fg: light-dark(#3b4949, #faf2db);
    --fg-alt: light-dark(#41362e, #dbe0f2);
    --accent: light-dark(#29acff, #29acff);
    --accent-alt: light-dark(#875cda, #ff004d);
    --logo: url("../assets/images/xdg-portal-light.png");
}

@media (prefers-color-scheme: dark) {
    :root {
        --logo: url("../assets/images/xdg-portal-dark.png");
    }
}

@font-face {
    font-family: ubuntu;
    src: url('../assets/fonts/Ubuntu-Regular.ttf') format('truetype');
}

* {
    font-family: ubuntu;
}

body {
    margin: 0;
    background-color: var(--bg);
    color: var(--fg );
    font-size: 16px;
}

button {
  background-color: var(--accent);
  color: var(--bg);
  border: none;
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
  border-radius: 0.5rem;
  cursor: pointer;
  transition: background-color 0.3s ease, transform 0.1s ease;
}

button:hover {
  background-color: var(--accent-alt);
}

select {
  background-color: var(--accent);
  color: var(--bg);
  border: none;
  text-align: center;
  font-size: 1rem;
  border-radius: 0.5rem;
  cursor: pointer;
  transition: background-color 0.3s ease, transform 0.1s ease;

  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

select:hover {
  background-color: var(--accent-alt);
}

select option {
  background-color: var(--bg-alt);
  color: var(--fg);
}

#header {
    display: flex;
    justify-content: center;
    overflow: hidden;
    text-align: center;
    text-shadow: 0 0 2px var(--bg-alt), 0 0 6px var(--bg-alt), 0 0 10px var(--accent);
    background: linear-gradient(33deg, var(--accent) 0%, var(--bg-alt) 40%, var(--bg-alt) 60%, var(--accent-alt) 100%);
    box-shadow: 0px 0px 10px 0px var(--accent-alt);
}

#logo {
    image-rendering: pixelated;
    background-image: var(--logo);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    margin: auto;
    flex-shrink: 0;
    width: 800px;
    height: 256px;
}

.glow {
  text-shadow: -1px -1px 0 var(--bg-alt), 1px -1px 0 var(--bg-alt), -1px 1px 0 var(--bg-alt), 1px 1px 0 var(--bg-alt), 0 0 2px var(--bg-alt), 0 0 5px var(--bg-alt), 0 0 7px var(--bg-alt), 0 0 9px var(--bg-alt), 0 0 20px var(--accent);;
}

#title {
    font-size: clamp(1.5rem, 5vw, 3rem);
    font-weight: 750;
    margin: auto;
    padding-top: 3rem;
    max-width: 90vw;
    text-align: center;
}

#title a {
    font-size: clamp(2.67rem, 5vw, 4.20rem);
    color: var(--accent-alt);
}

#subtitle {
    font-size: clamp(1.1rem, 3vw, 1.67rem);
    font-weight: 250;
    max-width: 75vw;
    text-align: center;
    margin-inline: auto;
}

#content {
    padding-top: 1rem;
    max-width: 80vw;
    margin: auto;
    font-size: 1.1rem;
    font-weight: 250;
}

.description {
    text-align: center;
    margin: 10px 0px auto auto;
}

a {
    font-weight: 750;
    color: var(--accent);
    text-decoration: none;
}

.section h1 {
    font-size: clamp(1.1rem, 3vw, 2rem);
    color: var(--accent-alt);
    margin: 0;
    padding-top: 1rem;
}

.progress-table {
    width: 100%;
    margin: 1rem auto auto auto;
    border-collapse: collapse;
    text-align: left;
    background-color: color-mix(in srgb, var(--accent), transparent 90%);
    border-radius: 8px 8px 0 0;
    overflow: hidden;
}
.progress-table th, .progress-table td {
    padding: 12px 15px;
    border-bottom: 1px solid var(--fg);
}
.progress-table th {
    font-weight: 750;
    color: var(--accent-alt);
    text-transform: uppercase;
    font-size: 0.9rem;
}
.progress-table td a {
    color: var(--fg);
    text-decoration: none;
    font-weight: 500;
}
.progress-table td a:hover {
    color: var(--accent);
}
.refernce-cell {
    font-size: 1.2rem;
}
.progress-bg {
    background-color: var(--bg);
    border-radius: 8px;
    height: 24px;
    width: 100%;
    display: inline-block;
    vertical-align: middle;
    overflow: hidden;
    margin-right: 8px;
}
.progress-fill {
    background: linear-gradient(45deg, var(--accent-alt) 20%, var(--accent) 80%);
    height: 100%;
    transition: width 0.5s ease-in-out;
}

#contrib-steps {
    padding-left: 2rem;
}

#contrib-steps p span {
    font-weight: 750;
    color: var(--accent-alt)
}

#formatter {
    display: flex;
    gap: 1rem;
    margin: 1rem auto;
    justify-content: center;
}

#editor {
    display: none;
    max-width: 500px;
    margin: auto;
    background: var(--bg-alt);
    padding: 20px;
    border-radius: 8px;
}

#editor p {
    margin: 0.5rem;
}

.editor-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.checkbox-group {
    display: grid;
    grid-template-columns: 2rem calc(100% - 2rem);
    gap: 10px;
}

#btn-submit {
    margin-top: 10px;
}

#btn-cancel {
    background: var(--accent-alt);
}

#output-container {
    display: none;
    margin-top: 2rem;
}

#json-result {
    width: 100%;
    height: 400px;
    font-family: monospace;
    background: var(--bg-alt);
    color: var(--fg);
    padding: 10px;
    border-radius: 8px;
}

.copy-wrapper {
    display: flex;
    justify-content: center;
    margin-top: 10px;
}