.searchinput-group {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  width: 100%;
}

.searchinput-group > .form-control,
.searchinput-group > .form-floating,
.searchinput-group > .form-select {
  position: relative;
  flex: 1 1 auto;
  width: 1%;
  min-width: 0;
}

.searchinput-group > .form-control:focus,
.searchinput-group > .form-floating:focus-within,
.searchinput-group > .form-select:focus {
  z-index: 5;
}

.searchinput-group .btn {
  position: relative;
  z-index: 2;
}

.searchinput-group .btn:focus {
  z-index: 5;
}

.searchinput-group-text {
  display: flex;
  align-items: center;
  padding: .45rem .9rem;
  font-size: .9rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--upf-text-primary);
  text-align: center;
  white-space: nowrap;
  background-color: var(--upf-color-surface-muted);
  border: 1px solid var(--upf-color-border);
  border-radius: .5rem;
}

.searchinput-group-lg > .btn,
.searchinput-group-lg > .form-control,
.searchinput-group-lg > .form-select,
.searchinput-group-lg > .searchinput-group-text {
  padding: .5rem 1rem;
  font-size: calc(1.2501rem + .0012vw);
  border-radius: .75rem;
}

.searchinput-group-sm > .btn,
.searchinput-group-sm > .form-control,
.searchinput-group-sm > .form-select,
.searchinput-group-sm > .searchinput-group-text {
  padding: .28rem .8rem;
  font-size: .875rem;
  border-radius: .45rem;
}

.searchinput-group-lg > .form-select,
.searchinput-group-sm > .form-select {
  padding-right: 3.6rem;
}

.searchinput-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),
.searchinput-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.searchinput-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
  margin-left: -1px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

/* =============================================================
   PAGE HEADER
   Equivalent to Hyper .page-title-box pattern
   Usage:
     <div class="upf-page-header">
       <h4 class="upf-page-title">Titolo pagina</h4>
       <div class="upf-page-actions"> ... </div>
     </div>
   ============================================================= */
.upf-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--upf-space-3);
  margin-bottom: var(--upf-space-5);
}

.upf-page-title {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--upf-text-primary);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.upf-page-actions {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--upf-space-2);
  flex-shrink: 0;
}