/* Shared search control and highlighting. */

/* Search control */
.search-control {
    position: relative;
    display: flex;
    width: 100%;
    align-items: center;
    border: 1px solid var(--purple);
    border-radius: var(--radius-s);
    background: var(--surface);
    box-shadow: var(--shadow-soft);
    transition: border-color var(--transition-purple-glow), box-shadow var(--transition-purple-glow);
}

/* Search results */
.search-highlight {
    padding-inline: 0.1em;
    border-radius: 0.4em;
    color: #111;
    background: #00ff00;
}

.search-block {
    display: grid;
    width: 80%;
    gap: var(--space-s);
    margin-inline: auto;
    margin-block-end: var(--space-xl);
}

.search-input {
    display: block;
    width: 100%;
    min-width: 0;
    padding: var(--space-m) var(--space-l) var(--space-m) calc(var(--space-2xl) + var(--space-s));
    border: 0;
    color: var(--text);
    background: transparent;
    box-shadow: none;
}

.search-input::placeholder {
    color: var(--text-soft);
    opacity: 1;
}

.search-icon {
    position: absolute;
    inset-inline-start: var(--space-m);
    width: 20px;
    height: 20px;
    color: var(--text-soft);
    pointer-events: none;
}

.search-icon::before {
    content: "";
    position: absolute;
    inset: 1px 5px 5px 1px;
    border: 2px solid currentColor;
    border-radius: 50%;
}

.search-icon::after {
    content: "";
    position: absolute;
    right: 1px;
    bottom: 1px;
    width: 7px;
    height: 2px;
    border-radius: var(--radius-pill);
    background: currentColor;
    transform: rotate(45deg);
    transform-origin: center;
}

.search-status {
    color: var(--text-soft);
    text-align: center;
}

.search-input:focus-visible {
    outline: none;
}

.search-control:has(.search-input:focus-visible) {
    border-color: rgba(var(--purple-dark-rgb), var(--a-3xl));
    box-shadow: var(--purple-glow-shadow);
}

@media (width < 1000px) {
    .search-block {
        width: 100%;
    }
}
