.waves-workspace {
  --waves-ink: #163342;
  --waves-blue: #087ea4;
  --waves-warm: #d5922b;
}
.waves-workspace svg {
  width: 100%;
  height: auto;
  color: var(--waves-ink);
  font:
    15px system-ui,
    sans-serif;
}
.waves-apparatus-wrap,
.waves-table-wrap {
  overflow-x: auto;
  margin: 1.2rem 0;
}
.waves-apparatus {
  min-width: 680px;
  background: linear-gradient(#f4fbfd, #fff);
  border: 1px solid #c4d7df;
  border-radius: 12px;
}
.waves-metal {
  fill: #c8d7df;
  stroke: #365261;
  stroke-width: 2;
}
.waves-support {
  fill: none;
  stroke: #365261;
  stroke-width: 3;
}
.waves-string {
  fill: none;
  stroke: var(--waves-blue);
  stroke-width: 3;
}
.waves-node {
  fill: #163342;
}
.waves-mass {
  fill: #bb7932;
  stroke: #7e4c1c;
  stroke-width: 1;
}
.waves-rack {
  fill: #e6edf0;
  stroke: #8099a5;
  stroke-width: 2;
}
.waves-tray {
  fill: #d9e3e7;
  stroke: #6a8490;
  stroke-width: 4;
}
.waves-ruler-tick {
  stroke: #304c5b;
  stroke-width: 1;
}
.waves-draggable {
  cursor: grab;
  touch-action: none;
  outline: none;
}
.waves-draggable:focus-visible {
  filter: drop-shadow(0 0 4px #006eff);
  outline: 3px solid #006eff;
}
.waves-draggable[aria-disabled="true"] {
  cursor: default;
  opacity: 0.7;
}
.waves-controls {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 1rem;
}
.waves-workspace label {
  display: block;
  margin: 0.8rem 0;
}
.waves-workspace input[type="number"],
.waves-workspace select {
  display: block;
  max-width: 100%;
  padding: 0.55rem;
  border: 1px solid #8099a5;
  border-radius: 5px;
  font: inherit;
}
.waves-workspace button {
  margin: 0.3rem 0.4rem 0.3rem 0;
}
.waves-workspace button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.waves-generator {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  background: #edf3f6;
  padding: 1rem;
  border: 1px solid #afc4cf;
  border-radius: 12px;
  margin-top: 1rem;
}
.waves-generator > svg {
  width: 160px;
  flex-shrink: 0;
}
.waves-generator > div {
  flex: 1;
}
.waves-generator input[type="range"] {
  display: block;
  width: 100%;
  margin: 1rem 0;
}
.waves-dial {
  fill: #264858;
  stroke: #172f3a;
  stroke-width: 3;
}
.waves-pointer {
  stroke: #fcdf8e;
  stroke-width: 6;
  stroke-linecap: round;
}
.waves-tuning {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.waves-tuning button {
  background: white;
  color: #183e50;
  border: 1px solid #7f9ba9;
  padding: 0.6rem;
  border-radius: 5px;
}
.waves-table-wrap table {
  width: 100%;
  border-collapse: collapse;
  min-width: 760px;
  font-size: 0.92rem;
}
.waves-table-wrap td,
.waves-table-wrap th {
  padding: 0.65rem;
  border: 1px solid #c0d2db;
  text-align: left;
}
.waves-table-wrap th {
  background: #edf4f7;
}
.waves-table-wrap caption {
  font-weight: 700;
  text-align: left;
  padding: 0.8rem 0;
}
.waves-table-wrap input {
  width: 100px;
}
.waves-safety {
  border-left: 4px solid #ba7b20;
  background: #fff8e9;
  padding: 1rem;
}
.waves-correction {
  background: #fff0c3 !important;
  color: #5b3900;
}
.waves-workspace meter {
  width: 180px;
  height: 1.3rem;
  vertical-align: middle;
}
.waves-workspace figure {
  margin: 1.5rem 0;
}
.waves-workspace figcaption {
  font-weight: 700;
}
.waves-graph {
  background: #fff;
  border: 1px solid #b7ccd6;
  min-width: 540px;
}
.waves-workspace [data-waves-graphs] figure {
  overflow-x: auto;
}
.waves-grid-minor {
  stroke: #d8e6ee;
  stroke-width: 0.55;
}
.waves-grid-major {
  stroke: #9db6c5;
  stroke-width: 1;
}
.waves-point {
  fill: #075d85;
}
.waves-fit {
  stroke: #ba5d22;
  stroke-width: 2.5;
}
@media (max-width: 600px) {
  .waves-generator {
    gap: 0.5rem;
    padding: 0.6rem;
  }
  .waves-generator > svg {
    width: 110px;
  }
  .waves-tuning button {
    padding: 0.5rem;
  }
  .waves-controls {
    grid-template-columns: 1fr;
  }
}
