/* デフォルト（ライトモード）のスタイル */
:root {
  --bg-color: #ffffff;
  --text-color: #333333;
  --button-bg: #007acc;
  --button-text: #ffffff;
  --button-hover: #005a9e;
  --textarea-bg: #ffffff;
  --textarea-border: #cccccc;
  --output-bg: #f8f9fa;
  --output-border: #e9ecef;
  --select-bg: #ffffff;
  --select-border: #cccccc;
  --select-hover: #f5f5f5;
  --select-focus: #007acc;
}

/* ダークモードのスタイル */
@media (prefers-color-scheme: dark) {
  :root {
    --bg-color: #1e1e1e;
    --text-color: #ffffff;
    --button-bg: #0078d4;
    --button-text: #ffffff;
    --button-hover: #106ebe;
    --textarea-bg: #2d2d30;
    --textarea-border: #3e3e42;
    --output-bg: #252526;
    --output-border: #3e3e42;
    --select-bg: #2d2d30;
    --select-border: #3e3e42;
    --select-hover: #3e3e42;
    --select-focus: #0078d4;
  }
}

body {
  background-color: var(--bg-color);
  color: var(--text-color);
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  margin: 20px;
  transition: background-color 0.3s ease, color 0.3s ease;
}

button {
  background-color: var(--button-bg);
  color: var(--button-text);
  border: none;
  padding: 12px 24px;
  font-size: 16px;
  border-radius: 6px;
  cursor: pointer;
  transition: background-color 0.3s ease;
  margin-bottom: 20px;
}

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

button:focus {
  outline: 2px solid var(--button-bg);
  outline-offset: 2px;
}

/* ドロップダウンメニューのスタイル */
#sequenceSelector {
  background-color: var(--select-bg);
  color: var(--text-color);
  border: 1px solid var(--select-border);
  border-radius: 6px;
  padding: 12px 16px;
  font-size: 16px;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  cursor: pointer;
  transition: background-color 0.3s ease, border-color 0.3s ease;
  margin-left: 10px;
  margin-bottom: 20px;
  min-width: 180px;
}

#sequenceSelector:hover {
  background-color: var(--select-hover);
  border-color: var(--select-focus);
}

#sequenceSelector:focus {
  outline: 2px solid var(--select-focus);
  outline-offset: 2px;
  border-color: var(--select-focus);
}

/* ドロップダウンのオプション */
#sequenceSelector option {
  background-color: var(--select-bg);
  color: var(--text-color);
  padding: 8px 16px;
}

/* コントロール部分のレイアウト */
.controls {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
  gap: 10px;
}

.controls label {
  font-weight: 500;
  font-size: 16px;
  color: var(--text-color);
  margin-right: 5px;
}

#output {
  background-color: var(--output-bg);
  border: 1px solid var(--output-border);
  padding: 15px;
  border-radius: 6px;
  margin-bottom: 20px;
  min-height: 100px;
  font-family: 'Courier New', monospace;
  font-size: 14px;
  white-space: pre-wrap;
  transition: background-color 0.3s ease, border-color 0.3s ease;
}

#textarea3 {
  background-color: var(--textarea-bg);
  color: var(--text-color);
  border: 1px solid var(--textarea-border);
  border-radius: 6px;
  padding: 15px;
  font-family: 'Courier New', monospace;
  font-size: 14px;
  resize: both;
  transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
  width: 100%;
  max-width: 800px;
  box-sizing: border-box;
}

#textarea3:focus {
  outline: 2px solid var(--button-bg);
  outline-offset: 2px;
  border-color: var(--button-bg);
}

/* レスポンシブデザイン */
@media (max-width: 768px) {
  body {
    margin: 10px;
  }

  .controls {
    flex-direction: column;
    align-items: stretch;
  }

  .controls label {
    margin-bottom: 5px;
    align-self: flex-start;
  }

  #sequenceSelector {
    margin-left: 0;
    margin-top: 0;
    min-width: unset;
  }

  #textarea3 {
    height: 400px;
    font-size: 12px;
  }
}
