@media (min-width: 576px) {
  article {
    --pico-block-spacing-vertical: calc(var(--pico-spacing) * 0.75);
    --pico-block-spacing-horizontal: calc(var(--pico-spacing) * 0.75);
  }

  .logo {
    font-size: 1.2rem;
  }
}

@media (min-width: 768px) {
  article {
    --pico-block-spacing-vertical: var(--pico-spacing);
    --pico-block-spacing-horizontal: var(--pico-spacing);
  }

  .logo {
    font-size: 1.25rem;
  }
}

@media (min-width: 1024px) {
  article {
    --pico-block-spacing-vertical: calc(var(--pico-spacing) * 1.25);
    --pico-block-spacing-horizontal: calc(var(--pico-spacing) * 1.25);
  }

  .logo {
    font-size: 1.25rem;
  }
}

@media (min-width: 1280px) {
  article {
    --pico-block-spacing-vertical: calc(var(--pico-spacing) * 1.5);
    --pico-block-spacing-horizontal: calc(var(--pico-spacing) * 1.5);
  }

  .logo {
    font-size: 1.3rem;
  }

  .container {
    max-width: 1000px;
  }
}

@media (min-width: 1536px) {
  article {
    --pico-block-spacing-vertical: calc(var(--pico-spacing) * 1.75);
    --pico-block-spacing-horizontal: calc(var(--pico-spacing) * 1.75);
  }

  .logo {
    font-size: 1.3rem;
  }

  .container {
    max-width: 1000px;
  }
}

header,
main,
footer {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

article {
  margin-bottom: 1rem;
}

footer {
  text-align: center;
}

/*nav li a:has(> div.logo) {
  margin-bottom: 0;
}*/
nav li :where(a, [role=link]) {
  margin: 0;
}

details>div {
  padding: 0 var(--pico-form-element-spacing-horizontal);
}

pre {
  padding: 0.5rem;
}

:nth-last-child(1 of table tr:not(.hidden)) th,
:nth-last-child(1 of table tr:not(.hidden)) td {
  border-bottom: 0 !important;
}


.hidden {
  display: none !important;
}

button.success {
  background-color: var(--pico-form-element-valid-border-color);
  border-color: var(--pico-form-element-valid-border-color);
}

button.failed {
  background-color: var(--pico-form-element-invalid-border-color);
  border-color: var(--pico-form-element-invalid-border-color);
}

tr.network:hover {
  --pico-background-color: var(--pico-primary-focus);
  cursor: pointer;
}

.primary {
  border: 0.25rem solid var(--pico-form-element-invalid-border-color);
  padding: 1rem;
  margin-bottom: 1rem;
}

.logo {
  display: inline-block;
  padding: calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2) var(--pico-nav-link-spacing-horizontal);
  vertical-align: baseline;
  line-height: var(--pico-line-height);
  background-color: var(--pico-code-kbd-background-color);
  border-radius: var(--pico-border-radius);
  color: var(--pico-code-kbd-color);
  font-weight: bolder;
  /*font-size: 1.3rem;*/
  font-family: var(--pico-font-family-monospace);
}


.thermostat {
  display: grid;
  grid-template-columns: 0.5fr 2fr 0.5fr;
  grid-template-rows: 0.25fr 1fr 0.25fr;
  gap: 0px 0px;
  grid-auto-flow: row;
  justify-content: center;
  justify-items: center;
  grid-template-areas:
    ". thermostat-header ."
    "thermostat-minus thermostat-temp thermostat-plus"
    "thermostat-control thermostat-control thermostat-control";

  border: .25rem solid var(--pico-blockquote-border-color);
  padding: 0.5rem;
}

.thermostat-header {
  justify-self: center;
  align-self: end;
  grid-area: thermostat-header;

  font-size: 1rem;
  font-weight: bold;
  border-bottom: .25rem solid var(--pico-primary-hover-border);
  margin: 0 0 1rem 0;
}

.thermostat-temp {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr 0.5fr;
  gap: 0px 0px;
  grid-auto-flow: row;
  grid-template-areas:
    "thermostat-temp-target"
    "thermostat-temp-current";
  grid-area: thermostat-temp;
}

.thermostat-temp-target {
  justify-self: center;
  align-self: center;
  grid-area: thermostat-temp-target;

  font-weight: bold;
  font-size: 1.75rem;
}

.thermostat-temp-current {
  justify-self: center;
  align-self: start;
  grid-area: thermostat-temp-current;

  color: var(--pico-secondary);
  font-size: 0.85rem;
}

.thermostat-minus {
  justify-self: end;
  align-self: center;
  grid-area: thermostat-minus;
}

.thermostat-plus {
  justify-self: start;
  align-self: center;
  grid-area: thermostat-plus;
}

.thermostat-control {
  justify-self: center;
  align-self: start;
  grid-area: thermostat-control;

  margin: 1.25rem 0;
}


@media (max-width: 575px) {
  .notify {
    display: grid; 
    grid-template-columns: 1fr; 
    grid-template-rows: 1fr 0.5fr; 
    gap: 0.5rem 0.5rem;
    grid-template-areas: 
      "notify-content"
      "notify-actions"; 
  }

  .notify-icon {
    display: none;
  }

  .notify-content {
    justify-self: center;
    align-self: center;
    grid-area: notify-content; 
  }

  .notify-actions {
    justify-self: center; 
    align-self: center; 
    grid-area: notify-actions; 
  }
}

@media (min-width: 576px) {
  .notify {
    display: grid;
    grid-template-columns: 5rem 1fr 10rem;
    grid-template-rows: 1fr;
    gap: 0rem 0.5rem;
    grid-auto-flow: row;
    grid-template-areas:
      "notify-icon notify-content notify-actions";
  }

  .notify-icon {
    justify-self: center;
    align-self: center;
    grid-area: notify-icon;
  }

  .notify-content {
    justify-self: center;
    align-self: center;
    grid-area: notify-content;
  }
  
  .notify-actions {
    justify-self: center;
    align-self: center;
    grid-area: notify-actions;
  }
}

.notify {
  margin: 1rem;
  padding: 0.5rem;
  border: .25rem solid var(--pico-blockquote-border-color);
}

.notify-error {
  border-color: var(--pico-form-element-invalid-border-color);
}

.notify-error .notify-icon {
  color: var(--pico-form-element-invalid-border-color);
}

.notify-alarm {
  border-color: #c89048;
}

.notify-alarm .notify-icon {
  color: #c89048;
}

.notify-icon i {
  font-size: 2.5rem;
}


[class*=" icons-"],
[class=icons],
[class^=icons-] {
  font-size: 1.35rem;
}

*:has(> [class*=" icons-"], > [class=icons], > [class^=icons-]):has(+ * > [class*=" icons-"], + * > [class=icons], + * > [class^=icons-]) {
  margin: 0 0.5rem 0 0;
}

[data-tooltip]:has(> [class*=" icons-"], > [class=icons], > [class^=icons-]) {
  border: 0 !important;
}

.icons-color-green {
  color: var(--pico-form-element-valid-active-border-color);
}

.icons-color-yellow {
  color: #c89048;
}

.icons-color-gray {
  color: var(--pico-form-element-placeholder-color);
}

.icons-color-red {
  color: var(--pico-form-element-invalid-active-border-color);
}