
div.subview {
  position: absolute;
  top: 6rem; /* accommodates logo */
  width: 100%;
  padding: 1rem;
}

div.subview-content {
  position: relative;
  left: 50%;
  transform: translateX( -50% );
  width: 75%;
}

div.subview-header {
  position: relative;
  margin: 1.5rem 0.5rem;
}

div.subview-header > button,
div.subview-footer > button {
  font-family: "Open Sans", sans-serif;
}

div.subview-header > button {
  position: absolute;
  top: -0.5rem;
  right: -0.5rem;
  width: 2rem;
}

div.subview-footer {
  float: right;
}

div.subview-footer > button {
  margin-top: 1rem;
}

div.subview-footer > button + button {
  margin-left: 0.5rem;
}

/* - media queries */

@media screen and ( max-width: 750px ) {

  div.subview-content {
    width: 90%;
  }
}

/* PANELS */

div.panel-heading {
  margin: 1.5rem 0.5rem;
}

div.panel-heading + div.panel,
div.panel + div.panel {
  margin-top: 1rem;
}

div.panel-body code {
  padding: 0.25rem 0.5rem;
  background-color: var( --babble-violet-10pc );
  border-radius: 0.25rem;
}

div.panel-body > code {
  display: block;
  padding: 0.75rem;
}

div.panel-body > button {
  position: relative;
  left: 100%;
  transform: translateX( -100% );
}

div.panel-body > p + p,
div.panel-body > p + code,
div.panel-body > code + p {
  margin-top: 0.5rem;
}

div.panel-body > p + button,
div.panel-body > code + button,
div.panel-body > button + code,
div.panel-body > button + p {
  margin-top: 0.75rem;
}

div.panel.btn-group + div.panel {
  margin-top: 0.75rem;
}

div.panel.btn-group button {
  margin-bottom: 0.25rem;
  width: auto;
  min-width: 2.5rem;
}

div.panel.btn-group button > i {
  padding-top: 0.25rem;
}

div.panel .btn-subgroup {
  display: inline-block;
}

/* MESSAGE FEEDS */

div.subview-feed-top {
  margin-bottom: 1rem;
}

div.panel-feed-mid {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.panel-feed > div.notification,
.subview-feed > div.notification {
  background-color: var( --babble-violet-10pc );
  box-shadow: none;
}

.panel-feed button.notification-btn-close,
.subview-feed button.notification-btn-close {
  top: 0.75rem;
  right: 0.75rem;
  width: 1.8rem;
}

.panel-feed button.notification-btn-close > span,
.subview-feed button.notification-btn-close > span {
  font-size: inherit;
}

.panel-feed p.notification-text,
.subview-feed p.notification-text {
  font-size: 1rem;
}

.panel-feed span.notification-heading:first-of-type,
.subview-feed span.notification-heading:first-of-type {
  margin-right: 0.2rem;
}

/* FORMS */

form {
  display: grid;
  gap: 0.5rem;
}

form > p {
  margin-bottom: 0.75rem;
}

.form-group {
  display: grid;
  grid-template-columns: repeat( 12, 1fr );
  align-items: center;
  gap: 0.5rem;
}

.form-group.hidden {
  display: none;
}

.form-group + .btn:last-child {
  margin-top: 1.5rem;
}

.form-group > p {
  grid-column: 4 / span 9;
  font-size: var( --text-size-sm-xl );
}

.form-group > label {
  display: inline-block;
  grid-column: 1 / span 3;
  text-align: right;
  font-family: Montserrat, sans-serif;
  font-size: var( --text-size-sm-xl );
  font-weight: 400;
  line-height: 1.1;
}

.form-group > div {
  grid-column: 4 / span 9;
  display: flex;
}

.form-group > div.group-column {
  flex-direction: column;
  align-items: start;
}

.form-group > div.group-column > label > input {
  margin-right: 0.5rem;
}

.form-group > div.group-row {
  grid-column: 4 / span 9;
  justify-content: space-between;
}

.form-group > div.group-row > select {
  width: 49%;
}

.form-group > input,
.form-group > select,
.form-group > textarea {
  grid-column: 4 / span 9;
}

.form-group > input[type="checkbox"] {
  grid-column: 4;
  float: left;
  height: 1.25rem;
  width: 1.25rem;
  border-radius: 0.2rem;
}

.form-group > button {
  grid-column: 11 / span 2;
  padding: 0.36rem 0.5rem;
  text-align: center;
}

.form-group > button,
input, select, textarea {
  font-family: "Open Sans", sans-serif;
  font-size: var( --text-size-sm-xl );
  font-weight: 400;
  border: 2px solid var( --babble-blue );
  border-radius: 0.2rem;
}

input,
textarea {
  padding: 0.36rem 0.5rem;
}

select {
  padding: 0.25rem;
  color: var( --babble-violet );
  background-color: var( --babble-violet-10pc );
}

input:focus,
select:focus,
textarea:focus {
  border-color: var( --babble-violet );
  outline: none;
}

input:focus::placeholder {
  color: transparent;
}
