/* Scope base element styles safely within the Vivaldi pane */
.vivaldi {
  background: #111;
  color: #eee;
  font-family: system-ui, sans-serif;
  padding: 20px; /* Changed from margin to padding so the container boundaries stay clean */
}

.vivaldi h1 {
  margin-bottom: 0.5em;
  font-size: 1.8em;
  color: #9cf;
}

/* Unified Toggle Headings */
.vivaldi h3.viewToggle,
.vivaldi h4.viewToggle {
  cursor: pointer;
  background: #222;
  color: #eee;
  transition: 0.2s;
}

.vivaldi h3.viewToggle {
  margin: 0.5em 0;
  padding: 8px 12px;
  border-left: 4px solid #444;
}

.vivaldi h4.viewToggle {
  margin: 0.4em 0 0 0.8em;
  padding: 6px 10px;
  border-left: 4px solid #555;
}

/* Unified Hover States */
.vivaldi h3.viewToggle:hover { background: #2f2f2f; }
.vivaldi h4.viewToggle:hover { background: #333; }

/* Unified Active States - No layout shifts */
.vivaldi h3.viewToggle,
.vivaldi h3.viewToggle.active {
  font-size: 15px; /* Force your exact preferred font size */
  padding: 4px 8px; /* Lock padding so it can't bloat */
  box-sizing: border-box;
}

/* Unified Active States - No layout shifts */
.vivaldi h3.viewToggle.active,
.vivaldi h4.viewToggle.active {
  border-left-color: #6cf;
  background: #2a2a2a;
  margin-bottom: 0;
}

/* Nested Content Spacing & Block Configurations */
.vivaldi pre.h3pre { margin-left: 0; }
.vivaldi pre.h4pre { margin-left: 0.8em; }

.vivaldi pre {
  background: #000;
  padding: 10px;
  border: 1px solid #333;
  overflow-x: auto;
  white-space: pre-wrap;
  margin: 0 0 1em 0;
}

/* Text Highlights */
.vivaldi found {
  color: orange;
}

/* Slider Switch Container */
.vivaldi .switch-container {
  position: relative;
  display: inline-block;
  width: 34px;
  height: 20px;
  flex-shrink: 0;
}

.vivaldi .switch-container input { display: none; }

/* The Track */
.vivaldi .slider {
  position: absolute;
  cursor: pointer;
  top: 0; left: 0; right: 0; bottom: 0;
  background-color: #444;
  border-radius: 20px;
  transition: 0.2s;
}

/* The Moving Knob */
.vivaldi .slider:before {
  position: absolute;
  content: "";
  height: 14px; width: 14px;
  left: 3px; bottom: 3px;
  background-color: #fff;
  border-radius: 50%;
  transition: 0.2s;
}

.vivaldi input:checked + .slider { background-color: #6cf; }
.vivaldi input:checked + .slider:before { transform: translateX(14px); }

/* Visual focus cue for keyboard users */
.vivaldi .kb-toggle:focus {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

/* Freeze exact font sizes regardless of active parent states */
.vivaldi h3.viewToggle,
.vivaldi h3.viewToggle.active {
  font-size: 15px !important;
  box-sizing: border-box;
}

.vivaldi h4.viewToggle,
.vivaldi h4.viewToggle.active {
  font-size: 15px !important;
  box-sizing: border-box;
}
