.form-intro{
    padding:34px 0 22px;
}

.form-intro .eyebrow{
    color:#2f6f9f;
    font-weight:700;
    margin-bottom:8px;
}

.form-intro h1{
    margin:0 0 12px;
    font-size:2rem;
    color:#10263a;
}

.form-card{
    background:#fff;
    border:1px solid #c9d6df;
    border-radius:18px;
    padding:22px;
    box-shadow:0 6px 18px rgba(31,79,115,.08);
}

.side-card{
    background:#fff;
    border:1px solid #c9d6df;
    border-radius:16px;
    padding:18px;
}
.form-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 24px; align-items: start; }
.form-layout > article {
    min-width: 0;
}
.search-form.form-card { 
    display: block !important; 
    width: 100%; 
    max-width: 920px;
    box-sizing: border-box; 
    overflow: visible; }
.search-form.form-card > * { max-width: 100%; box-sizing: border-box; }
.search-form .category-block.search-block { display: block !important; width: 100% !important; max-width: 100% !important; float: none !important; clear: both !important; box-sizing: border-box; }
.search-form .category-block.search-block.category-filter-hidden { display: none !important; }
.search-form.is-results-mode .category-block.search-block, .search-form.is-results-mode .sticky-actions { display: none !important; }
.search-form.is-results-mode.is-editing .category-block.search-block { display: block !important; }
.search-form.is-results-mode.is-editing .category-block.search-block.category-filter-hidden { display: none !important; }
.search-form.is-results-mode.is-editing .sticky-actions { display: flex !important; }
.search-form .category-block.search-block > summary.category-title { display: list-item !important; width: auto !important; float: none !important; text-align: left !important; cursor: pointer; }
.search-form .search-row.form-row, .search-form .search-row { display: grid !important; grid-template-columns: 150px minmax(0, 1fr) !important; gap: 10px 18px !important; align-items: start !important; width: 100% !important; max-width: 100% !important; margin: 12px 0 !important; padding: 0 !important; float: none !important; clear: both !important; box-sizing: border-box !important; }
.search-form .search-row > label { grid-column: 1 !important; width: auto !important; max-width: 150px !important; float: none !important; text-align: left !important; }
.search-form .search-row > .field-wrap { grid-column: 2 !important; width: auto !important; min-width: 0 !important; max-width: 100% !important; float: none !important; }
.search-options, .search-number-range, .search-text { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.search-options label, .search-number-range label, .search-text label { display: inline-flex; align-items: center; gap: 4px; margin: 0; white-space: normal; }
.search-number-range input[type=number] { width: 88px; }
.search-text input[type=text] { max-width: 280px; width: 100%; }
.criteria-summary {
    margin: 0 0 24px;
    padding: 18px 20px;
    border-radius: 18px;
    border: 1px solid rgba(212, 154, 42, .45);
    background: #fffaf0;
    color: #261607;
}

.criteria-summary-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
}

.criteria-summary-head strong {
    color: #261607;
    font-size: 1.05rem;
}


