/* Shared search component for the public site and device portal. */
.header-icon { width:42px; height:42px; min-width:42px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line,#cbd3c8); border-radius:50%; color:var(--ink,#183d36); background:transparent; text-decoration:none; cursor:pointer; list-style:none; }
.header-icon svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.header-icon:hover { background:var(--sage,#e8efe5); }
.site-search { width:min(760px,calc(100vw - 32px)); max-height:calc(100dvh - 48px); border:1px solid var(--line,#cbd3c8); border-radius:24px; padding:28px; overflow:auto; background:var(--paper,#f6f3ed); color:var(--ink,#183d36); box-shadow:0 25px 100px #183d3633; }
.site-search::backdrop { background:#163c3477; backdrop-filter:blur(3px); }
.search-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.search-heading h2 { font-size:30px; margin:0; }
.search-heading button { font-size:30px; line-height:1; flex-shrink:0; }
.site-search input { width:100%; border:1px solid #849a89; border-radius:13px; padding:15px 18px; min-height:56px; background:var(--white,#fffdf8); color:var(--ink,#183d36); font-size:19px; }
#search-status { margin:15px 0; color:var(--muted,#52655f); font-size:15px; }
.search-results { list-style:none; margin:0; padding:0; }
.search-results li { border-bottom:1px solid var(--line,#cbd3c8); }
.search-results a { display:flex; flex-direction:column; gap:8px; padding:18px 12px; text-decoration:none; border-radius:10px; }
.search-results a:hover { background:var(--sage,#e8efe5); }
.search-results strong { font-size:21px; line-height:1.3; }
.search-results span { font-size:16px; line-height:1.5; color:var(--muted,#52655f); overflow-wrap:anywhere; }
.search-footer { margin-top:25px; border-top:1px solid var(--line,#cbd3c8); padding-top:18px; }
.search-footer p { font-size:14px; color:var(--muted,#52655f); margin-bottom:10px; }
.search-footer a { font-size:15px; font-weight:600; }
.site-search .sr-only,.header-icon .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; }
@media(max-width:540px) { .site-search {padding:22px;border-radius:20px;} .search-heading {gap:12px;} .search-heading h2 {font-size:26px;} .site-search input {font-size:17px;padding:13px;} }
