.module-hero{background:linear-gradient(135deg,#eaf3ff,#f7fbff);padding:3.6rem 1rem 3rem;border-bottom:1px solid #dbe7f7}.module-wrap{max-width:1120px;margin:auto}.module-hero h1{font-size:clamp(2rem,5vw,3.35rem);margin:0;color:#10264a}.module-hero p{max-width:760px;color:#52627d;font-size:1.05rem;line-height:1.65}.module-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.35rem}.module-tabs{display:flex;gap:.55rem;flex-wrap:wrap;margin:1.5rem 0}.module-tabs a{padding:.7rem 1rem;border-radius:999px;background:#eef3f9;color:#334155;text-decoration:none;font-weight:700}.module-tabs a.active{background:#2864ef;color:#fff}.module-main{padding:2.5rem 1rem 4rem}.module-filter{display:grid;grid-template-columns:2fr 1fr auto;gap:.75rem;background:#fff;border:1px solid #dce5f1;padding:1rem;border-radius:16px;box-shadow:0 8px 24px rgba(15,23,42,.05);margin-bottom:1.5rem}.module-filter input,.module-filter select,.module-form input,.module-form select,.module-form textarea{width:100%;border:1px solid #cbd5e1;border-radius:11px;padding:.82rem 1rem;font:inherit;background:#fff}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.module-card{display:flex;flex-direction:column;background:#fff;border:1px solid #dce5f1;border-radius:18px;padding:1.35rem;box-shadow:0 10px 28px rgba(15,23,42,.07);min-height:250px}.module-card h2,.module-card h3{margin:.6rem 0;color:#0f172a}.module-card p{color:#52627d;line-height:1.6}.module-card .button{margin-top:auto}.module-badges{display:flex;gap:.45rem;flex-wrap:wrap}.module-badge{font-size:.76rem;font-weight:800;border-radius:999px;padding:.38rem .65rem;background:#eaf2ff;color:#1d4ed8}.module-empty{background:#fff;border:1px dashed #bfd0e4;border-radius:16px;padding:2rem;text-align:center;color:#52627d}.module-detail{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:2rem}.module-content{background:#fff;border:1px solid #dce5f1;border-radius:18px;padding:2rem;line-height:1.75}.module-content h2{margin-top:2rem;color:#10264a}.module-aside{position:sticky;top:130px;align-self:start;background:#f8fbff;border:1px solid #dbe7f7;border-radius:16px;padding:1.25rem}.module-list{display:grid;gap:.75rem}.module-row{background:#fff;border:1px solid #dce5f1;border-radius:14px;padding:1rem}.module-form{max-width:760px;background:#fff;border:1px solid #dce5f1;border-radius:18px;padding:1.5rem;display:grid;gap:1rem}.module-form label{font-weight:700;color:#243650}.module-message{padding:1rem;border-radius:12px;background:#ecfdf5;color:#166534}.module-error{background:#fef2f2;color:#991b1b}.resource-definition{font-size:1rem;line-height:1.65}.external-logo{height:48px;max-width:120px;object-fit:contain;margin-bottom:.8rem}.project-state{background:#ede9fe;color:#6d28d9}.calendar-list{display:grid;gap:1rem}.calendar-event{background:#fff;border-left:4px solid #2864ef;border-radius:12px;padding:1rem 1.15rem;box-shadow:0 7px 20px rgba(15,23,42,.06)}@media(max-width:900px){.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module-detail{grid-template-columns:1fr}.module-aside{position:static}}@media(max-width:650px){.module-hero{padding:2.6rem 1rem 2.2rem}.module-main{padding:1.5rem 1rem 3rem}.module-filter{grid-template-columns:1fr}.module-grid{grid-template-columns:1fr}.module-content{border:0;border-radius:0;padding:0;box-shadow:none}.module-form{padding:1.1rem}.module-tabs{display:grid;grid-template-columns:1fr 1fr}.module-tabs a{text-align:center}}

/* Présentations centrées */
.module-hero-centered{text-align:center}.module-hero-centered .module-wrap{display:flex;flex-direction:column;align-items:center}.module-hero-centered p{margin:1rem auto 0}.module-actions-centered{justify-content:center}.module-badges-centered{justify-content:center}

/* Navigation Ressources sous le héros */
.resource-switcher{background:#fff;border-bottom:1px solid #dbe7f7;padding:1rem}.resource-switcher-inner{display:flex;justify-content:center;gap:.7rem;flex-wrap:wrap}.resource-switcher a{background:#f1f5f9;border:1px solid #dce5f1;border-radius:999px;color:#334155;font-weight:800;padding:.78rem 1.2rem;text-decoration:none}.resource-switcher a:hover,.resource-switcher a.active{background:#2864ef;border-color:#2864ef;color:#fff}

/* Glossaire : une ligne longue par définition */
.resource-definition-list{display:grid;gap:.8rem}.resource-definition-row{background:#fff;border:1px solid #dce5f1;border-radius:16px;color:inherit;display:block;padding:1.15rem 1.3rem;text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.resource-definition-row:hover{border-color:#aecaef;box-shadow:0 10px 26px rgba(15,23,42,.08);transform:translateY(-1px)}.resource-definition-heading{align-items:center;display:flex;gap:1rem;justify-content:space-between}.resource-definition-row h2{color:#10264a;font-size:1.14rem;margin:0}.resource-definition-row p{color:#52627d;line-height:1.55;margin:.5rem 0 0}.module-card-link{color:inherit;text-decoration:none}.module-card-link:hover{border-color:#aecaef;box-shadow:0 14px 32px rgba(15,23,42,.1);transform:translateY(-2px)}

/* Modales */
body.module-modal-open{overflow:hidden}.module-modal{display:none;inset:0;position:fixed;z-index:10000}.module-modal.is-open{display:flex;align-items:center;justify-content:center;padding:1rem}.module-modal-backdrop{background:rgba(15,23,42,.62);inset:0;position:absolute}.module-modal-dialog{background:#fff;border-radius:20px;box-shadow:0 24px 70px rgba(15,23,42,.28);max-height:calc(100vh - 2rem);max-width:720px;overflow:auto;padding:1.6rem;position:relative;width:100%;z-index:1}.module-modal-dialog-wide{max-width:900px}.module-modal-close{align-items:center;background:#eef3f9;border:0;border-radius:999px;color:#243650;cursor:pointer;display:flex;font-size:1.6rem;height:40px;justify-content:center;position:absolute;right:1rem;top:1rem;width:40px}.module-modal-header{padding-right:3.3rem}.module-modal-header h2{color:#10264a;font-size:1.65rem;margin:0}.module-modal-header p{color:#52627d;line-height:1.55}.module-form-modal{border:0;box-shadow:none;max-width:none;padding:1rem 0 0}.module-honeypot{left:-10000px;position:absolute!important}.resource-modal-content{min-height:170px}.resource-modal-loading{align-items:center;color:#52627d;display:flex;justify-content:center;min-height:170px}.resource-detail-header{border-bottom:1px solid #e2e8f0;margin-bottom:1.4rem;padding:0 3rem 1rem 0}.resource-detail-kicker{color:#2864ef;font-size:.78rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.resource-detail-header h1{color:#10264a;font-size:clamp(1.7rem,4vw,2.4rem);margin:.35rem 0 0}.resource-detail-body{color:#334155;line-height:1.75}.resource-detail-body h2{color:#10264a;font-size:1.25rem;margin:1.6rem 0 .5rem}.resource-detail-page{max-width:900px;margin:auto}

@media(max-width:650px){.resource-switcher-inner{display:grid;grid-template-columns:1fr;width:100%}.resource-switcher a{text-align:center}.resource-definition-heading{align-items:flex-start;flex-direction:column;gap:.45rem}.resource-definition-row{padding:1rem}.module-modal.is-open{padding:.5rem}.module-modal-dialog{border-radius:16px;max-height:calc(100vh - 1rem);padding:1.15rem}.module-modal-header h2{font-size:1.4rem}.resource-disease-grid{display:grid;grid-template-columns:1fr}}


/* Ajustements ressources */
.resource-hero-actions{justify-content:center;margin-top:1.15rem}.resource-hero-actions .button{min-width:210px}.disease-detail-body{display:grid;gap:1.2rem}.disease-type-line{display:flex;justify-content:flex-start}.disease-type-badge{background:#e8efff;color:#1d4ed8}.disease-introduction{background:linear-gradient(135deg,#f6f9ff 0%,#eef5ff 100%);border:1px solid #d7e5fb;border-radius:18px;color:#334155;line-height:1.75;padding:1.35rem 1.45rem}.disease-section-label{color:#1d4ed8;display:block;font-size:.78rem;font-weight:900;letter-spacing:.055em;margin-bottom:.55rem;text-transform:uppercase}.disease-information-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.disease-information-card{background:#fff;border:1px solid #e2e8f0;border-left:5px solid #64748b;border-radius:16px;color:#475569;line-height:1.7;padding:1.2rem 1.25rem}.disease-information-card h2{color:#10264a;font-size:1.08rem;margin:0 0 .65rem}.disease-card-symptoms{background:#fff8f8;border-left-color:#ef4444}.disease-card-causes{background:#fffaf2;border-left-color:#f59e0b}.disease-card-treatment{background:#f4fbff;border-left-color:#0ea5e9}.disease-card-prevention{background:#f3fcf7;border-left-color:#10b981}.disease-card-prevalence{background:#faf7ff;border-left-color:#8b5cf6}.disease-card-sources{background:#f8fafc;border-left-color:#64748b}.resource-detail-modal .module-modal-dialog-wide{max-width:960px}.resource-detail-modal .resource-detail-header{background:linear-gradient(135deg,#edf4ff,#f8fbff);border:1px solid #d8e6fa;border-radius:16px;margin-bottom:1.25rem;padding:1.15rem 4rem 1.15rem 1.25rem}.resource-detail-modal .resource-detail-header h1{line-height:1.15}
@media(max-width:700px){.resource-hero-actions .button{width:100%}.disease-information-grid{grid-template-columns:1fr}.disease-introduction,.disease-information-card{padding:1rem}.resource-detail-modal .resource-detail-header{padding:1rem 3.3rem 1rem 1rem}}


/* Filtre alphabétique du glossaire */
.resource-alphabet {
    align-items: center;
    background: #fff;
    border: 1px solid #dce5f1;
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .05);
    display: flex;
    flex-wrap: wrap;
    gap: .42rem;
    justify-content: center;
    margin: 0 0 1rem;
    padding: .8rem;
}

.resource-alphabet a {
    align-items: center;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    color: #334155;
    display: inline-flex;
    font-size: .82rem;
    font-weight: 900;
    height: 34px;
    justify-content: center;
    min-width: 34px;
    padding: 0 .58rem;
    text-decoration: none;
    transition:
        background .16s ease,
        border-color .16s ease,
        color .16s ease,
        transform .16s ease;
}

.resource-alphabet a:first-child {
    min-width: 54px;
}

.resource-alphabet a:hover {
    background: #edf4ff;
    border-color: #aecaef;
    color: #1d4ed8;
    transform: translateY(-1px);
}

.resource-alphabet a.active {
    background: #2864ef;
    border-color: #2864ef;
    box-shadow: 0 8px 18px rgba(40, 100, 237, .20);
    color: #fff;
}

@media (max-width: 650px) {
    .resource-alphabet {
        flex-wrap: nowrap;
        justify-content: flex-start;
        margin-left: -1rem;
        margin-right: -1rem;
        overflow-x: auto;
        padding: .75rem 1rem;
        scroll-padding-inline: 1rem;
        scrollbar-width: thin;
    }

    .resource-alphabet a {
        flex: 0 0 auto;
    }
}


/* =========================================================
   Glossaire alphabétique
========================================================= */
.resource-alphabet-desktop {
    display: grid;
    grid-template-columns: 1.25fr repeat(26, minmax(27px, 1fr));
    gap: .25rem;
    padding: .65rem;
    width: 100%;
}

.resource-alphabet-desktop a {
    height: 32px;
    min-width: 0;
    padding: 0 .25rem;
}

.resource-letter-mobile {
    display: none;
}

@media (max-width: 1050px) {
    .resource-alphabet-desktop {
        display: none;
    }

    .resource-letter-mobile {
        display: grid;
        gap: .35rem;
    }

    .resource-letter-mobile span {
        color: #475569;
        font-size: .78rem;
        font-weight: 800;
    }
}

/* =========================================================
   Recherche scientifique
========================================================= */
.search-resource-hero {
    background: linear-gradient(135deg, #eff6ff, #f8fbff);
}

.scientific-search-page {
    background: #f8fafc;
}

.scientific-search-form {
    background: #fff;
    border: 1px solid #dbe4f0;
    border-radius: 22px;
    box-shadow: 0 16px 40px rgba(15, 23, 42, .07);
    margin-bottom: 1.2rem;
    padding: 1.1rem;
}

.scientific-search-main {
    align-items: end;
    display: grid;
    gap: .8rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.scientific-search-main label,
.scientific-search-fields label {
    display: grid;
    gap: .42rem;
}

.scientific-search-main span,
.scientific-search-fields span {
    color: #334155;
    font-size: .82rem;
    font-weight: 850;
}

.scientific-search-main input {
    border: 2px solid #bfd0e7;
    border-radius: 15px;
    font: inherit;
    font-size: 1.05rem;
    min-height: 52px;
    padding: .8rem 1rem;
    width: 100%;
}

.scientific-search-main input:focus,
.scientific-search-fields input:focus,
.scientific-search-fields select:focus {
    border-color: #2864ef;
    box-shadow: 0 0 0 4px rgba(40, 100, 239, .12);
    outline: none;
}

.scientific-search-advanced {
    border-top: 1px solid #e5eaf1;
    margin-top: 1rem;
    padding-top: .8rem;
}

.scientific-search-advanced summary {
    color: #1d4ed8;
    cursor: pointer;
    font-weight: 850;
}

.scientific-search-fields {
    display: grid;
    gap: .8rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 1rem;
}

.scientific-search-fields input,
.scientific-search-fields select {
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    font: inherit;
    min-height: 43px;
    padding: .65rem .75rem;
    width: 100%;
}

.scientific-filter-groups {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr 1fr;
    margin-top: 1rem;
}

.scientific-filter-groups fieldset {
    border: 1px solid #dbe4f0;
    border-radius: 15px;
    display: flex;
    flex-wrap: wrap;
    gap: .65rem 1rem;
    margin: 0;
    padding: .9rem;
}

.scientific-filter-groups legend {
    color: #0f172a;
    font-weight: 850;
    padding: 0 .35rem;
}

.scientific-filter-groups label {
    color: #475569;
    font-size: .86rem;
    font-weight: 650;
}

.scientific-search-toolbar {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin: 1.15rem 0;
}

.scientific-user-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.search-notice {
    border: 1px solid;
    border-radius: 13px;
    margin: .75rem 0;
    padding: .8rem 1rem;
}

.search-notice.success { background: #ecfdf5; border-color: #a7f3d0; color: #047857; }
.search-notice.error { background: #fef2f2; border-color: #fecaca; color: #b91c1c; }
.search-notice.warning { background: #fff7ed; border-color: #fed7aa; color: #9a3412; }

.scientific-results {
    display: grid;
    gap: .75rem;
}

.scientific-result {
    background: #fff;
    border: 1px solid #dbe4f0;
    border-radius: 18px;
    display: grid;
    gap: .9rem;
    grid-template-columns: 38px minmax(0, 1fr);
    padding: 1.05rem;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.scientific-result:hover {
    border-color: #aecaef;
    box-shadow: 0 14px 30px rgba(15, 23, 42, .08);
    transform: translateY(-1px);
}

.scientific-result-rank {
    align-items: center;
    background: #eff6ff;
    border-radius: 11px;
    color: #2563eb;
    display: flex;
    font-size: .82rem;
    font-weight: 900;
    height: 34px;
    justify-content: center;
    width: 34px;
}

.scientific-result-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.scientific-result-meta span {
    background: #f1f5f9;
    border-radius: 999px;
    color: #475569;
    font-size: .72rem;
    font-weight: 750;
    padding: .32rem .55rem;
}

.scientific-result-meta .scientific-source {
    background: #dbeafe;
    color: #1d4ed8;
}

.scientific-result h2 {
    font-size: 1.15rem;
    line-height: 1.35;
    margin: .65rem 0 .45rem;
}

.scientific-result h2 a {
    color: #133d92;
    text-decoration: none;
}

.scientific-result h2 a:hover {
    text-decoration: underline;
}

.scientific-result p {
    color: #475569;
    line-height: 1.6;
    margin: 0;
}

.scientific-result-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: .8rem;
}

.scientific-result-actions a,
.scientific-result-actions button {
    background: none;
    border: 0;
    color: #2563eb;
    cursor: pointer;
    font: inherit;
    font-size: .82rem;
    font-weight: 800;
    padding: 0;
    text-decoration: none;
}

.scientific-open-link {
    color: #0f766e !important;
}

.scientific-search-empty {
    background: #fff;
    border: 1px dashed #b8c7dc;
    border-radius: 22px;
    padding: 3rem 1rem;
    text-align: center;
}

.scientific-empty-icon {
    color: #2563eb;
    font-size: 2.5rem;
}

.scientific-search-empty h2 {
    color: #0f172a;
    margin: .5rem 0;
}

.scientific-search-empty p {
    color: #64748b;
    line-height: 1.65;
    margin: 0 auto;
    max-width: 700px;
}

/* Panneaux utilisateur */
body.search-panel-open { overflow: hidden; }

.search-side-panel {
    display: none;
    inset: 0;
    position: fixed;
    z-index: 2147483000;
}

.search-side-panel.is-open { display: block; }

.search-panel-backdrop {
    background: rgba(15, 23, 42, .48);
    border: 0;
    inset: 0;
    position: absolute;
    width: 100%;
}

.search-panel-dialog {
    background: #fff;
    box-shadow: -24px 0 70px rgba(15, 23, 42, .22);
    height: 100%;
    max-width: 520px;
    overflow-y: auto;
    position: absolute;
    right: 0;
    top: 0;
    width: min(92vw, 520px);
}

.search-panel-dialog > header {
    align-items: center;
    border-bottom: 1px solid #e2e8f0;
    display: flex;
    justify-content: space-between;
    padding: 1rem 1.2rem;
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 2;
}

.search-panel-dialog > header h2 { margin: 0; }
.search-panel-dialog > header button {
    background: #f1f5f9;
    border: 0;
    border-radius: 11px;
    cursor: pointer;
    font-size: 1.4rem;
    height: 38px;
    width: 38px;
}

.search-panel-content { padding: 1rem; }

.search-saved-item,
.search-policy-row {
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    margin-bottom: .7rem;
    padding: .85rem;
}

.search-saved-item span {
    color: #64748b;
    font-size: .72rem;
}

.search-saved-item h3 {
    font-size: .98rem;
    margin: .35rem 0 .65rem;
}

.search-saved-item h3 a { color: #1d4ed8; text-decoration: none; }

.search-saved-item button,
.search-policy-row button,
.search-history-setting button,
.search-policy-form button {
    background: #eef4ff;
    border: 1px solid #bfdbfe;
    border-radius: 9px;
    color: #1d4ed8;
    cursor: pointer;
    font-weight: 800;
    padding: .45rem .7rem;
}

.search-danger-button {
    background: #fff1f2 !important;
    border-color: #fecdd3 !important;
    color: #be123c !important;
    margin-bottom: .8rem;
}

.search-history-setting,
.search-policy-form {
    display: grid;
    gap: .65rem;
    margin-bottom: 1rem;
}

.search-policy-form input,
.search-policy-form select {
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    font: inherit;
    padding: .65rem;
}

.search-policy-help {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 12px;
    color: #334155;
    font-size: .86rem;
    line-height: 1.55;
    padding: .8rem;
}

.search-policy-row {
    display: grid;
    gap: .5rem;
}

.search-policy-row > span {
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 900;
    padding: .3rem .55rem;
    width: fit-content;
}

.search-policy-row > span.allow { background: #dcfce7; color: #166534; }
.search-policy-row > span.block { background: #fee2e2; color: #991b1b; }

@media (max-width: 850px) {
    .scientific-search-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .scientific-filter-groups { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
    .scientific-search-main { grid-template-columns: 1fr; }
    .scientific-search-main .button { width: 100%; }
    .scientific-search-fields { grid-template-columns: 1fr; }
    .scientific-search-toolbar { align-items: stretch; flex-direction: column; }
    .scientific-user-actions { display: grid; grid-template-columns: repeat(3, 1fr); }
    .scientific-user-actions .button { padding-inline: .5rem; }
    .scientific-result { grid-template-columns: 1fr; }
    .scientific-result-rank { display: none; }
}


.scientific-result:has(.scientific-result-thumb) {
    grid-template-columns: 38px 130px minmax(0, 1fr);
}

.scientific-result-thumb {
    align-self: start;
    background: #eef3f8;
    border-radius: 13px;
    display: block;
    overflow: hidden;
}

.scientific-result-thumb img {
    aspect-ratio: 4 / 3;
    display: block;
    object-fit: cover;
    width: 100%;
}

.search-history-period {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    display: grid;
    gap: .6rem;
    grid-template-columns: 1fr 1fr;
    margin-bottom: .8rem;
    padding: .8rem;
}

.search-history-period button {
    grid-column: 1 / -1;
}

.search-history-select-actions {
    display: flex;
    gap: .55rem;
    margin-bottom: .8rem;
}

.search-history-checkbox {
    align-items: center;
    display: flex;
    gap: .4rem;
    margin-bottom: .45rem;
}

.search-history-checkbox span {
    color: #475569;
    font-size: .75rem;
    font-weight: 750;
}

.search-history-subtitle {
    border-top: 1px solid #e2e8f0;
    margin: 1.2rem 0 .8rem;
    padding-top: 1rem;
}

@media (max-width: 720px) {
    .scientific-result:has(.scientific-result-thumb) {
        grid-template-columns: 1fr;
    }

    .scientific-result-thumb {
        max-width: 220px;
    }

    .search-history-period {
        grid-template-columns: 1fr;
    }

    .search-history-period button {
        grid-column: auto;
    }
}


/* Onglets de résultats */
.scientific-result-tabs {
    align-items: center;
    background: #fff;
    border: 1px solid #dbe4f0;
    border-radius: 16px;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .055);
    display: flex;
    gap: .35rem;
    margin: 0 0 1rem;
    padding: .38rem;
    width: fit-content;
}

.scientific-result-tabs button {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 12px;
    color: #526176;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-size: .88rem;
    font-weight: 850;
    gap: .45rem;
    min-height: 40px;
    padding: .55rem .9rem;
}

.scientific-result-tabs button span {
    align-items: center;
    background: #e9eef5;
    border-radius: 999px;
    color: #475569;
    display: inline-flex;
    font-size: .7rem;
    justify-content: center;
    min-width: 23px;
    padding: .2rem .4rem;
}

.scientific-result-tabs button.active {
    background: linear-gradient(135deg, #2e6ff2, #1d4ed8);
    box-shadow: 0 9px 20px rgba(37, 99, 235, .22);
    color: #fff;
}

.scientific-result-tabs button.active span {
    background: rgba(255, 255, 255, .18);
    color: #fff;
}

.scientific-result[hidden] {
    display: none !important;
}

.scientific-tab-empty {
    background: #fff;
    border: 1px dashed #b8c7dc;
    border-radius: 18px;
    color: #64748b;
    padding: 2rem;
    text-align: center;
}

.scientific-result-thumb {
    position: relative;
}

.scientific-video-play {
    align-items: center;
    background: rgba(15, 23, 42, .84);
    border: 2px solid rgba(255, 255, 255, .88);
    border-radius: 999px;
    color: #fff;
    display: flex;
    font-size: 1rem;
    height: 44px;
    justify-content: center;
    left: 50%;
    padding-left: 3px;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 44px;
}

/* Historique : panneau organisé et lisible */
#search-panel-history .search-panel-dialog {
    background:
        radial-gradient(400px 180px at 100% 0%, rgba(37, 99, 235, .10), transparent 72%),
        #f8fafc;
}

#search-panel-history .search-panel-dialog > header {
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 7px 20px rgba(15, 23, 42, .05);
}

#search-panel-history .search-panel-content {
    padding: 1.15rem;
}

.search-history-setting {
    align-items: center;
    background: linear-gradient(135deg, #eff6ff, #fff);
    border: 1px solid #bfdbfe;
    border-radius: 16px;
    box-shadow: 0 10px 24px rgba(37, 99, 235, .07);
    display: grid;
    gap: .8rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: .9rem;
}

.search-history-setting label {
    align-items: center;
    color: #1e3a8a;
    display: flex;
    font-size: .88rem;
    font-weight: 850;
    gap: .65rem;
}

.search-history-setting input[type="checkbox"] {
    accent-color: #2563eb;
    height: 19px;
    width: 19px;
}

.search-history-period {
    background: #fff;
    border-color: #dbe4f0;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .045);
}

.search-history-period label {
    color: #475569;
    display: grid;
    font-size: .78rem;
    font-weight: 800;
    gap: .35rem;
}

.search-history-period input {
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    font: inherit;
    padding: .55rem .65rem;
}

.search-history-select-actions {
    background: #fff;
    border: 1px solid #dbe4f0;
    border-radius: 13px;
    padding: .55rem;
}

.search-history-select-actions button {
    flex: 1;
}

.search-history-item {
    background: #fff;
    border-color: #dce5f1;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .045);
    padding: .95rem;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.search-history-item:hover {
    border-color: #aecaef;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .075);
    transform: translateY(-1px);
}

.search-history-checkbox {
    background: #f1f5f9;
    border-radius: 999px;
    padding: .35rem .55rem;
    width: fit-content;
}

.search-history-checkbox input {
    accent-color: #2563eb;
}

.search-history-item > span:not(.search-history-checkbox span) {
    display: block;
    margin-top: .55rem;
}

.search-history-item h3 {
    font-size: 1rem;
    line-height: 1.4;
    margin-bottom: 0;
}

.search-history-subtitle {
    align-items: center;
    color: #0f172a;
    display: flex;
    font-size: 1rem;
    gap: .5rem;
}

.search-history-subtitle::before {
    background: #2563eb;
    border-radius: 999px;
    content: "";
    height: 9px;
    width: 9px;
}

#search-panel-history .search-danger-button {
    border-radius: 11px;
    font-weight: 850;
    min-height: 42px;
    width: 100%;
}

@media (max-width: 620px) {
    .scientific-result-tabs {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        width: 100%;
    }

    .scientific-result-tabs button {
        justify-content: center;
        padding-inline: .45rem;
    }

    .search-history-setting {
        grid-template-columns: 1fr;
    }

    .search-history-setting button {
        width: 100%;
    }
}


/* Boutons d'historique : règles explicites pour éviter les resets globaux */
.search-panel-content .search-history-button {
    align-items: center !important;
    appearance: none !important;
    border: 1px solid transparent !important;
    border-radius: 11px !important;
    box-shadow: none !important;
    cursor: pointer !important;
    display: inline-flex !important;
    font-family: inherit !important;
    font-size: .82rem !important;
    font-weight: 900 !important;
    justify-content: center !important;
    line-height: 1.1 !important;
    min-height: 42px !important;
    padding: .7rem .9rem !important;
    text-decoration: none !important;
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        background .16s ease !important;
}

.search-panel-content .search-history-button:hover {
    transform: translateY(-1px) !important;
}

.search-panel-content .search-history-button-period {
    background: linear-gradient(135deg, #2563eb, #1d4ed8) !important;
    border-color: #1d4ed8 !important;
    box-shadow: 0 10px 22px rgba(37, 99, 235, .20) !important;
    color: #fff !important;
    grid-column: 1 / -1 !important;
    width: 100% !important;
}

.search-panel-content .search-history-button-period:hover {
    box-shadow: 0 14px 28px rgba(37, 99, 235, .27) !important;
}

.search-panel-content .search-history-button-secondary {
    background: #eff6ff !important;
    border-color: #bfdbfe !important;
    color: #1d4ed8 !important;
}

.search-panel-content .search-history-button-secondary:hover {
    background: #dbeafe !important;
}

.search-panel-content .search-history-button-danger {
    background: #fff1f2 !important;
    border-color: #fecdd3 !important;
    color: #be123c !important;
}

.search-panel-content .search-history-button-danger:hover {
    background: #ffe4e6 !important;
    box-shadow: 0 10px 22px rgba(190, 18, 60, .10) !important;
}

/* Les aperçus scientifiques ne doivent jamais être masqués par un reset d'image */
.scientific-result-thumb {
    min-height: 96px;
}

.scientific-result-thumb img {
    background: #fff;
    min-height: 96px;
}

@media (max-width: 520px) {
    .search-history-select-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }

    .search-panel-content .search-history-button {
        width: 100% !important;
    }
}


.tool-placeholder-card{padding:20px}.tool-placeholder-logo{min-height:230px}}


/* Ressources — Outils SVsansT */
.resource-tools-intro {
    margin-bottom: 28px;
    max-width: 760px;
}

.resource-tools-intro > span {
    color: #2864ed;
    font-size: .72rem;
    font-weight: 950;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.resource-tools-intro h2 {
    font-size: clamp(1.8rem, 3vw, 3rem);
    letter-spacing: -.04em;
    line-height: 1.12;
    margin: 7px 0 12px;
}

.resource-tools-intro p {
    color: #64748b;
    line-height: 1.7;
    margin: 0;
}

.resource-tools-grid {
    align-items: stretch;
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.resource-tool-card {
    background: #fff;
    border: 1px solid #dbe5f2;
    border-radius: 22px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .07);
    min-height: 430px;
    overflow: hidden;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.resource-tool-card:hover {
    border-color: #9dbdfc;
    box-shadow: 0 18px 42px rgba(40, 100, 237, .13);
    transform: translateY(-3px);
}

.resource-tool-main-link {
    color: inherit;
    display: grid;
    grid-template-rows: 190px minmax(0, 1fr);
    height: 100%;
    text-decoration: none;
}

.resource-tool-logo {
    align-items: center;
    background: #f7f9fc;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    display: flex;
    justify-content: center;
    margin: 18px 18px 0;
    overflow: hidden;
    padding: 18px;
}

.resource-tool-logo img {
    display: block;
    height: 100%;
    max-height: 145px;
    max-width: 100%;
    object-fit: contain;
    width: 100%;
}

.resource-tool-logo-empty {
    color: #2864ed;
    flex-direction: column;
    gap: 8px;
}

.resource-tool-logo-empty span {
    font-size: 3.5rem;
    line-height: 1;
}

.resource-tool-logo-empty small {
    color: #64748b;
    font-weight: 850;
}

.resource-tool-content {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) 46px;
    padding: 20px 22px 22px;
    row-gap: 10px;
}

.resource-tool-content h2 {
    color: #0f172a;
    font-size: 1.55rem;
    line-height: 1.25;
    margin: 0;
}

.resource-tool-content p {
    color: #64748b;
    display: -webkit-box;
    font-size: .98rem;
    line-height: 1.6;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

.resource-tool-button {
    align-items: center;
    align-self: end;
    background: #2864ed;
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-weight: 950;
    justify-content: center;
    justify-self: center;
    min-height: 46px;
    padding: 10px 20px;
    text-align: center;
    width: auto;
}

@media (max-width: 980px) {
    .resource-tools-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .resource-tools-grid {
        grid-template-columns: 1fr;
    }

    .resource-tool-card {
        min-height: 410px;
    }

    .resource-tool-main-link {
        grid-template-rows: 175px minmax(0, 1fr);
    }
}


/* V4.5 — Alignements Ressources externes / Outils */
.external-resource-card .external-logo {
    display: block;
    margin: 0 auto .8rem;
}
.external-resource-card > h2 {
    text-align: center;
}
.resource-tool-content h2 {
    text-align: center;
}
