/**
 * SPDX-FileCopyrightText: Copyright (C) 2026, Antoine Basset (CNES), Rollin Gimenez (CNES)
 * SPDX-License-Identifier: GPL-3.0-or-later
 */

:root {
  --theme-bg: #06101e;
  --theme-fg: #c8d8f0;
  --theme-box-color: #0a1628;
  --theme-border-color: #0f2040;
  --theme-frame-color: #1a3a6a;
  --theme-hover-color: #3d85f5;
  --theme-color-1: #580840;
  --theme-color-2: #9331b1;
  --theme-color-3: #8066be;
  --theme-color-4: #7388e6;
  --theme-color-5: #3d9be9;
  --theme-color-6: #3d3b9c;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: monospace;
  background: var(--theme-bg);
  color: var(--theme-fg);
  padding: 0;
  min-height: 100vh;
}

p {
  line-height: 1.5;
  margin-bottom: 1ex;
}

a {
  color: inherit;
}

a:hover {
  color: #fff;
}

.container {
  max-width: 860px;
  margin: 0 auto;
  padding: 0 24px;
}

.section {
  background: var(--theme-box-color);
  border: 1px solid var(--theme-border-color);
  border-radius: 8px;
  padding: 16px 24px;
  position: relative;
  overflow: hidden;
}

/* Rainbow top border */
.section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(
    90deg,
    var(--theme-color-1),
    var(--theme-color-2),
    var(--theme-color-3),
    var(--theme-color-4),
    var(--theme-color-5),
    var(--theme-color-6)
  );
}

h2,
label {
  display: block;
  font-size: 11px;
  font-weight: bold;
  color: var(--theme-color-5);
  margin-bottom: 1ex;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

input,
select {
  width: 100%;
  background: var(--theme-bg);
  border: 1px solid var(--theme-border-color);
  border-radius: 4px;
  padding: 8px 10px;
  color: var(--theme-fg);
  font-family: monospace;
  font-size: 13px;
  outline: none;
  margin-bottom: 12px;
  transition: border-color 0.15s;
}

input:focus,
select:focus {
  border-color: var(--theme-color-5);
}

select option {
  background: var(--theme-bg);
}

input[type="checkbox"] {
  width: auto;
  margin-bottom: 0;
}

span.button,
span.key {
  border: 1px solid var(--theme-hover-color);
  border-radius: 4px;
  padding: 2px 4px;
  display: inline-block;
}

span.key {
  border: 1px solid var(--theme-frame-color);
  box-shadow: 1px 1px var(--theme-hover-color);
}

button {
  background: var(--theme-box-color);
  border: 1px solid var(--theme-frame-color);
  border-radius: 4px;
  padding: 8px 18px;
  color: var(--theme-fg);
  font-family: monospace;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.15s;
}

button:hover {
  color: #fff;
  border-color: var(--theme-hover-color);
}

button:active {
  color: #fff;
  background-color: var(--theme-color-5);
}

button:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

button.primary {
  border-color: var(--theme-color-5);
  color: var(--theme-color-5);
}

::-webkit-scrollbar {
  width: 5px;
}

::-webkit-scrollbar-track {
  background: var(--theme-bg);
}

::-webkit-scrollbar-thumb {
  background: var(--theme-frame-color);
  border-radius: 3px;
}

.section-title {
  font-size: 11px;
  font-weight: bold;
  color: var(--theme-color-4);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-top: 16px;
  margin-bottom: 16px;

  display: flex;
  align-items: center;
  gap: 8px;

  cursor: pointer;
}

.section-title::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--theme-border-color);
}

details > summary {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 8px;
}

.hidden {
  display: none;
}
