/* ============================================================
   Module Bourses — compléments au style du back-office (backoffice.css)
   ============================================================ */
.brs-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; }
.brs-card { background: #fff; border: 1px solid var(--neutral-200); border-radius: var(--radius-lg); padding: 1.1rem; display: flex; flex-direction: column; gap: .7rem; box-shadow: var(--shadow-sm); min-width: 0; }
.brs-card.open { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-light); }
.brs-card-top { display: flex; gap: .8rem; align-items: flex-start; }
.brs-card-top h3 { font-family: var(--font-head); font-size: 1rem; color: var(--neutral-900); line-height: 1.3; }
.brs-org { font-size: .8rem; color: var(--neutral-600); }
.brs-score { flex: none; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: .9rem; background: conic-gradient(var(--c) calc(var(--p) * 1%), var(--neutral-100) 0); }
.brs-score span { width: 44px; height: 44px; border-radius: 50%; background: #fff; display: grid; place-items: center; }
.brs-meta { display: flex; flex-wrap: wrap; gap: .35rem; }
.brs-crit { list-style: none; display: grid; gap: .4rem; font-size: .85rem; }
.brs-crit li { display: grid; grid-template-columns: 22px 1fr; gap: .4rem; }
.brs-crit small { display: block; color: var(--neutral-600); }
.brs-ic { font-weight: 700; text-align: center; border-radius: 5px; height: 22px; line-height: 22px; font-size: .8rem; }
.brs-ic.ok { background: var(--success-light); color: var(--success); }
.brs-ic.part { background: var(--warning-light); color: var(--warning); }
.brs-ic.ko { background: var(--danger-light); color: var(--danger); }
.brs-src { font-size: .78rem; color: var(--neutral-600); border-top: 1px dashed var(--neutral-200); padding-top: .5rem; display: flex; flex-wrap: wrap; gap: .3rem .8rem; }
.brs-src a { color: var(--primary); font-weight: 600; }
.brs-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: auto; }
.btn-sm { padding: .45rem .8rem !important; font-size: .8rem !important; }
.brs-next { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; background: var(--primary); color: #fff; border-radius: var(--radius-lg); padding: 1rem 1.25rem; margin-bottom: 1.25rem; }
.brs-next .lbl { font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; opacity: .8; font-weight: 700; }
.brs-next .txt { font-weight: 700; font-size: 1rem; }
.brs-next a { background: var(--accent); color: #1b1206; padding: .55rem 1rem; border-radius: var(--radius-md); font-weight: 700; font-size: .85rem; }
.brs-section-title { font-family: var(--font-head); font-size: 1.05rem; color: var(--neutral-900); margin: 1.5rem 0 .75rem; }
.brs-pipe { display: flex; gap: .3rem; overflow-x: auto; padding-bottom: .25rem; }
.brs-pipe span, .brs-pipe button { flex: 1; min-width: 92px; text-align: center; border: 1px solid var(--neutral-200); background: var(--neutral-50); color: var(--neutral-600); font-size: .72rem; font-weight: 700; padding: .45rem .3rem; border-radius: 6px; }
.brs-pipe button { cursor: pointer; font-family: var(--font-body); }
.brs-pipe .done { background: var(--primary-light); color: var(--primary); border-color: transparent; }
.brs-pipe .cur { background: var(--primary); color: #fff; border-color: var(--primary); }
.brs-pipe .cur.refus { background: var(--danger); border-color: var(--danger); }
.brs-pipe .cur.admis { background: var(--success); border-color: var(--success); }
.brs-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.25rem; }
.brs-h4 { font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; color: var(--neutral-600); font-weight: 700; margin-bottom: .5rem; }
.brs-doc { display: grid; grid-template-columns: 1fr auto; gap: .25rem .75rem; align-items: center; padding: .55rem 0; border-bottom: 1px solid var(--neutral-100); }
.brs-doc:last-child { border-bottom: 0; }
.brs-doc .n { font-weight: 600; font-size: .86rem; }
.brs-doc .s { grid-column: 1 / -1; font-size: .76rem; color: var(--neutral-600); }
.brs-doc form { display: inline-flex; gap: .35rem; align-items: center; flex-wrap: wrap; }
.brs-file { position: relative; overflow: hidden; }
.brs-file input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.brs-bar { height: 8px; background: var(--neutral-100); border-radius: 99px; overflow: hidden; margin-bottom: .5rem; }
.brs-bar i { display: block; height: 100%; background: var(--success); }
.brs-panel { background: #fff; border: 1px solid var(--neutral-200); border-radius: var(--radius-lg); padding: 1.25rem; box-shadow: var(--shadow-sm); margin-bottom: 1rem; display: grid; gap: 1rem; }
.brs-panel-head { display: flex; justify-content: space-between; gap: .75rem; flex-wrap: wrap; align-items: flex-start; }
.brs-panel-head h3 { font-family: var(--font-head); font-size: 1.02rem; }
.brs-tabs { display: flex; gap: .25rem; border-bottom: 1px solid var(--neutral-200); margin-bottom: 1.25rem; overflow-x: auto; }
.brs-tabs a { padding: .7rem 1rem; font-weight: 600; color: var(--neutral-600); border-bottom: 3px solid transparent; white-space: nowrap; }
.brs-tabs a.active { color: var(--neutral-900); border-color: var(--accent); }
.brs-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.brs-filters input, .brs-filters select { padding: .55rem .75rem; border: 1px solid var(--neutral-200); border-radius: var(--radius-md); font-size: .88rem; background: #fff; flex: 1; min-width: 150px; }
.brs-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.brs-chip { display: inline-flex; align-items: center; gap: .4rem; border: 1px solid var(--neutral-200); border-radius: 999px; padding: .35rem .75rem; font-size: .85rem; cursor: pointer; background: #fff; }
.brs-chip:has(input:checked) { border-color: var(--primary); background: var(--primary-light); color: var(--primary); font-weight: 600; }
.brs-empty { text-align: center; color: var(--neutral-600); padding: 2rem 1rem; }
.brs-muted { color: var(--neutral-600); font-size: .85rem; }
