:root {
  font-family: "IBM Plex Sans", system-ui, sans-serif;
  color: #172c43;
  background: #fff;
  font-synthesis: none;
  --blue: #205caa;
  --muted: #586b7e;
  --line: #dce3eb;
  --paper: #f5f7fa;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
}
a {
  color: var(--blue);
  text-underline-offset: 3px;
}
a:hover {
  text-decoration-thickness: 2px;
}
button,
input,
select,
textarea {
  font: inherit;
}
button,
select {
  cursor: pointer;
}
button {
  border: 1px solid var(--line);
  border-radius: 5px;
  background: white;
  color: inherit;
  padding: 0.6rem 0.95rem;
  min-height: 42px;
}
button:hover {
  background: #eef3f9;
}
button:disabled {
  opacity: 0.55;
  cursor: default;
}
:focus-visible {
  outline: 3px solid #80aee8;
  outline-offset: 3px;
}
input,
select,
textarea {
  min-width: 0;
  color: inherit;
  border: 1px solid #adbac9;
  border-radius: 4px;
  padding: 0.65rem 0.75rem;
  background: #fff;
}
input {
  font-variant-numeric: tabular-nums;
}
input:focus,
select:focus,
textarea:focus {
  outline: 2px solid #80aee8;
  outline-offset: 1px;
}
input[aria-invalid="true"] {
  border-color: #b74625;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
h1 {
  font-size: 2rem;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: -0.035em;
  margin-bottom: 0.6rem;
}
h2 {
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: -0.015em;
}
h3 {
  font-size: 1rem;
  font-weight: 600;
}
p {
  max-width: 76ch;
}
small {
  font-size: 0.8rem;
  color: var(--muted);
}
[hidden] {
  display: none !important;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.skip {
  position: absolute;
  top: -100px;
  left: 1rem;
  background: white;
  padding: 1rem;
  z-index: 9;
}
.skip:focus {
  top: 1rem;
}
.site-header {
  max-width: none;
  padding: 1rem max(2rem, calc((100% - 1128px) / 2));
  background: #0c1928;
  color: #fff;
  margin: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  gap: 1rem;
}
.brand {
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: -0.04em;
  color: #172c43;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.brand img {
  object-fit: contain;
}
.site-header .brand { color: #fff; }
.site-header .brand img { width: 40px; height: 40px; filter: drop-shadow(0 0 1px rgba(255,255,255,.85)); }
.site-header nav > a { padding: .6rem .25rem; }
.site-header nav {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  font-size: 0.9rem;
}
.site-header nav > a {
  text-decoration: none;
  color: inherit;
}
.browse-menu {
  position: relative;
}
.browse-menu summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: .6rem .8rem;
  border: 1px solid #60748b;
  border-radius: 5px;
}
.browse-menu summary::-webkit-details-marker { display: none; }
.browse-menu summary:hover, .browse-menu[open] summary { background: #29455f; }
.browse-menu[open] .menu-chevron { transform: rotate(180deg); }
.menu-content {
  position: absolute;
  right: 0;
  top: calc(100% + .5rem);
  background: white;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 0.7rem;
  min-width: 230px;
  z-index: 5;
  box-shadow: 0 8px 20px #172c4314;
  max-height: min(70vh, 560px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.menu-content a {
  color: #205caa;
  display: block;
  padding: 0.45rem 0.6rem;
  text-decoration: none;
}
.menu-content a:hover {
  background: var(--paper);
}
main {
  max-width: 1192px;
  margin: auto;
  padding: 0 2rem 4rem;
}
.search-area {
  position: relative;
  margin: 1.3rem 0 2rem;
}
.search-control {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  border: 1px solid #b9c8d8;
  border-radius: 6px;
  padding: 0.35rem 0.4rem 0.35rem 0.85rem;
  background: #fff;
}
.search-control svg {
  color: var(--muted);
  flex: none;
}
.search-control input {
  flex: 1;
  border: 0;
  background: transparent;
  font-size: 1rem;
  padding: 0.6rem 0;
  outline: none;
}
.search-control:focus-within {
  outline: 2px solid #80aee8;
}
.search-control button {
  background: var(--paper);
  border: 0;
}
.home-search {
  max-width: 760px;
  margin: 3.5rem 0 2.5rem;
}
.home-search h1 {
  font-size: 2.4rem;
  margin-bottom: 1.5rem;
}
.home-search .search-control {
  padding: 0.6rem;
}
.home-search .search-control svg {
  margin-left: 0.4rem;
}
#search-results {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 4;
  background: white;
  box-shadow: 0 8px 22px #172c4318;
  border: 1px solid var(--line);
  border-radius: 0 0 6px 6px;
  padding: 1rem;
  max-height: 65vh;
  overflow: auto;
}
#search-results h2 {
  font-size: 0.85rem;
  color: var(--muted);
}
#search-results .tool-link {
  padding: 0.6rem 0.4rem;
}
.home-section {
  margin: 2.5rem 0;
}
.home-section > h2 {
  margin-bottom: 1.1rem;
}
.tool-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0 1.8rem;
}
.tool-link {
  display: block;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
}
.tool-link > span {
  font-weight: 500;
  display: block;
}
.tool-link small {
  display: block;
  margin-top: 0.3rem;
  line-height: 1.5;
  font-weight: 400;
  color: var(--muted);
}
.tool-link:hover > span {
  text-decoration: underline;
}
.subjects {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2.4rem 2rem;
  padding-top: 1.2rem;
  border-top: 1px solid var(--line);
}
.subjects h3 {
  margin-bottom: 0.7rem;
}
.subjects ul {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.9rem;
}
.subjects li {
  margin: 0.45rem 0;
}
.subjects a {
  text-decoration: none;
}
.subjects a:hover {
  text-decoration: underline;
}
#return-tools {
  padding: 1rem 0;
  background: var(--paper);
}
#return-tools h2 {
  font-size: 0.9rem;
  margin: 0.5rem 1rem;
}
.return-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.2rem;
  margin: 0.6rem 1rem;
}
.return-links a {
  font-size: 0.9rem;
}
.breadcrumb {
  display: flex;
  gap: 0.5rem;
  font-size: 0.8rem;
  margin-bottom: 1rem;
  color: var(--muted);
}
.breadcrumb a {
  color: var(--muted);
  text-decoration: none;
}
.tool-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.tool-heading p {
  color: var(--muted);
  margin-bottom: 0;
}
.quiet-button {
  font-size: 0.85rem;
  min-height: 36px;
  padding: 0.4rem 0.8rem;
}
.quiet-button[aria-pressed="true"] {
  color: var(--blue);
  border-color: var(--blue);
  background: #eef4fc;
}
.calculator-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  align-items: start;
  gap: 2.5rem;
}
.input-panel {
  min-width: 0;
}
.mode-field {
  margin-bottom: 1.5rem;
}
.mode-field label {
  font-weight: 600;
  font-size: 0.85rem;
  display: block;
  margin-bottom: 0.4rem;
}
.mode-field select {
  width: 100%;
  background: var(--paper);
  border-color: #c4d2e1;
  font-weight: 500;
}
.fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.1rem;
}
.field > label {
  display: block;
  font-size: 0.85rem;
  font-weight: 500;
  margin-bottom: 0.35rem;
  min-height: 1.2em;
}
.field > select {
  width: 100%;
  font-size: 0.9rem;
}
.field small:empty,
.field-error:empty {
  display: none;
}
.field small {
  display: block;
  margin-top: 0.3rem;
  line-height: 1.4;
}
.measurement {
  display: flex;
  align-items: stretch;
  border: 1px solid #adbac9;
  border-radius: 4px;
  overflow: visible;
}
.measurement:focus-within {
  outline: 2px solid #80aee8;
  outline-offset: 1px;
}
.measurement input {
  width: 100%;
  border: 0;
  outline: none;
  border-radius: 4px;
  font-size: 1rem;
}
.measurement .unit-select {
  max-width: 110px;
  background: var(--paper);
  border: 0;
  border-left: 1px solid var(--line);
  border-radius: 0 4px 4px 0;
  padding: 0.55rem 0.35rem;
  font-size: 0.8rem;
  flex-shrink: 0;
}
.fixed-unit {
  font-size: 0.8rem;
  color: var(--muted);
  padding: 0.7rem 0.55rem;
  white-space: nowrap;
}
.preset-select {
  margin-bottom: 0.3rem;
}
.input-options,
.gcode-import {
  border-top: 1px solid var(--line);
  margin-top: 1rem;
}
.input-options summary,
.gcode-import summary,
.method summary {
  padding: 0.9rem 0;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 500;
}
.input-options[open] .fields {
  padding-bottom: 0.6rem;
}
.gcode-import {
  margin: 0 0 1rem;
}
.gcode-import p,
.gcode-import label {
  font-size: 0.8rem;
  display: block;
  margin: 0.5rem 0;
}
.gcode-import input {
  width: 100%;
  font-size: 0.85rem;
}
.calculate-actions {
  display: flex;
  gap: 1rem;
  align-items: center;
  margin-top: 1.5rem;
}
.primary-button {
  background: var(--blue);
  color: white;
  border: 1px solid var(--blue);
  font-weight: 500;
  min-width: 160px;
}
.primary-button:hover {
  background: #184d91;
}
.text-button {
  background: transparent;
  border-color: transparent;
  color: var(--blue);
  padding: 0.45rem 0.4rem;
}
.input-note {
  font-size: 0.75rem;
  color: var(--muted);
  margin: 0.6rem 0 0;
}
.field-error {
  color: #9e351a;
  font-size: 0.8rem;
  margin: 0.3rem 0 0;
}
#form-errors:not(:empty) {
  background: #fff4ee;
  color: #8d361a;
  border-left: 3px solid #ac4a20;
  padding: 0.75rem;
  margin-top: 1rem;
  font-size: 0.9rem;
}
.result-panel {
  background: var(--paper);
  padding: 1.7rem;
  border-radius: 6px;
  position: sticky;
  top: 1.2rem;
  min-height: 245px;
}
.result-panel h2 {
  font-size: 0.9rem;
  margin-bottom: 1rem;
  color: var(--muted);
}
.empty-result {
  color: var(--muted);
  font-size: 1rem;
  margin: 2rem 0;
}
.result-label {
  font-size: 0.95rem;
  margin: 0 0 0.4rem;
}
.primary-value {
  font-size: 2.9rem;
  line-height: 1.1;
  font-weight: 600;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
  margin-bottom: 0.8rem;
}
.primary-value .result-unit {
  font-size: 1rem;
  letter-spacing: 0;
  font-weight: 400;
  white-space: nowrap;
  margin-left: 0.45rem;
}
.primary-value select {
  font-size: 0.85rem;
  letter-spacing: 0;
  margin-left: 0.4rem;
  padding: 0.3rem;
  border: 1px solid var(--line);
  background: transparent;
}
.interpretation {
  font-size: 0.88rem;
  color: #3e5267;
  line-height: 1.6;
}
.supporting {
  margin: 1.4rem 0;
  font-size: 0.88rem;
}
.supporting > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin: 0.75rem 0;
}
.supporting dt {
  color: var(--muted);
}
.supporting dd {
  margin: 0;
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-weight: 500;
}
.result-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  border-top: 1px solid #d3dce7;
  padding-top: 1rem;
}
.result-actions button {
  font-size: 0.8rem;
  padding: 0.4rem 0.7rem;
  min-height: 36px;
}
.result-table {
  max-width: 100%;
  overflow: auto;
  margin: 1.3rem 0;
  font-size: 0.8rem;
}
table {
  width: 100%;
  border-collapse: collapse;
}
th {
  text-align: left;
  font-weight: 500;
  color: var(--muted);
}
th,
td {
  padding: 0.65rem 0.6rem;
  border-bottom: 1px solid #d3dce7;
  vertical-align: top;
}
td {
  font-variant-numeric: tabular-nums;
}
#status {
  font-size: 0.85rem;
  color: var(--muted);
  margin-top: 0.6rem;
}
.under-calculator {
  margin-top: 2.5rem;
  max-width: 100%;
}
.method {
  max-width: 72ch;
  border-top: 1px solid var(--line);
}
.method p {
  font-size: 0.9rem;
  line-height: 1.8;
}
.method a {
  font-size: 0.85rem;
}
.method small {
  display: block;
  margin: 0.7rem 0;
}
.tool-guide {
  max-width: 72ch;
  margin-top: 2.5rem;
  padding-top: 1.75rem;
  border-top: 1px solid var(--line);
  overflow-wrap: break-word;
}
.tool-guide h2 {
  font-size: 1.3rem;
  line-height: 1.4;
  margin: 0 0 1rem;
}
.tool-guide h3 {
  font-size: 1.05rem;
  line-height: 1.5;
  margin: 1.75rem 0 0.5rem;
}
.tool-guide p {
  font-size: 0.95rem;
  line-height: 1.8;
  margin: 0 0 1rem;
}
.tool-guide h2,
.tool-guide h3 {
  scroll-margin-top: 6rem;
}
.tool-guide .guide-references {
  font-size: 0.8rem;
  color: var(--muted);
  margin-top: 1.5rem;
}
.guide-formula { padding: 1rem; background: #f4f6f9; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.configuration-links { margin: 1.5rem 0; }
.configuration-links a { display: inline-block; margin: .4rem 1rem .4rem 0; }
.configuration-guide { max-width: 72ch; margin: 2rem 0; line-height: 1.8; }
.configuration-guide h2 { font-size: 1.3rem; }
.embed-control { margin-top: 2rem; max-width: 72ch; }
.embed-control p { line-height: 1.7; }
.embed-control textarea { width: 100%; font-family: monospace; font-size: .85rem; margin: .5rem 0; }
.embed-page main { max-width: 100%; padding: 1rem; }
.embed-page .breadcrumb, .embed-page #pin-tool, .embed-page .related, .embed-page #save-result, .embed-page #export-table { display: none; }
.embed-page .tool-heading { margin-top: 0; }
.embed-page .calculator-layout { display: grid; grid-template-columns: 1fr; }
.embed-page .result-panel { position: static; }
.embed-attribution { border-top: 1px solid var(--line); padding: 1rem; margin-top: 1rem; font-size: .85rem; }
.related {
  margin-top: 2rem;
}
.related h2 {
  font-size: 1rem;
}
.related-links {
  display: flex;
  gap: 1rem 1.5rem;
  flex-wrap: wrap;
  font-size: 0.9rem;
}
.repeat-field {
  grid-column: 1/-1;
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}
.repeat-field legend {
  font-size: 0.9rem;
  font-weight: 600;
  margin-bottom: 0.7rem;
}
.entry-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem 0.8rem;
  border: 1px solid var(--line);
  border-radius: 4px;
  margin-bottom: 0.7rem;
  padding: 0.8rem;
  position: relative;
}
.entry-row .field label {
  font-size: 0.75rem;
}
.entry-row .field input,
.entry-row .field select {
  font-size: 0.85rem;
  padding: 0.45rem;
}
.entry-row .fixed-unit {
  font-size: 0.7rem;
  padding: 0.5rem 0.3rem;
}
.row-number {
  grid-column: 1/-1;
  color: var(--muted);
  font-size: 0.75rem;
  padding-bottom: 0.1rem;
}
.remove-row {
  position: absolute;
  right: 0.35rem;
  top: 0.1rem;
  border: 0;
  min-height: 30px;
  padding: 0 0.5rem;
  font-size: 1.2rem;
}
.site-footer {
  background: var(--paper);
  border-top: 1px solid var(--line);
  padding: 2.5rem max(2rem, calc((100vw - 1128px) / 2));
  display: grid;
  grid-template-columns: 1fr 0.8fr 1.5fr;
  gap: 2.5rem;
  font-size: 0.85rem;
}
.site-footer h2 {
  font-size: 0.9rem;
}
.site-footer p {
  color: var(--muted);
}
.site-footer > div > a:not(.brand) {
  display: block;
  margin: 0.5rem 0;
}
.site-footer .brand {
  margin-bottom: 0.7rem;
}
.saved-heading {
  margin: 2rem 0;
}
.saved-toolbar {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin: 1rem 0;
}
.saved-item {
  padding: 1.2rem 0;
  border-bottom: 1px solid var(--line);
}
.saved-item h3 {
  margin-bottom: 0.3rem;
}
.saved-item p {
  margin: 0.3rem 0;
  font-size: 0.9rem;
}
.saved-item .saved-value {
  font-size: 1.35rem;
  font-variant-numeric: tabular-nums;
}
.saved-meta {
  font-size: 0.8rem;
  color: var(--muted);
}
.saved-item button,
.saved-item a {
  font-size: 0.85rem;
}
.saved-group {
  margin-top: 2rem;
}
.saved-group h2 {
  border-bottom: 1px solid var(--line);
  padding-bottom: 0.6rem;
}
dialog {
  border: 1px solid var(--line);
  border-radius: 8px;
  width: min(460px, calc(100% - 2rem));
  padding: 1.6rem;
  color: inherit;
}
dialog::backdrop {
  background: #172c4360;
}
dialog label {
  display: block;
  margin: 0.8rem 0 0.3rem;
}
dialog input,
dialog textarea {
  width: 100%;
}
dialog textarea {
  min-height: 80px;
}
.dialog-actions {
  display: flex;
  gap: 0.8rem;
  margin-top: 1rem;
}
.notice {
  font-size: 0.85rem;
  color: var(--muted);
  padding: 1rem;
  background: var(--paper);
  border-radius: 4px;
}
.row-units {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-bottom: 0.5rem;
}
.row-units:empty {
  display: none;
}
.row-units label {
  font-size: 0.75rem;
  color: var(--muted);
}
.row-units select {
  font-size: 0.75rem;
  padding: 0.3rem;
  margin-left: 0.25rem;
  max-width: 80px;
}
@media (min-width: 1000px) {
  .calculator-layout:has(.repeat-field) {
    grid-template-columns: minmax(0, 1.5fr) minmax(320px, 1fr);
  }
  .entry-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 850px) {
  .tool-grid,
  .subjects {
    grid-template-columns: repeat(2, 1fr);
  }
  .calculator-layout {
    gap: 1.5rem;
  }
  .fields {
    grid-template-columns: 1fr;
  }
  .site-footer {
    grid-template-columns: 1fr 1fr;
  }
  .site-footer > div:last-child {
    grid-column: 1/-1;
  }
  .primary-value {
    font-size: 2.35rem;
  }
  .result-panel {
    padding: 1.3rem;
  }
}
@media (max-width: 640px) {
  .site-header {
    padding: 1rem;
  }
  .brand {
    font-size: 1.05rem;
  }
  .brand img {
    width: 26px;
    height: 26px;
  }
  .site-header nav {
    gap: 1rem;
    font-size: 0.8rem;
  }
  main {
    padding: 0 1rem 2.5rem;
  }
  .home-search {
    margin: 2.2rem 0;
  }
  .home-search h1 {
    font-size: 1.9rem;
    max-width: 15ch;
  }
  .search-area {
    margin: 1rem 0 1.5rem;
  }
  .search-control {
    gap: 0.5rem;
  }
  .search-control input {
    font-size: 0.9rem;
  }
  .search-control button {
    font-size: 0.85rem;
    padding: 0.5rem;
  }
  .tool-grid {
    gap: 0 1rem;
  }
  .tool-link small {
    font-size: 0.75rem;
  }
  .subjects {
    gap: 1.5rem 1rem;
  }
  .subjects ul {
    font-size: 0.85rem;
  }
  h1 {
    font-size: 1.65rem;
  }
  .tool-heading p {
    font-size: 0.9rem;
  }
  .calculator-layout {
    display: block;
  }
  .fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .field label {
    font-size: 0.8rem;
  }
  .field > select {
    font-size: 0.85rem;
  }
  .measurement input {
    padding: 0.65rem 0.5rem;
  }
  .measurement .unit-select {
    max-width: 85px;
    font-size: 0.75rem;
  }
  .field:has(> select) {
    grid-column: 1/-1;
  }
  .result-panel {
    position: static;
    margin-top: 1.5rem;
    min-height: 200px;
  }
  .primary-value {
    font-size: 2.7rem;
  }
  .result-actions {
    gap: 0.45rem;
  }
  .under-calculator {
    margin-top: 1.5rem;
  }
  .site-footer {
    padding: 2rem 1rem;
    gap: 1.5rem;
  }
  .entry-row .field:has(> select) {
    grid-column: auto;
  }
  .input-note {
    font-size: 0.72rem;
  }
  .primary-button {
    min-height: 46px;
  }
  .saved-toolbar button {
    font-size: 0.8rem;
  }
}
@media (max-width: 370px) {
  .fields {
    grid-template-columns: 1fr;
  }
  .brand img {
    display: none;
  }
  .site-header nav {
    gap: 0.65rem;
  }
  .search-control svg {
    display: none;
  }
}
@media print {
  .site-header,
  .search-area,
  .site-footer,
  .result-actions,
  .calculate-actions,
  .input-note,
  .breadcrumb,
  .quiet-button,
  .under-calculator,
  .mode-field,
  .saved-toolbar {
    display: none;
  }
  main {
    padding: 0;
    max-width: none;
  }
  .calculator-layout {
    display: block;
  }
  .result-panel {
    position: static;
    break-inside: avoid;
    background: white;
    padding: 1rem 0;
  }
  .input-panel {
    display: none;
  }
  .saved-item button {
    display: none;
  }
  body {
    color: black;
  }
}
.scope-note { border-left: 3px solid #a94b12; padding: .6rem .85rem; font-size: .9rem; background: #fff8f1; }
.prose { max-width: 760px; padding-top: 2rem; }
.prose h2 { margin-top: 2rem; }
.prose textarea { width: 100%; min-height: 220px; }
.prose form label { display: block; margin: 1rem 0 .35rem; }
.prose form input { width: 100%; }
.feedback-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
#problem-help { font-size: .88rem; color: var(--muted); }
.report-inputs { white-space: pre-wrap; overflow-wrap: anywhere; }
.print-record { display: none; }
button, summary, a { touch-action: manipulation; }
.analytics-choice:not([hidden]) { position: fixed; z-index: 1000; bottom: 1rem; left: 1rem; right: 1rem; max-width: 540px; display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; padding: .75rem 1rem; color: #102333; background: #fff; border: 1px solid #9baebb; box-shadow: 0 3px 14px #10233324; }
.analytics-choice p { margin: 0; flex-basis: 100%; }
.analytics-choice button { padding: .35rem .7rem; }
.analytics-choice a { margin-left: auto; }
dialog { max-height: 90dvh; overflow: auto; overscroll-behavior: contain; }
.site-header .brand { white-space: nowrap; }
@media (max-width: 480px) {
  .site-header { padding: .75rem 1rem; flex-wrap: wrap; }
  .site-header nav { gap: .8rem; }
  .menu-content { right: auto; left: 0; max-width: calc(100vw - 2rem); }
  .search-control input, .field > select, .measurement .unit-select { font-size: 16px; }
}
@media print {
  .print-record { display: block; white-space: pre-wrap; overflow-wrap: anywhere; }
  .result-panel > :not(.print-record) { display: none; }
  .saved-item details > * { display: block !important; }
  .saved-item details { content-visibility: visible; }
}
