/**
 * Academic Suite — com_hal
 * @copyright (C) 2026 Institut Lumière Matière (ILM)
 * @license   MIT License
 */

#com-hal-root {
    --hal-primary:       #693290;
    --hal-primary-dark:  #462261;
    --hal-primary-light: #f5ebf7;
    --hal-border:        #e8e0ed;
    --hal-meta:          #6b5c7a;
    --hal-text:          #111;

    font-family: inherit;
    font-size: 16px;
    line-height: 1.55;

    /* Clear le float de la .col-md-12 (Bootstrap 3) du mod_ilmmenu qui
       précède notre contenu — sinon le titre se met à côté du menu. */
    clear: both;
    display: block;
    width: 100%;
}

/* Force aussi clear sur les enfants directs au cas où d'autres modules float */
#com-hal-root::before {
    content: "";
    display: table;
    clear: both;
}

/* ── Header ────────────────────────────────────────────────────────────── */
.com-hal-header {
    margin-bottom: 1.5rem;
    padding-bottom: .8rem;
    border-bottom: 3px solid #693290;
    clear: both; /* clear float du mod_ilmmenu (col-md-12 Bootstrap 3) */
}

.com-hal-title {
    font-size: 1.75rem !important;
    font-weight: 800 !important;
    color: #462261 !important;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.2 !important;
    display: flex;
    align-items: baseline;
    gap: .75rem;
    flex-wrap: wrap;
}

.com-hal-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #693290;
    color: #fff !important;
    font-size: 1.1rem;
    font-weight: 700;
    padding: .15em .55em;
    border-radius: 999px;
    min-width: 2em;
    line-height: 1.1;
}

.com-hal-fullname {
    font-size: 1rem;
    color: #6b5c7a;
    font-style: italic;
    margin-top: .4rem;
}

.com-hal-subtitle {
    font-size: .875rem;
    color: #6b5c7a;
    margin-top: .4rem;
}

/* ── Notices ───────────────────────────────────────────────────────────── */
.com-hal-notice {
    display: flex;
    gap: 1rem;
    background: #fff;
    border: 2px solid #e8e0ed;
    border-left: 5px solid #f59e0b;
    border-radius: 6px;
    padding: 1.5rem;
    margin: 1.5rem 0;
}

.com-hal-icon {
    font-size: 2rem;
    line-height: 1;
    flex-shrink: 0;
}

.com-hal-notice p {
    margin: 0 0 .5rem !important;
    line-height: 1.55;
}

.com-hal-empty {
    text-align: center;
    padding: 3rem;
    color: #6b5c7a;
    border: 1px dashed #d4bce8;
    border-radius: 6px;
    margin: 2rem 0;
}

/* ── Formulaire de recherche ──────────────────────────────────────────── */
.com-hal-search {
    background: #faf6fc;
    border: 1px solid #e8dff0;
    border-radius: 8px;
    padding: 1rem 1.25rem;
    margin: 1.5rem 0;
}

.com-hal-search-row {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    align-items: flex-end;
}

.com-hal-field {
    display: flex;
    flex-direction: column;
    flex: 1 1 160px;
    min-width: 140px;
}

.com-hal-field--sort {
    flex: 0 1 200px;
}

.com-hal-field label {
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #462261;
    margin-bottom: .25rem;
}

.com-hal-input {
    padding: .5em .7em;
    border: 1px solid #d4bce8 !important;
    border-radius: 4px;
    background: #fff !important;
    color: #111 !important;
    font-size: .95rem !important;
    font-family: inherit;
    line-height: 1.4;
    width: 100%;
    transition: border-color 120ms ease, box-shadow 120ms ease;
}

.com-hal-input:focus {
    outline: none;
    border-color: #693290 !important;
    box-shadow: 0 0 0 3px rgba(105, 50, 144, .15);
}

.com-hal-search-actions {
    display: flex;
    gap: .6rem;
    margin-top: 1rem;
    flex-wrap: wrap;
    justify-content: flex-end; /* boutons Rechercher / Réinitialiser à droite */
}

.com-hal-btn {
    display: inline-flex;
    align-items: center;
    gap: .35em;
    padding: .55em 1.2em;
    font-size: .9rem !important;
    font-weight: 700 !important;
    border-radius: 4px;
    border: 1px solid transparent !important;
    cursor: pointer;
    text-decoration: none !important;
    line-height: 1.2;
    transition: background 120ms ease, color 120ms ease;
}

.com-hal-btn-primary {
    background: #693290 !important;
    color: #fff !important;
    border-color: #693290 !important;
}

.com-hal-btn-primary:hover {
    background: #462261 !important;
    border-color: #462261 !important;
    color: #fff !important;
}

.com-hal-btn-reset {
    background: #fff !important;
    color: #693290 !important;
    border-color: #d4bce8 !important;
}

.com-hal-btn-reset:hover {
    background: #f5ebf7 !important;
    color: #462261 !important;
    border-color: #693290 !important;
}

/* ── Chips de filtres actifs ──────────────────────────────────────────── */
.com-hal-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
    margin: 1rem 0 1.25rem;
    padding: .6rem .75rem;
    background: #fff;
    border-radius: 6px;
    border: 1px dashed #d4bce8;
}