.criteria-summary-buttons {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.criteria-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.criteria-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border: 1px solid #d49a2a;
    border-radius: 999px;
    background: #fffaf0;
    color: #261607;
    font-size: .92rem;
}
.criteria-tag button {
    border: 0;
    background: transparent;
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
}
.category-block.search-block { margin-top: 18px; padding: 14px 18px 18px; border-top: 1px solid rgba(120, 80, 35, .25); }
.category-filter-actions { margin-bottom: 10px; }
.category-any-button { padding: 4px 10px; border: 1px solid rgba(160, 110, 45, .45); border-radius: 999px; background: #fffaf0; cursor: pointer; }
.sticky-actions { margin-top: 22px; padding-top: 16px; border-top: 1px solid rgba(120, 80, 35, .25); }
.resultats-liste {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.resultat-appareil {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
    background: #f8f5ee;
    color: #111;
    border-radius: 8px;
    padding: 10px 14px;
}

.resultat-vignette img {
    width: 62px;
    height: 56px;
    object-fit: cover;
    border-radius: 4px;
    background: #e8e8e8;
}

.resultat-titre {
    font-weight: bold;
    color: #000;
    text-decoration: none;
}

.resultat-titre:hover {
    text-decoration: underline;
}

.resultat-meta {
    font-size: 13px;
    color: #666;
    margin-top: 3px;
}

.resultat-categories {
    font-size: 14px;
    color: #333;
    white-space: nowrap;
}

@media (max-width: 700px) {
    .resultat-appareil {
        grid-template-columns: 70px 1fr;
    }

    .resultat-categories {
        grid-column: 2;
        white-space: normal;
    }
}
@media (max-width: 900px) { .form-layout { grid-template-columns: 1fr; } .form-layout aside { order: -1; } }
@media (max-width: 640px) { .search-form .search-row.form-row, .search-form .search-row { grid-template-columns: 1fr !important; } .search-form .search-row > label, .search-form .search-row > .field-wrap { grid-column: 1 !important; max-width: none !important; } }

.result-categorie {
    color: #8a5b12;
    font-size: 0.95rem;
    margin-top: 2px;
}
.resultat-entete {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.type-badge,
.annee-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.82rem;
    line-height: 1.2;
    white-space: nowrap;
}

.type-badge {
    background: #eef3ff;
    border: 1px solid #c7d5f5;
    color: #16306b;
}

.annee-badge {
    background: #f4f0e6;
    border: 1px solid #d9c9a4;
    color: #7a5a17;
}
.search-identification-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.search-identification-field label {
    display: block;
    font-weight: 700;
    margin-bottom: 6px;
}

.search-identification-field input {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border-radius: 999px;
    border: 1px solid #d8c09a;
    background: #fffaf0;
}
.results-block,
.criteria-summary {
    width: 100%;
    max-width: 920px;
    box-sizing: border-box;
}

.resultats-liste {
    max-width: 920px;
}
.search-form.form-card.is-results-mode {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.search-form.form-card.is-results-mode.is-editing {
    background: #fffaf0 !important;
    border: 1px solid rgba(212, 154, 42, .45) !important;
    border-radius: 18px !important;
    padding: 18px 20px !important;
}

.criteria-summary,
.results-block,
.resultats-liste {
    width: 100%;
    max-width: 920px;
    box-sizing: border-box;
}
.form-layout {
    grid-template-columns:minmax(0,1fr) 260px;
    gap:24px;
}

.search-form.form-card,
.criteria-summary,
.results-block,
.resultats-liste {
    width: 100%;
    max-width: 920px;
    box-sizing: border-box;
}

@media (max-width: 900px) {
    .form-layout {
        grid-template-columns: 1fr;
    }
}
.form-card{
    background:#fff;
    border:1px solid #c9d6df;
    border-radius:18px;
    padding:24px;
    box-shadow:0 4px 16px rgba(31,79,115,.08);
}

.criteria-summary{
    margin:0 0 18px;
    padding:14px 18px;
}
.criteria-summary-head{
    margin-bottom:8px;
}
.category-filter-actions{
    margin-bottom:4px;
}
.category-any-button{
    font-weight:600;
    background:#f4f0e6;
}
.form-layout{
    grid-template-columns:minmax(0,1fr) 240px;
}
/* --------------------------------------------------------------------------
   Responsive smartphone — placé volontairement en fin de fichier pour
   écraser les redéfinitions desktop de .form-layout présentes plus haut.
   -------------------------------------------------------------------------- */
@media (max-width: 900px) {
    .form-layout {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 16px !important;
    }

    .form-layout > article,
    .form-layout > aside {
        width: 100%;
        min-width: 0;
    }

    .form-layout aside {
        order: 2;
    }

    .search-form.form-card,
    .criteria-summary,
    .results-block,
    .resultats-liste {
        width: 100% !important;
        max-width: none !important;
    }
}

.search-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.btn-search,
.btn-clear {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 8px 16px;
    border-radius: 999px;
    font-size: .95rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.btn-search {
    border: 1px solid #2f6f9f;
    background: #2f6f9f;
    color: #fff;
}

.btn-search:hover {
    background: #245879;
}

.btn-clear {
    border: 1px solid #d49a2a;
    background: #fffaf0;
    color: #6f4810;
}

.btn-clear:hover {
    background: #f8ecd5;
}

.btn.secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 14px;
    border: 1px solid #d49a2a;
    border-radius: 999px;
    background: #fffaf0;
    color: #6f4810;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.btn.secondary:hover {
    background: #f8ecd5;
}

.btn.secondary.small {
    padding: 6px 12px;
    font-size: .9rem;
}

.criteria-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 11px;

    border: 0;
    border-radius: 7px;

    background: #f1eee7;
    color: #261607;

    font-size: .92rem;
}

.criteria-tag button {
    border: 0;
    background: transparent;
    color: #666;
    cursor: pointer;
    padding: 0 2px;
}

.resultat-placeholder {
    width: 62px;
    height: 56px;
    box-sizing: border-box;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #eeeae2;
    border: 1px solid #d5d0c7;
    border-radius: 4px;

    color: #999;
    font-size: 34px;
    line-height: 1;
}

.resultat-vignette,
.resultat-vignette:hover,
.resultat-vignette:visited,
.resultat-vignette:active {
    text-decoration: none;
}
@media (max-width: 640px) {
    .form-intro {
        padding: 18px 0 12px;
    }

    .form-intro h1 {
        font-size: 1.65rem;
        line-height: 1.1;
    }

    .form-card {
        padding: 14px !important;
        border-radius: 14px;
    }

    .search-form.form-card.is-results-mode.is-editing {
        padding: 14px !important;
    }

    .criteria-summary {
        padding: 12px !important;
        margin-bottom: 14px;
        border-radius: 14px;
    }

    .criteria-summary-head {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
        margin-bottom: 10px;
    }

    .criteria-summary-buttons {
        width: 100%;
        gap: 6px;
    }

    .criteria-summary-buttons .btn,
    .criteria-summary-buttons button {
        flex: 1 1 auto;
        min-width: 0;
        white-space: normal;
    }

    .criteria-tags {
        gap: 6px;
    }

    .criteria-tag {
        max-width: 100%;
        box-sizing: border-box;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .category-block.search-block {
        margin-top: 12px;
        padding: 12px 0 14px;
    }

    .search-form .search-row.form-row,
    .search-form .search-row {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 6px !important;
        margin: 10px 0 !important;
    }

    .search-form .search-row > label,
    .search-form .search-row > .field-wrap {
        grid-column: 1 !important;
        width: 100% !important;
        max-width: none !important;
    }

    .search-text,
    .search-number-range,
    .search-options {
        width: 100%;
        max-width: 100%;
    }

    .search-text input[type="text"],
    .search-form input[type="text"],
    .search-form input[type="number"],
    .search-form select {
        max-width: 100%;
        box-sizing: border-box;
    }

    .search-identification-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px;
    }

    .resultat-appareil {
        grid-template-columns: 62px minmax(0, 1fr) !important;
        gap: 10px;
        padding: 9px 10px;
        align-items: start;
    }

    .resultat-vignette img {
        width: 56px;
        height: 52px;
    }

    .resultat-categories {
        grid-column: 2 !important;
        white-space: normal;
    }

    /* L'aide reste disponible mais ne doit jamais rétrécir le formulaire. */
    .form-layout aside {
        margin-top: 4px;
    }

    .side-card {
        padding: 14px;
        border-radius: 14px;
    }
}
