body {
  margin: 0.25em 2% 1em;
  background: #006600;
  /*font-family: var(--bs-body-font-family);*/

}
body > header,
body > main,
body > footer {
  padding: 1rem 7%;
  background: whitesmoke;
}

* + :is(h1, h2, h3, h4, h5, h6) { 
  margin-top: 2rem;
}
:is(h1, h2, h3, h4, h5, h6) button { 
  vertical-align: top;
}

aside {
  padding: 1em 2em;
  background: var(--bs-primary);
  color: var(--bs-accent);
}

.infobar {
  padding: 0.25em 1em;
  border: 1px solid var(--bs-alert-border-color);
  border-radius: var(--bs-border-radius-pill);
  background-color: var(--bs-alert-bg);
  width: max-content;
}
.spread {
  display: flex; 
  justify-content: space-between;
  align-items: center;
  width: 100%;
}

table {
	margin: 0.5rem 0;
}

figure {
  display: inline-block;
  text-align: center;
}
figure a {
  display: inline-block;
}

figure img {
  max-height: 200px;
  max-width: 100%;
}

.row {
  display: flex;
  align-items: flex-start;
}


.alert {
    margin: 1rem;
    max-width: fit-content;
}
.alert h3 {
  margin-top: 0;
}
.alert h3:empty {
  display: none;
}

table {
  width: 100%;
}

.desc {
  white-space: pre-line;
}

li {
    line-height: 1.75em;
}


main:after {
  content: '';
  display: block;
  clear: both;
}


/** Header & Nav **/


/*body > header > h1 {
  font-family: Cardinal;
  font-size: 5rem;
  text-align: center;
  margin: 1rem;
}*/
body > header > h1 a {
  color: inherit !important;
  text-decoration: none;
}
nav, .infobar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  max-width: 100%;
}
nav a, .infobar a  {
  font-size: 1.1em;
  padding: 0 0.5em;
  /*line-height: 1.2;*/
}
nav a.active {
  color: var(--bs-dark);
  text-decoration: none;
}
nav a:first-child, .infobar  a:first-child {
  padding-left: 0;
}
nav:not(.spread) a:not(:last-of-type), .infobar:not(.spread) a:not(:last-of-type) {
  box-shadow: calc(0.3em + 2px) 0.5px 0 -0.3em black;
}
#site-family-links {
  padding: 0 0 0.5rem;
  font-size: 0.9em;
  font-weight: bold;
  display: flex;
  gap: 0.25em;
  align-items: center;
  width: 100%;
}
#site-family-links a {
  color: var(--bs-accent);
  font-weight: normal;
}
#site-family-links nav {
  display: inline;
}
#site-family-links img {
  vertical-align: sub;
}


/*** Browse Pages ***/

.toc li ul {display: none;}
.toc li.expand ul {display: block;}
.toggle-toc {
  background: transparent;
  border: none;
  box-shadow: none;
  font-size: inherit;
  line-height: inherit;
  padding: 0;
  margin: 0;
  vertical-align: inherit;
}
.toggle-toc:before {
  content: '❯';
  margin-right: 0.25em;
  display: inline-block;
}
li.expand .toggle-toc:before {
  transform: rotate(90deg);
}




/*** Illustration Display Pages ***/
#display-items:checked ~ article,
#display-details:checked ~ #items,
#display-details:checked ~ .infobar #itemShapes
{
  display: none;
}
#shape-device:checked ~ #items figure:not(.Device),
#shape-badge:checked ~ #items  figure:not(.Badge),
#shape-lozenge:checked ~ #items  figure:not(.Lozenge),
#shape-round:checked ~ #items  figure:not(.Round),
#shape-heart:checked ~ #items  figure:not(.Heart) {
  display: none;
}/*
main:not(:has(.Device)) label[for="shape-device"],
main:not(:has(.Badge)) label[for="shape-badge"],
main:not(:has(.Lozenge)) label[for="shape-lozenge"],
main:not(:has(.Round)) label[for="shape-round"],
main:not(:has(.Heart)) label[for="shape-heart"]
{
  display:none;
}
main:where(:has(.Device),:has(.Badge),:has(.Lozenge),:has(.Round),:has(.Heart)) label[for="shape-all"] {
  display: none;
}*/


/**#display-details:checked ~ article .row {
  display: flex;
  justify-content: end;
}
#display-details:checked ~ article .row div:first-child {
  flex-grow: 1;
}
#display-items:checked ~ article .row div:first-child,
#display-items:checked ~ article h2 {
  display: none;
}
#display-items:checked ~ article .row {
  display: inline-flex;
}**/


/*** Management stuff **/
.image-previews {
    background: repeating-conic-gradient(#e5e5e5 0% 25%, transparent 0% 50%) top right / 25px 25px;
}
.image-previews figure {
    width: calc((100% / 6) - 2.5em);
    margin: 1em;
}
.image-previews img {
  max-height: 135px;
  max-width: 100%
}

/*** FORMS ***/
input,
textarea,
select,
fieldset button,
.input-group * {
  line-height: initial !important;
  box-sizing: border-box;
}
.input-group * {
  margin: 0 !important;
  /*border-right: 1px solid!important;*/
}
fieldset {
    display: flex;
    flex-wrap: wrap;
}
fieldset.spread p {
    width: 50rem;
    flex-grow: 1;
}
form label {
  display: inline-block;
  width: 20em;
  font-weight: bold;
  vertical-align: top;
}
form label label {
    display: inline;
    margin: 0;
    font-weight: normal;
  margin-right: 0.8rem;
}
div.form-control {
    box-sizing: border-box;
    padding: calc(0.375em - 2px) 0.25em;
}
label.wide {
    width: calc(40em + 2rem);
}
label.halfwide {
    width: calc(30em + 1rem);
}
label.wide input, label.wide textarea, label.wide select {
  width: 33rem
}

textarea {
    min-height: calc(4.25em + 2px);
}
fieldset,
form label,
form button {
  margin: 1rem;
}
form .input-group button {
  margin: 0;
}
.row button {
  margin-top: 2.7em;
  font-weight: bold;
}
label small {
  display: block;
  font-weight: normal;
}

output {
    border: 1px solid;
    display: block;
    margin: 1rem;
    max-width: 600px;
    min-height: 4em;
    position: relative;
}
output:before {
    content: 'Progress Log';
    display: block;
    position: absolute;
    border-bottom: 1px solid;
    width: 100%;
    background: var(--bs-alert-bg);
  
    font-weight: bold;
    padding: 0.25em 0.5em;
    box-sizing: border-box;
}
output ul {
  max-height: 200px;
  padding: 2em 0.5em 0.5em;
  overflow: scroll;
  list-style: none;
  margin: 0;
}
.ui-autocomplete-input {
    background-image: radial-gradient(circle closest-side,#23343acb 100%, transparent 100%);
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 4px 6px;
}



@media (max-width: 84.5rem) {
  label small {position: static!important;}
  label + .spacer {display:none;}
}