﻿/* Pannello filtri e barra dei risultati delle pagine di ricerca (_SearchLayout.cshtml).
   Usa le variabili di header.css (--accent, --border, --radius...), caricato in tutte le pagine. */

/* ============ pannello filtri ============ */
/* annuncio.css limita #filters a 300px anche su mobile, dove il pannello deve occupare la riga */
#filters {
    max-width: none;
}

@media (min-width: 768px) {
    #filters {
        max-width: 320px;
    }
}

/* pulsante "Visualizza filtri" (solo mobile) */
#filters > .btn {
    width: 100%;
    max-width: none;
    text-transform: none;
    border-width: 1px;
    border-color: var(--border, #e2e4ec);
    border-radius: var(--radius, 6px);
    color: var(--ink, #151a2d);
}

    #filters > .btn i {
        color: var(--accent, #1478a6);
    }

.search-panel {
    background: var(--bg, #fff);
    border: 1px solid var(--border, #e2e4ec);
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(21, 26, 45, .04), 0 4px 16px rgba(21, 26, 45, .04);
    margin-bottom: 1.5rem;
}

/* sticky solo quando il pannello sta in colonna: su mobile e' un pannello a scomparsa */
@media (min-width: 768px) {
    #searchForm.search-panel {
        /* header fisso in alto e footer fisso in basso: il pannello si ferma sotto l'uno e finisce sopra l'altro */
        top: calc(var(--header-h, 76px) + 12px);
        max-height: calc(100vh - var(--header-h, 76px) - 84px);
        display: flex;
        flex-direction: column;
    }
}

.search-panel__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .9rem 1.1rem;
    border-bottom: 1px solid var(--border, #e2e4ec);
}

.search-panel__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    text-transform: none;
    color: var(--ink, #151a2d);
}

    .search-panel__title i {
        color: var(--accent, #1478a6);
        margin-right: .35rem;
    }

.search-panel__reset {
    font-size: .85rem;
    color: var(--ink-soft, #4a5178);
    text-decoration: underline;
}

    .search-panel__reset:hover {
        color: var(--accent-dark, #0f5f86);
    }

.search-panel__body {
    padding: 1rem 1.1rem .25rem;
    overflow-y: auto;
}

/* i campi del pannello: l'altezza ridotta di annuncio.css (#filters .form-control) li rendeva illeggibili.
   Il selettore inizia con #filters per prevalere su quella regola, che contiene un id */
#filters .search-panel .form-control,
#filters .search-panel .custom-select,
#filters .search-panel .bootstrap-select > .dropdown-toggle {
    height: calc(1.5em + .75rem + 2px);
    padding-top: .375rem;
    padding-bottom: .375rem;
    border-color: var(--border, #e2e4ec);
    border-radius: var(--radius, 6px);
    font-size: .9rem;
}

    .search-panel .form-control:focus {
        border-color: var(--accent, #1478a6);
        box-shadow: 0 0 0 .2rem rgba(46, 125, 91, .15);
    }

    .search-panel .form-control:disabled {
        background: var(--bg-soft, #f4f5f8);
    }

.search-panel .control-label,
.search-panel label {
    font-size: .8rem;
    font-weight: 600;
    font-style: normal;
    text-transform: none;
    color: var(--ink-soft, #4a5178);
    margin-bottom: .3rem;
}

.search-panel .form-group {
    margin-bottom: .85rem;
}

/* i filtri di categoria arrivano con le proprie righe (form-row mt-4): niente spazi doppi
   e niente margini negativi, che li facevano sporgere rispetto agli altri campi */
.search-panel__category .form-row {
    margin-top: 0 !important;
    margin-left: 0;
    margin-right: 0;
}

.search-panel__category .form-group {
    padding-left: 0;
    padding-right: 0;
}

/* icona e campo con la stessa altezza: l'icona aveva le misure standard di Bootstrap (1rem),
   il campo quelle ridotte del pannello (.9rem), e la differenza si vedeva */
.search-panel__text .input-group-text {
    height: calc(1.5em + .75rem + 2px);
    padding: .375rem .7rem;
    font-size: .9rem;
    line-height: 1.5;
    background: var(--bg-soft, #f4f5f8);
    border-color: var(--border, #e2e4ec);
    border-radius: var(--radius, 6px) 0 0 var(--radius, 6px);
    color: var(--ink-soft, #4a5178);
}

.search-panel__text .form-control {
    border-left: 0 !important;
    border-radius: 0 var(--radius, 6px) var(--radius, 6px) 0 !important;
}

.search-panel__section {
    border-top: 1px solid var(--border, #e2e4ec);
    padding-top: .85rem;
    margin-top: .25rem;
}

    .search-panel__section legend {
        width: auto;
        font-size: .75rem;
        font-weight: 700;
        letter-spacing: .06em;
        text-transform: uppercase;
        color: var(--ink, #151a2d);
        margin-bottom: .6rem;
    }

        .search-panel__section legend i {
            color: var(--accent, #1478a6);
            margin-right: .25rem;
        }

        .search-panel__section legend .currency {
            height: 14px;
            vertical-align: -2px;
            margin-right: .2rem;
        }

/* campi affiancati (anno da/a): un po' di spazio tra i due */
.search-panel__category .form-row > .col-6:first-child {
    padding-right: .35rem;
}

.search-panel__category .form-row > .col-6:last-child {
    padding-left: .35rem;
}

/* giorni di disponibilita' dei servizi: "Tutti i giorni" su una riga, i giorni su due colonne */
.search-panel__all-days {
    margin-bottom: .5rem;
}

.search-panel__days {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .35rem .75rem;
    margin-bottom: .85rem;
}

.search-panel .custom-control-label {
    font-weight: 500;
    color: var(--ink, #151a2d);
    cursor: pointer;
}

.search-panel .custom-control-input:checked ~ .custom-control-label::before {
    border-color: var(--accent, #1478a6);
    background-color: var(--accent, #1478a6);
}

/* intervallo crediti: etichetta e valore sulla stessa riga, slider sotto */
.search-panel__range-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

    .search-panel__range-head label {
        margin-bottom: 0;
    }

#filters .search-panel__range-value .form-control,
#filters .search-panel__range-value input {
    width: 84px;
    height: calc(1.2em + .5rem + 2px);
    padding: .15rem .5rem;
    text-align: right;
    font-size: .85rem;
    font-weight: 600;
    color: var(--ink, #151a2d);
}

.search-panel .custom-range {
    margin-top: .35rem;
}

    .search-panel .custom-range::-webkit-slider-thumb {
        background: var(--accent, #1478a6);
    }

    .search-panel .custom-range::-moz-range-thumb {
        background: var(--accent, #1478a6);
    }

    .search-panel .custom-range::-webkit-slider-runnable-track {
        background: var(--accent-soft, #e8f5fb);
    }

    .search-panel .custom-range::-moz-range-track {
        background: var(--accent-soft, #e8f5fb);
    }

/* ============ azioni ============ */
.search-panel__footer {
    padding: .9rem 1.1rem 1rem;
    border-top: 1px solid var(--border, #e2e4ec);
    background: var(--bg, #fff);
    border-radius: 0 0 10px 10px;
}

/* site.css imposta .btn { text-transform: uppercase } e theme.css i colori delle varianti:
   per questi pulsanti va sovrascritto in modo esplicito */
.btn.btn-search,
.btn.btn-search-alert,
.btn.btn-saved-search-delete {
    text-transform: none;
    border-width: 1px;
    white-space: normal;
    min-width: 0;
}

    .btn.btn-search:hover,
    .btn.btn-search-alert:hover,
    .btn.btn-saved-search-delete:hover {
        box-shadow: none;
    }

.btn.btn-search {
    background-color: var(--accent, #1478a6) !important;
    border-color: var(--accent, #1478a6);
    color: #fff;
    font-weight: 600;
    border-radius: var(--radius, 6px);
    padding: .55rem 1rem;
}

    .btn.btn-search:hover,
    .btn.btn-search:focus {
        background-color: var(--accent-dark, #0f5f86) !important;
        border-color: var(--accent-dark, #0f5f86);
        color: #fff;
    }

.search-alert {
    margin-top: .9rem;
    padding: .75rem;
    border-radius: var(--radius, 6px);
    background: var(--accent-soft, #e8f5fb);
}

.btn.btn-search-alert {
    background-color: #fff !important;
    border: 1px solid var(--accent, #1478a6);
    color: var(--accent-dark, #0f5f86);
    font-weight: 600;
    font-size: .9rem;
    border-radius: var(--radius, 6px);
}

    .btn.btn-search-alert:hover,
    .btn.btn-search-alert:focus {
        background-color: var(--accent, #1478a6) !important;
        color: #fff;
    }

    .btn.btn-search-alert.is-saved {
        background-color: var(--accent, #1478a6) !important;
        color: #fff;
        cursor: default;
    }

.search-alert__hint {
    margin: .45rem 0 0;
    font-size: .78rem;
    line-height: 1.35;
    color: var(--ink-soft, #4a5178);
}

.search-alert__feedback:empty {
    display: none;
}

.search-alert__feedback {
    margin-top: .5rem;
    font-size: .82rem;
    line-height: 1.35;
}

    .search-alert__feedback a {
        font-weight: 600;
        color: var(--accent-dark, #0f5f86);
        text-decoration: underline;
    }

.search-panel__saved-link {
    display: block;
    margin-top: .75rem;
    text-align: center;
    font-size: .85rem;
    font-weight: 600;
    color: var(--ink-soft, #4a5178);
}

    .search-panel__saved-link:hover {
        color: var(--accent-dark, #0f5f86);
        text-decoration: none;
    }

/* ============ barra dei risultati ============ */
.results-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .6rem .9rem;
    margin-bottom: 1rem;
    background: var(--bg, #fff);
    border: 1px solid var(--border, #e2e4ec);
    border-radius: 10px;
}

.results-toolbar__count {
    font-size: .9rem;
    color: var(--ink-soft, #4a5178);
}

    .results-toolbar__count strong {
        color: var(--ink, #151a2d);
        font-size: 1rem;
    }

.results-toolbar__sort {
    display: flex;
    align-items: center;
    gap: .5rem;
}

    .results-toolbar__sort label {
        margin: 0;
        white-space: nowrap;
        font-size: .85rem;
        font-weight: 600;
        font-style: normal;
        text-transform: none;
        color: var(--ink-soft, #4a5178);
    }

    .results-toolbar__sort .custom-select {
        min-width: 200px;
        border-color: var(--border, #e2e4ec);
        border-radius: var(--radius, 6px);
    }

@media (max-width: 575.98px) {
    .results-toolbar__sort {
        width: 100%;
    }

        .results-toolbar__sort .custom-select {
            flex: 1;
            min-width: 0;
        }
}

/* ============ pagina ricerche salvate (Views/Ricerca/Index.cshtml) ============ */
.saved-search {
    height: 100%;
    background: var(--bg, #fff);
    border: 1px solid var(--border, #e2e4ec);
    border-radius: 10px;
    padding: 1rem 1.1rem;
    display: flex;
    flex-direction: column;
}

.saved-search__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .5rem;
}

.saved-search__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--ink, #151a2d);
    text-transform: none;
}

.saved-search__head .saved-search__title {
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
}

/* rinomina: matita accanto al titolo, campo in linea al posto del titolo */
.saved-search__rename {
    flex-shrink: 0;
    border: 0;
    background: transparent;
    color: var(--ink-soft, #4a5178);
    padding: .1rem .3rem;
    border-radius: var(--radius, 6px);
    line-height: 1;
}

    .saved-search__rename:hover,
    .saved-search__rename:focus {
        color: var(--accent-dark, #0f5f86);
        background: var(--accent-soft, #e8f5fb);
    }

.saved-search__rename-form {
    display: flex;
    gap: .35rem;
    margin-top: .6rem;
}

    .saved-search__rename-form .form-control {
        flex: 1 1 auto;
        min-width: 0;
        border-color: var(--border, #e2e4ec);
        border-radius: var(--radius, 6px);
    }

    .saved-search__rename-form .form-control:focus {
        border-color: var(--accent, #1478a6);
        box-shadow: 0 0 0 .2rem rgba(46, 125, 91, .15);
    }

    .saved-search__rename-form .btn {
        flex-shrink: 0;
        padding: .25rem .6rem;
        font-size: .85rem;
    }

.saved-search__rename-error {
    margin: .35rem 0 0;
    font-size: .8rem;
}

/* in modifica: il titolo e la matita lasciano il posto al campo */
.saved-search.is-renaming .saved-search__head .saved-search__title,
.saved-search.is-renaming .saved-search__rename {
    display: none;
}

.saved-search__new {
    flex-shrink: 0;
    background: var(--accent, #1478a6);
    color: #fff;
    border-radius: 999px;
    padding: .15rem .6rem;
    font-size: .75rem;
    font-weight: 700;
}

.saved-search__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin: .75rem 0 1rem;
}

.saved-search__chip {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .2rem .6rem;
    border-radius: 999px;
    background: var(--bg-soft, #f4f5f8);
    color: var(--ink-soft, #4a5178);
    font-size: .8rem;
}

    .saved-search__chip img {
        height: 12px;
    }

.saved-search__actions {
    margin-top: auto;
    display: flex;
    gap: .5rem;
}

    .saved-search__actions .btn-search {
        flex: 1;
        padding: .35rem .75rem;
        font-size: .9rem;
    }

.btn.btn-saved-search-delete {
    border: 1px solid var(--border, #e2e4ec);
    background-color: #fff !important;
    color: var(--ink-soft, #4a5178);
    border-radius: var(--radius, 6px);
}

    .btn.btn-saved-search-delete:hover {
        border-color: #dc3545;
        color: #dc3545;
    }

.saved-search-callout {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: 1rem 1.1rem;
    margin-bottom: 1.25rem;
    border-radius: 10px;
    background: var(--accent-soft, #e8f5fb);
    color: var(--ink, #151a2d);
}

    .saved-search-callout p {
        margin: 0;
    }

    .saved-search-callout .btn {
        white-space: nowrap;
    }

.saved-search-empty {
    text-align: center;
    padding: 2rem 1rem;
}

    .saved-search-empty img {
        max-width: 220px;
        width: 60%;
    }
