/* Annonces — styles autonomes, à partir des couleurs du thème ISEIG (bleu #1a56c4, rouge #d42a21). */
.an-page { max-width: 960px; margin: 0 auto; padding: 2rem 1.2rem 3rem; color: #16202c; }
.an-head h1, .an-form-wrap h1, .an-detail h1, .an-mine-head h1 { font-size: 1.7rem; margin: 0 0 .5rem; color: #1a2340; }
.an-head p { color: #4a5868; margin: 0 0 1rem; }
.an-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.an-tabs { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1.4rem; border-bottom: 1px solid #dfe5ec; }
.an-tabs a { padding: .55rem .9rem; color: #1a56c4; text-decoration: none; font-weight: 600; border-bottom: 3px solid transparent; }
.an-tabs a[aria-current="page"] { border-bottom-color: #d42a21; color: #1a2340; }

.an-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1.4rem; }
.an-filters input, .an-filters select { flex: 1 1 200px; }
.an-filters input, .an-filters select, .an-form input, .an-form select, .an-form textarea, .an-report select, .an-report textarea {
    padding: .6rem .7rem; font: inherit; border: 1px solid #c9d3de; border-radius: 7px; background: #fff; width: 100%; box-sizing: border-box;
}
.an-filters input, .an-filters select { width: auto; }

.an-btn { display: inline-block; padding: .6rem 1.1rem; font: inherit; font-weight: 600; color: #fff; background: #1a56c4; border: 1px solid #1a56c4; border-radius: 7px; text-decoration: none; cursor: pointer; }
.an-btn:hover { background: #154aa9; }
.an-btn--ghost { background: transparent; color: #1a56c4; }
.an-btn--ghost:hover { background: #eef3fc; }
.an-btn:focus-visible, .an-tabs a:focus-visible { outline: 2px solid #1a2340; outline-offset: 2px; }

.an-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.an-card { background: #fff; border: 1px solid #dfe5ec; border-radius: 10px; padding: 1rem 1.2rem; }
.an-card h2 { font-size: 1.15rem; margin: .3rem 0 .4rem; }
.an-card h2 a { color: #1a2340; }
.an-card p { margin: 0 0 .4rem; }
.an-meta { color: #5b6b7c; font-size: .88rem; }
.an-tag, .an-status { display: inline-block; padding: .1rem .55rem; border-radius: 999px; font-size: .78rem; font-weight: 700; background: #e8f0fe; color: #1a56c4; }
.an-tag--emploi { background: #e7f6ec; color: #1e7a3c; }
.an-tag--stage  { background: #fff4e0; color: #9a5b00; }
.an-tag--bourse { background: #f3e8fd; color: #6b2fa3; }
.an-status--published { background: #e7f6ec; color: #1e7a3c; }
.an-status--pending   { background: #fff4e0; color: #9a5b00; }
.an-status--disabled, .an-status--closed, .an-status--expired { background: #eef0f3; color: #4a5868; }

.an-detail { background: #fff; border: 1px solid #dfe5ec; border-radius: 12px; padding: 1.5rem; }
.an-org { font-weight: 600; color: #4a5868; }
.an-body { line-height: 1.7; margin: 1rem 0 1.5rem; overflow-wrap: anywhere; }
.an-contact { background: #f6f8fb; border-radius: 10px; padding: 1rem 1.2rem; }
.an-contact h2 { font-size: 1.05rem; margin: 0 0 .6rem; }
.an-contact ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.an-report { margin-top: 1.5rem; }
.an-report summary { cursor: pointer; color: #d42a21; font-weight: 600; }
.an-report form { display: grid; gap: .5rem; max-width: 520px; margin-top: .8rem; }
.an-disclaimer { font-size: .85rem; color: #5b6b7c; margin-top: 1.5rem; }

.an-form-wrap { max-width: 720px; }
.an-form { display: grid; gap: 1rem; }
.an-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.an-field label, .an-fieldset legend { display: block; font-weight: 600; font-size: .92rem; margin: 0 0 .3rem; }
.an-field small { display: block; color: #5b6b7c; font-size: .82rem; margin-top: .25rem; }
.an-fieldset { border: 1px solid #dfe5ec; border-radius: 10px; padding: .8rem 1rem 1rem; display: grid; gap: .8rem; }
.an-invalid input, .an-invalid select, .an-invalid textarea, .an-fieldset.an-invalid { border-color: #d42a21; }

.an-alert { padding: .7rem 1rem; border-radius: 8px; margin: 0 0 1rem; }
.an-alert ul { margin: 0; padding-left: 1.1rem; }
.an-alert--error { background: #fdecea; color: #8a1c13; }
.an-alert--ok { background: #e7f6ec; color: #1e5c33; }
.an-empty { text-align: center; padding: 2.5rem 1rem; color: #4a5868; }
.an-pages { display: flex; gap: 1rem; justify-content: center; margin-top: 1.5rem; }
.an-mine-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.an-mine-head form { display: flex; gap: .7rem; align-items: center; }
.an-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; }
.an-actions form { margin: 0; }
