/* F4MPL RBN Activity — styles. Les variables --rbn-* peuvent être surchargées dans le thème. */

.f4mpl-rbn,
.f4mpl-rbn-all {
	--rbn-on: #1a7f37;
	--rbn-off: #8a8f98;
	--rbn-border: rgba(127, 127, 127, .28);
	--rbn-soft: rgba(127, 127, 127, .08);
	--rbn-muted: rgba(127, 127, 127, 1);
	--rbn-radius: 10px;
	font-variant-numeric: tabular-nums;
}

.f4mpl-rbn-all > * + * { margin-top: 1.5em; }

.f4mpl-rbn-loading,
.rbn-empty { color: var(--rbn-muted); font-style: italic; margin: 0; }

/* Badge */
.rbn-badge {
	display: flex;
	gap: .8em;
	align-items: flex-start;
	padding: .9em 1.1em;
	border: 1px solid var(--rbn-border);
	border-left: 4px solid var(--rbn-off);
	border-radius: var(--rbn-radius);
	background: var(--rbn-soft);
	line-height: 1.4;
}
.rbn-badge.is-on { border-left-color: var(--rbn-on); }
.rbn-dot {
	flex: 0 0 auto;
	width: .8em;
	height: .8em;
	margin-top: .35em;
	border-radius: 50%;
	background: var(--rbn-off);
}
.rbn-badge.is-on .rbn-dot {
	background: var(--rbn-on);
	box-shadow: 0 0 0 0 rgba(26, 127, 55, .6);
	animation: rbn-pulse 1.8s infinite;
}
@keyframes rbn-pulse {
	70% { box-shadow: 0 0 0 .6em rgba(26, 127, 55, 0); }
	100% { box-shadow: 0 0 0 0 rgba(26, 127, 55, 0); }
}
@media (prefers-reduced-motion: reduce) {
	.rbn-badge.is-on .rbn-dot { animation: none; }
}
.rbn-badge-title { font-weight: 700; letter-spacing: .06em; font-size: .85em; }
.rbn-badge.is-on .rbn-badge-title { color: var(--rbn-on); }
.rbn-badge-freq { font-size: 1.25em; margin: .1em 0 .25em; }
.rbn-badge-meta { display: flex; flex-wrap: wrap; gap: .35em .9em; font-size: .9em; }
.rbn-badge-since { font-size: .82em; color: var(--rbn-muted); margin-top: .3em; }

/* Badge cliquable */
.rbn-badge-link,
.rbn-badge-link:hover,
.rbn-badge-link:visited {
	display: block;
	color: inherit;
	text-decoration: none;
	border-radius: var(--rbn-radius);
}
.rbn-badge-link .rbn-badge { transition: background-color .15s, border-color .15s; }
.rbn-badge-link:hover .rbn-badge { background: rgba(127, 127, 127, .15); }
.rbn-badge-link:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.rbn-badge-more {
	margin-top: .5em;
	font-size: .85em;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.rbn-badge-link:hover .rbn-badge-more span { display: inline-block; transform: translateX(3px); transition: transform .15s; }
.rbn-tag {
	display: inline-block;
	padding: 0 .45em;
	border: 1px solid currentColor;
	border-radius: 4px;
	font-size: .8em;
	letter-spacing: .03em;
	text-transform: uppercase;
	vertical-align: 1px;
}

/* Pastille de bande */
.rbn-band {
	display: inline-flex;
	align-items: center;
	gap: .35em;
	white-space: nowrap;
}
.rbn-band::before {
	content: "";
	width: .6em;
	height: .6em;
	border-radius: 2px;
	background: var(--band, #888);
}

/* Tableau */
.rbn-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rbn-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .9em;
	margin: 0;
}
.rbn-table th,
.rbn-table td {
	padding: .45em .6em;
	border-bottom: 1px solid var(--rbn-border);
	text-align: left;
	vertical-align: top;
	white-space: nowrap;
}
.rbn-table th { font-size: .8em; text-transform: uppercase; letter-spacing: .05em; color: var(--rbn-muted); font-weight: 600; }
.rbn-table tbody tr:hover { background: var(--rbn-soft); }
.rbn-table small { display: block; font-size: .78em; color: var(--rbn-muted); }
.rbn-table td.rbn-num { text-align: right; }
.rbn-call { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.rbn-time small { display: block; }
.rbn-snr { font-weight: 600; }
.rbn-snr.snr-hi { color: #1a7f37; }
.rbn-snr.snr-mid { color: #b07d00; }
.rbn-snr.snr-lo { color: #c23b22; }

/* Carte */
.f4mpl-rbn-map { width: 100%; border-radius: var(--rbn-radius); overflow: hidden; border: 1px solid var(--rbn-border); }
.f4mpl-rbn-note,
.f4mpl-rbn-credit { font-size: .8em; color: var(--rbn-muted); margin: .5em 0 0; }

/* Statistiques */
.rbn-h { font-size: 1.05em; margin: 0 0 .6em; }
.rbn-h4 { font-size: .8em; text-transform: uppercase; letter-spacing: .06em; color: var(--rbn-muted); margin: 0 0 .6em; font-weight: 600; }
.rbn-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: .6em; margin-bottom: 1.2em; }
.rbn-tile {
	display: flex;
	flex-direction: column;
	padding: .7em .9em;
	border: 1px solid var(--rbn-border);
	border-radius: var(--rbn-radius);
	background: var(--rbn-soft);
}
.rbn-tile-v { font-size: 1.35em; font-weight: 700; line-height: 1.2; }
.rbn-tile-l { font-size: .78em; color: var(--rbn-muted); }
.rbn-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.4em; }
.rbn-bar { display: grid; grid-template-columns: 3.4em 1fr 3.5em; align-items: center; gap: .6em; font-size: .88em; margin-bottom: .35em; }
.rbn-bar-track { height: .7em; background: var(--rbn-soft); border-radius: 4px; overflow: hidden; }
.rbn-bar-fill { display: block; height: 100%; background: var(--band, #888); border-radius: 4px; }
.rbn-bar-val { text-align: right; }
.rbn-chips { display: flex; flex-wrap: wrap; gap: .4em; }
.rbn-chip { padding: .25em .7em; border: 1px solid var(--rbn-border); border-radius: 999px; font-size: .85em; }

@media (max-width: 600px) {
	.rbn-badge-freq { font-size: 1.1em; }
	.rbn-table th:nth-child(5),
	.rbn-table td:nth-child(5) { display: none; }
}
