/* 계산기 허브 — 검색 자동완성 */

.hub-search {
  position: relative;
  margin: 0 0 22px;
}
.hub-search input[type="search"] {
  width: 100%;
  padding: 15px 46px 15px 46px;
  font-size: 1rem;
  font-family: inherit;
  border: 2px solid var(--line);
  border-radius: 12px;
  background: #fff;
  color: var(--ink);
  transition: border-color .15s, box-shadow .15s;
}
.hub-search input[type="search"]:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 4px rgba(26,115,232,.1);
}
.hub-search .s-icon {
  position: absolute;
  left: 16px; top: 50%;
  transform: translateY(-50%);
  font-size: 1.05rem;
  color: #9aa0a6;
  pointer-events: none;
}
.hub-search .s-clear {
  position: absolute;
  right: 12px; top: 50%;
  transform: translateY(-50%);
  border: 0; background: #eceff3; color: #606770;
  width: 26px; height: 26px; border-radius: 50%;
  font-size: .95rem; cursor: pointer; display: none;
  line-height: 1;
}
.hub-search .s-clear:hover { background: #dfe3e8; }
.hub-search.has-value .s-clear { display: block; }

/* 결과 리스트 */
.s-results {
  position: absolute;
  top: calc(100% + 6px); left: 0; right: 0;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,.10);
  max-height: 380px;
  overflow-y: auto;
  z-index: 60;
  display: none;
}
.hub-search.open .s-results { display: block; }
.s-results a {
  display: flex; align-items: center; gap: 10px;
  padding: 11px 15px;
  border-bottom: 1px solid #f2f4f7;
  color: var(--ink);
  font-size: .94rem;
}
.s-results a:last-child { border-bottom: 0; }
.s-results a:hover, .s-results a.active {
  background: #f0f6ff; text-decoration: none;
}
.s-results .r-ico { font-size: 1.1rem; }
.s-results .r-name { font-weight: 600; }
.s-results .r-cat {
  margin-left: auto; font-size: .76rem; color: var(--sub);
  background: #f2f4f7; padding: 2px 8px; border-radius: 999px;
}
.s-results .r-none {
  padding: 18px 15px; color: var(--sub); font-size: .9rem; text-align: center;
}
.s-results mark { background: #fff3bf; color: inherit; padding: 0 1px; border-radius: 3px; }