.com-hal-chips-label {
    font-size: .8rem;
    font-weight: 600;
    color: #6b5c7a;
    margin-right: .25rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.com-hal-chip {
    display: inline-flex;
    align-items: center;
    gap: .35em;
    padding: .2em .65em;
    background: #f5ebf7 !important;
    color: #462261 !important;
    font-size: .85rem !important;
    font-weight: 600;
    border-radius: 999px;
    border: 1px solid #d4bce8 !important;
    text-decoration: none !important;
    transition: background 120ms ease, color 120ms ease, border-color 120ms ease;
}

.com-hal-chip:hover {
    background: #693290 !important;
    color: #fff !important;
    border-color: #693290 !important;
}

.com-hal-chip-x {
    font-size: .9em;
    line-height: 1;
    opacity: .7;
}

.com-hal-chip:hover .com-hal-chip-x {
    opacity: 1;
}

/* ── Pagination ────────────────────────────────────────────────────────── */
.com-hal-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
    margin: 1.25rem 0;
    padding: .5rem 0;
}

.com-hal-page-link {
    display: inline-block;
    padding: .35em .7em;
    border: 1px solid #d4bce8 !important;
    border-radius: 4px;
    color: #693290 !important;
    text-decoration: none !important;
    font-size: .9rem;
    font-weight: 600;
    background: #fff !important;
    transition: background 120ms ease, color 120ms ease;
}

.com-hal-page-link:hover {
    background: #693290 !important;
    color: #fff !important;
    border-color: #693290 !important;
}

.com-hal-page-active {
    background: #462261 !important;
    color: #fff !important;
    border-color: #462261 !important;
    cursor: default;
}

.com-hal-page-summary {
    margin-left: auto;
    font-size: .85rem;
    color: #6b5c7a;
}

/* ── Saut direct vers une page ─────────────────────────────────────────── */
.com-hal-page-jump {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-left: .75rem;
}
.com-hal-page-jump-label {
    font-size: .85rem;
    color: #6b5c7a;
}
.com-hal-page-jump-input {
    width: 4.5rem;
    padding: .3em .5em;
    border: 1px solid #d4bce8;
    border-radius: 4px;
    font-size: .9rem;
    color: #462261;
    text-align: center;
}
.com-hal-page-jump-input:focus {
    outline: none;
    border-color: #693290;
    box-shadow: 0 0 0 2px rgba(105, 50, 144, .15);
}
.com-hal-page-jump-btn {
    padding: .35em .8em;
    border: 1px solid #693290;
    border-radius: 4px;
    background: #693290;
    color: #fff;
    font-size: .85rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 120ms ease;
}
.com-hal-page-jump-btn:hover {
    background: #462261;
    border-color: #462261;
}

/* ── Liste des publications ────────────────────────────────────────────── */
.com-hal-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.com-hal-pub {
    background: #fff;
    border: 1px solid #e8dff0;
    border-left: 4px solid #693290;
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
    transition: box-shadow 120ms ease;
}

.com-hal-pub:hover {
    box-shadow: 0 2px 8px rgba(105, 50, 144, .12);
}

.com-hal-pub-title {
    font-size: 1.2rem !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    margin-bottom: .5rem;
}

.com-hal-pub-title a {
    color: #111 !important;
    text-decoration: none !important;
}

.com-hal-pub-title a:hover {
    color: #693290 !important;
    text-decoration: underline !important;
}

.com-hal-pub-authors {
    font-size: 1rem;
    color: #2d1f3a;
    margin-bottom: .35rem;
    line-height: 1.5;
}

.com-hal-author {
    color: inherit;
}

.com-hal-author--ilm {
    color: #693290 !important;
    text-decoration: none !important;
    font-weight: 600;
    border-bottom: 1px dotted #c0a3d6;
    transition: color 120ms ease, border-color 120ms ease;
}

.com-hal-author--ilm:hover {
    color: #462261 !important;
    border-bottom-color: #693290;
    text-decoration: none !important;
}

.com-hal-pub-ref {
    font-size: .925rem;
    color: #6b5c7a;
    margin-bottom: .55rem;
}

.com-hal-pub-actions {
    display: flex;
    gap: .35rem;
    flex-wrap: wrap;
}

.com-hal-link {
    display: inline-block;
    padding: .2em .65em;
    font-size: .75rem;
    font-weight: 700;
    text-decoration: none !important;
    border-radius: 3px;
    letter-spacing: .03em;
    border: 1px solid transparent !important;
}

.com-hal-link-hal { background: #f5ebf7 !important; color: #462261 !important; border-color: #d4bce8 !important; }
.com-hal-link-doi { background: #fff !important; color: #693290 !important; border-color: #d4bce8 !important; }
.com-hal-link-bib { background: #fff !important; color: #6b5c7a !important; border-color: #d4bce8 !important; }

.com-hal-link:hover {
    background: #693290 !important;
    color: #fff !important;
    border-color: #693290 !important;
}

/* ── Responsive ────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
    .com-hal-title { font-size: 1.25rem !important; }
    .com-hal-count { font-size: .9rem; }
    .com-hal-pub-title { font-size: 1rem !important; }
    .com-hal-page-summary { display: none; }
    .com-hal-field { flex: 1 1 100%; }
    .com-hal-search-actions { flex-direction: column; }
    .com-hal-btn { width: 100%; justify-content: center; }
}
