/* News bar — top announcement strip */
.news-bar {
	background: linear-gradient(135deg, #a4d65e 0%, #a4d65e 50%, #00b859 100%);
	color: #001600;
	padding: 8px 0;
	font-size: 0.875rem;
	text-align: center;
	position: relative;
	z-index: 1050;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.news-bar .container-fluid {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	flex-wrap: wrap;
}
.news-bar-label {
	background: rgba(255, 255, 255, 0.25);
	font-weight: 700;
	font-size: 0.7rem;
	letter-spacing: 1px;
	padding: 2px 8px;
	border-radius: 3px;
	text-transform: uppercase;
}
.news-bar-text {
	font-weight: 500;
}
.news-bar-link {
	color: #fff;
	text-decoration: underline;
	font-weight: 600;
}
.news-bar-link:hover {
	color: #e0ffe0;
}
.news-bar-close {
	background: none;
	border: none;
	color: rgba(255, 255, 255, 0.7);
	font-size: 1rem;
	cursor: pointer;
	padding: 0 4px;
	margin-inline-start: 8px;
	line-height: 1;
}
.news-bar-close:hover {
	color: #fff;
}

/* BS4 compat: btn-block was removed in BS5 */
.btn-block {
	display: block;
	width: 100%;
}

html {
	position: relative;
	font-size: 16px;
}

body {
	/* Fill the viewport (so the background always reaches the bottom) but scroll
	   ONLY when content truly exceeds it. The old `html{height:100%}` +
	   `body{min-height:100%}` percentage chain pinned the body to the viewport
	   height and produced a spurious scrollbar as soon as chrome/margins added a
	   few px. `dvh` also copes with the mobile URL bar; `vh` is the fallback. */
	min-height: 100vh;
	min-height: 100dvh;
	padding:0; margin:0; position:relative;
	overflow-x: hidden;
	background-color: #dedede;
}

body::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: -1;
	opacity: 0.2;
	background-color: #dedede;
	background-image:
		repeating-radial-gradient(circle at 0 0, transparent 0, #dedede 9px),
		repeating-linear-gradient(#00000055, #000000);
}

#MAINHeader {
	padding-bottom: 2rem;
}

#signinArea, #detailArea {
	display:block;
	border:1px solid #dee2e6;
	background-color: white;
	padding:2rem;
	border-radius: 6px;
	box-shadow: 0 2px 8px rgba(0,0,0,.08);
}

#signinHelperText {
	margin-bottom: 1rem;
}

#registerArea {
	display:block;
	border:1px solid #dee2e6;
	background-color: white;
	padding:2rem;
	border-radius: 6px;
	box-shadow: 0 2px 8px rgba(0,0,0,.08);
}

#registerHelperText {
	margin-bottom: 1rem;
}

#ErrorMessage {
	display:none;
	font-weight: 900;
	font-size: larger;
}

#RegisterErrorMessage {
	display: block;
	font-weight: 900;
	font-size: larger;
	color: red;
}

label {
	font-weight: bolder;
	margin-bottom: 2px;
}

.form-label {
	margin-bottom: calc(0.5rem + 2px);
}

/* Bootstrap default (1.75rem) is too close to h2 (2rem) in card headers */
h3 {
	font-size: 1.4rem;
}

/* Subtle lift for clickable cards (e.g. location badges in /main/activities) */
.card-hover {
	cursor: pointer;
	transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.card-hover:hover {
	transform: translateY(-2px);
	box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .12);
	border-color: rgba(0, 0, 0, .25);
}

label.error {
	color:red;
	height:17px;
	padding:1px 5px 0px 5px;
}

.success {
	color:green;
}

.error {
	color:red;
}

.bg-light-danger {
	background-color: rgba(255, 0, 6, 0.35);
}

.bg-light-success {
	background-color: #b7ffb8;
}

.bg-light-primary {
	background-color: rgba(141, 163, 255, 0.41);
}

.bg-rtdgreen {
	background-color: #389640;
}

.bg-rtdred {
	background-color: #db2c2c;
}

.bg-rooted {
	background-color: #7d5bd8;
}

/* RootedCON pill: the base track (and proposed_rootedcon) — solid violet, white text. */
.badge-rooted {
	background-color: #3e008a;
	color: #fff;
}

.bg-event {
	background:linear-gradient(135deg,#643992 0%,#3e008a 100%);
}

.bg-training {
	background:linear-gradient(135deg,#393a92 0%,#00178a 100%);
}

.text-rtddarkgreen {
	color: #444444;
}

.text-rtddgreen {
	color: darkgreen;
}

.gcard {
	border:1px solid green;
	background-color:rgba(0,228,0,.2)
}

.text-rtddarkred {
	color: #444444;
}

.text-rtddred {
	color: darkred;
}

.rcard {
	border:1px solid red;
	background-color:rgba(228,0,0,.2)
}

.text-star, .text-gold {
	color: gold;
}

.text-magenta {
	color: rgb(209, 66, 244);
}

.nodeco, .nodeco:link, .nodeco:visited {text-decoration: none;color: #393939;}


#registrationArea {
	display:block;
	border:1px solid #dee2e6;
	background-color: white;
	padding:2rem;
	border-radius: 6px;
	box-shadow: 0 2px 8px rgba(0,0,0,.08);
}

#registrationHelperText {
	margin-bottom: 1rem;
}

.requiredf {
	color:red;
	font-weight: 600;
	font-size:1.5rem;
}

.helpert {
	font-size:120%;
}

.btn-xlg {
    padding: 18px 28px;
    font-size: 32px;
	font-weight: 900;
    line-height: normal;
    -webkit-border-radius: 8px;
       -moz-border-radius: 8px;
            border-radius: 8px;
}

.stripe-button-el {
	display: none !important;
}

.g-recaptcha > div{
 margin: 10px auto !important;
 text-align: center;
 width: auto !important;
 height: auto !important;
}

.rtd_search_box {
	padding:.8rem !important;
	line-height:5rem !important;
	font-size: 2.5rem;
}

section {
    padding: 60px 0;
}

section .section-title {
    text-align: center;
    color: #007b5e;
    margin-bottom: 50px;
    text-transform: uppercase;
}

.table-condensed>thead>tr>th, .table-condensed>tbody>tr>th, .table-condensed>tfoot>tr>th, .table-condensed>thead>tr>td, .table-condensed>tbody>tr>td, .table-condensed>tfoot>tr>td {
	padding: 1px;
}

#footer {
    position: absolute;
	display:block;
	width:100%;
    bottom: 0;
    color: white;
	background: #007b5e !important;
	flex: 0 0 auto;
	-webkit-flex: 0 0 auto;
}

#footer h5 {
	padding-inline-start: 10px;
    border-inline-start: 3px solid #eeeeee;
    padding-bottom: 6px;
    margin-bottom: 20px;
    color:#ffffff;
}

#footer a {
    color: #ffffff;
    text-decoration: none !important;
    background-color: transparent;
    -webkit-text-decoration-skip: objects;
}

#footer ul.social li{
	padding: 3px 0;
}

#footer ul.social li a i {
    margin-inline-end: 5px;
	font-size:25px;
	-webkit-transition: .5s all ease;
	-moz-transition: .5s all ease;
	transition: .5s all ease;
}

#footer ul.social li:hover a i {
	font-size:30px;
	margin-top:-10px;
}

#footer ul.social li a,
#footer ul.quick-links li a{
	color:#ffffff;
}
#footer ul.social li a:hover{
	color:#eeeeee;
}
#footer ul.quick-links li{
	padding: 3px 0;
	-webkit-transition: .5s all ease;
	-moz-transition: .5s all ease;
	transition: .5s all ease;
}
#footer ul.quick-links li:hover{
	padding: 3px 0;
	margin-inline-start:5px;
	font-weight:700;
}
#footer ul.quick-links li a i{
	margin-inline-end: 5px;
}
#footer ul.quick-links li:hover a i {
    font-weight: 700;
}

pre {
	overflow-x: auto;
	white-space: pre-wrap;
	white-space: -moz-pre-wrap;
	white-space: -pre-wrap;
	white-space: -o-pre-wrap;
	word-wrap: break-word;
}

fieldset {
	background-color: #efefef;
	border: 1px solid #ddd;
	border-radius: 4px;
}

legend {
	background-color: #fff;
	border: 1px solid #ddd;
	border-radius: 4px;
	color: #2a2a2a;
	font-size: 17px;
	font-weight: bold;
	padding: 3px 5px 3px 7px;
	width: auto;
}

img.speaker {
	border:2px solid white;
}

img.speaker:hover {
	border:2px dashed #ff8b78;
}

.blur {
	-webkit-filter: blur(8px);
	filter: blur(8px);
}

#breadcrumb {
	height: 0.7rem !important;
	font-size: 0.8em !important;
	padding: 0 !important;
}

.breadcrumb {
	padding:0.25rem 1rem !important;
	border-radius: 0 !important;
	background: rgba(255,255,255,.55);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(0,0,0,.4);
}

.font-size-1rem {
	font-size: 1rem;
}

.font-size-1-2rem {
	font-size: 1.2rem;
}

.font-size-1-6rem {
	font-size: 1.6rem;
}

.font-size-1-8rem {
	font-size: 1.8rem;
}

.font-size-2rem {
	font-size: 2rem;
}

.font-size-2-5rem {
	font-size: 2.5rem;
}

.font-size-10px {
	font-size: 10px;
}

.font-size-16px {
	font-size: 16px;
}

.font-size-20px {
	font-size: 20px;
}

.font-size-24px {
	font-size: 24px;
}

@media (max-width:767px){
	#footer h5 {
		padding-inline-start: 0;
		border-inline-start: transparent;
		padding-bottom: 0px;
		margin-bottom: 10px;
	}
}

/* Card left accent bar on hover */
.card {
	transition: transform .15s ease, box-shadow .15s ease, border-inline-start-color .15s ease;
}

.card-react:hover {
	transform: translateY(-4px);
	box-shadow: 0 10px 28px rgba(0,0,0,.14);
}

/* ── Activity detail page ── */
.activity-detail .activity-hero {
	box-shadow: 0 4px 20px rgba(0,0,0,.15);
}

.activity-detail .activity-description {
	line-height: 1.8;
	font-size: 1.02rem;
}

.activity-detail .activity-description img {
	max-width: 100%;
	height: auto;
	border-radius: .5rem;
}

.activity-detail .activity-sidebar .card {
	border-radius: .75rem;
}

.activity-detail .table th {
	font-size: .85rem;
	text-transform: uppercase;
	letter-spacing: .03em;
}

.activity-detail .table .table-success {
	--bs-table-bg: rgba(25,135,84,.08);
}

.card-primary {
	border: 1px solid white;
	background-color: #0d41fd;
}

.card-danger {
	border: 1px solid white;
	background-color: #f72f44;
	color: white;
}

.card-success {
	border: 1px solid white;
	background-color: #198754;
}

.card-warning {
	border: 1px solid white;
	background-color: #ffc935;
}

.card-info {
	border: 1px solid white;
	background-color: #0dcaf0;
}

.card-secondary {
	border: 1px solid white;
	background-color: #6c757d;
}

.card-dark {
	border: 1px solid white;
	background-color: #212529;
}

/* Admin-zone action card: white background, thin red border, thick red
   left bar ON HOVER only (same interaction language as the /main cards) */
.card-admin {
	background-color: #fff;
	border: 1px solid #dc3545;
}
.card-admin:hover { border-inline-start: 4px solid #dc3545 !important; }

.card-rooted:hover  { border-inline-start: 4px solid #3e008a !important; }
.card-danger:hover  { border-inline-start: 4px solid #6c000c !important; }
.card-success:hover { border-inline-start: 4px solid #0e581a !important; }
.card-warning:hover { border-inline-start: 4px solid #e07900 !important; }
.card-info:hover    { border-inline-start: 4px solid #0dcaf0 !important; }
.card-primary:hover { border-inline-start: 4px solid #0a21d1 !important; }
.card-secondary:hover { border-inline-start: 4px solid #363737 !important; }
.card-dark:hover    { border-inline-start: 4px solid #000000 !important; }


td.fc-day-today {
	background: inherit !important;
}

.btn-purple {
	color: #fff;
	background-color: #3e008a;
	border-color: #3e008a;
}
.btn-purple:hover {
	color: #fff !important;
	background-color: #643992;
}

.bg-light-purple {
	background-color: #c792df;
}

.bg-kpi-danger {
	background-color: #ffaaaa;
}

.t-kpi {
	font-size: 1.8rem;
}

.fc-event-title {
	font-weight: bold;
	color: white !important;
}

.espeakers {
	padding-inline-start: .3rem;
}

.ellip {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis !important;
}

.ebreak {
	font-size:70% !important;
	background-color: rgb(69, 110, 62) !important;
}

.erooted {
	font-size:70% !important;
	background-color: #643992 !important;
	color: white;
}

.esecuriters {
	font-size:70% !important;
	background-color: #004d6a !important;
	color: white;
}

.eprotaapp {
	font-size:70% !important;
	background-color: #01478d !important;
	color: white;
}

.ecriptored {
	font-size:70% !important;
	background-color: #1a1a1a !important;
	color: white;
}

.eanon {
	font-size:70% !important;
	background-color: black !important;
	color: white;
}

.eisaca {
	font-size:70% !important;
	background-color: #2eb02c !important;
	color: white;
}

.eosintomatico {
	font-size:70% !important;
	background-color: #ea550d !important;
	color: white;
}

.eia {
	font-size:70% !important;
	background-color: #7985d6 !important;
	color: black;
}

.edfir {
	font-size:70% !important;
	background-color: #0092d3 !important;
	color: white;
}

.eresilience {
	font-size:70% !important;
	background-color: #ff472e !important;
	color: white;
}

.eprotocolo286 {
	font-size:70% !important;
	background-color: #18274e !important;
	color: white;
}

.einfluencers {
	font-size:70% !important;
	background-color: #df8d08 !important;
	color: black;
}

.fc-event {
	margin-top: 0;
	margin-bottom: 0;
	white-space: normal !important;
	min-height: 40px !important;
	font-size: 14px; /* Ajusta según lo que necesites */
	line-height: 1.3;
	padding: 5px;
}


.fc-timegrid-slot {
	height: 50px !important
}

.fc-timegrid-event {
	white-space: normal !important;
	display: flex;
	vertical-align: middle !important;
}

.fc-event-main {
	padding-top: 6px !important;
	padding-bottom: 6px !important;
	font-size: 1rem !important;
}

/* ═══════════════════════════════════════════════════════════════════
   AGENDA — public schedule view
   ═══════════════════════════════════════════════════════════════════ */

/* Time block header */
.agenda-time-header .badge { white-space: nowrap; }

/* Slot cards */
.agenda-slot-inner {
	border-inline-start: 4px solid #dee2e6;
	transition: transform .12s ease, box-shadow .12s ease;
}
.agenda-slot-inner:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 14px rgba(0,0,0,.12);
}

/* Global break / party / diner — full-width green banner */
.agenda-break-global {
	background: linear-gradient(135deg, #456e3e 0%, #2e5a28 100%);
	color: #fff;
	border-radius: 4px;
	font-size: .85rem;
}
.agenda-slot-break.agenda-slot-all { border-inline-start: 4px solid #456e3e !important; }

/* Track-specific break — uses track left-border color, muted background */
.agenda-break-track {
	background: linear-gradient(135deg, #f0f0f0 0%, #e8e8e8 100%);
	color: #333;
	border-radius: 4px;
	font-size: .85rem;
}

/* Streamed talk — full-width purple banner */
.agenda-streamed-card {
	background: linear-gradient(135deg, #643992 0%, #4a1d7a 100%);
	color: #fff;
	border-radius: 4px;
	font-size: .9rem;
}
.agenda-slot-streamed {
	border-inline-start: 4px solid #643992 !important;
}
.agenda-slot-streamed:hover {
	box-shadow: 0 4px 16px rgba(100, 57, 146, .3);
}

/* Global slot full-width container */
.agenda-slot-global { width: 100%; }

/* Track-specific left border + CSS custom properties for badge colors */
.agenda-slot-rooted,
.agenda-slot-rootedcon {
	--agenda-track-bg: #643992; --agenda-track-fg: #fff;
	border-inline-start-color: #643992;
}
.agenda-slot-criptored {
	--agenda-track-bg: #1a1a1a; --agenda-track-fg: #fff;
	border-inline-start-color: #1a1a1a;
}
.agenda-slot-isaca {
	--agenda-track-bg: #2eb02c; --agenda-track-fg: #fff;
	border-inline-start-color: #2eb02c;
}
.agenda-slot-securiters {
	--agenda-track-bg: #004d6a; --agenda-track-fg: #fff;
	border-inline-start-color: #004d6a;
}
.agenda-slot-protaapp {
	--agenda-track-bg: #01478d; --agenda-track-fg: #fff;
	border-inline-start-color: #01478d;
}
.agenda-slot-osintomatico {
	--agenda-track-bg: #ea550d; --agenda-track-fg: #fff;
	border-inline-start-color: #ea550d;
}
.agenda-slot-ia {
	--agenda-track-bg: #7985d6; --agenda-track-fg: #000;
	border-inline-start-color: #7985d6;
}
.agenda-slot-anon {
	--agenda-track-bg: #000000; --agenda-track-fg: #fff;
	border-inline-start-color: #000000;
}
.agenda-slot-dfir {
	--agenda-track-bg: #0092d3; --agenda-track-fg: #fff;
	border-inline-start-color: #0092d3;
}
.agenda-slot-resilience,
.agenda-slot-kyndryl {
	--agenda-track-bg: #ff472e; --agenda-track-fg: #fff;
	border-inline-start-color: #ff472e;
}
.agenda-slot-protocolo286 {
	--agenda-track-bg: #18274e; --agenda-track-fg: #fff;
	border-inline-start-color: #18274e;
}
.agenda-slot-influencers {
	--agenda-track-bg: #df8d08; --agenda-track-fg: #000;
	border-inline-start-color: #df8d08;
}

/* Modal header inherits track color via inline style */
#talkModalHeader .btn-close { filter: invert(1); }

/* Day tab styling */
#dayTabs .nav-link { font-weight: 600; }
#dayTabs .nav-link.active { background-color: #643992; color: #fff; border-color: #643992; }

/* ── Custom switch (.chk-custom) ── */
/* Usage:
   <label class="chk-custom">           — green ON / gray OFF (default)
   <label class="chk-custom chk-danger"> — red ON / gray OFF
   <label class="chk-custom chk-dual">   — green ON / red OFF
*/
.chk-custom {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	cursor: pointer;
	user-select: none;
}
.chk-custom input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	width: 2.6rem;
	height: 1.4rem;
	border-radius: .7rem;
	background: #c5cbd3;
	flex-shrink: 0;
	position: relative;
	transition: background .2s ease, box-shadow .2s ease;
	cursor: pointer;
	border: none;
	outline: none;
}
/* Knob */
.chk-custom input[type="checkbox"]::after {
	content: '';
	position: absolute;
	top: .15rem;
	inset-inline-start: .15rem;
	width: 1.1rem;
	height: 1.1rem;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 3px rgba(0,0,0,.25);
	transition: transform .2s ease;
}
.chk-custom input[type="checkbox"]:checked::after {
	transform: translateX(1.2rem);
}
[dir="rtl"] .chk-custom input[type="checkbox"]:checked::after {
	transform: translateX(-1.2rem);   /* right-to-left (ar, he): the knob travels the other way */
}
/* Focus */
.chk-custom input[type="checkbox"]:focus-visible {
	box-shadow: 0 0 0 3px rgba(40,167,69,.25);
}
/* ── Default: green ON / gray OFF ── */
.chk-custom input[type="checkbox"]:checked {
	background: linear-gradient(135deg, #28a745, #1e7e34);
}
/* ── Danger: red ON / gray OFF ── */
.chk-custom.chk-danger input[type="checkbox"]:checked {
	background: linear-gradient(135deg, #dc3545, #b02a37);
}
.chk-custom.chk-danger input[type="checkbox"]:focus-visible {
	box-shadow: 0 0 0 3px rgba(220,53,69,.25);
}
/* ── Dual: green ON / red OFF ── */
.chk-custom.chk-dual input[type="checkbox"] {
	background: linear-gradient(135deg, #dc3545, #b02a37);
}
.chk-custom.chk-dual input[type="checkbox"]:checked {
	background: linear-gradient(135deg, #28a745, #1e7e34);
}
.chk-custom.chk-dual input[type="checkbox"]:focus-visible {
	box-shadow: 0 0 0 3px rgba(40,167,69,.25);
}
/* ── YES/NO textual answer (accessibility companion for chk-dual) ──
   Real DOM text (translatable, announced by screen readers), flipped by
   checkbox state via the sibling selector — no JS needed. */
.chk-custom .chk-answer-yes { display: none; color: #198754; font-weight: 700; }
.chk-custom .chk-answer-no  { display: inline; color: #dc3545; font-weight: 700; }
.chk-custom input[type="checkbox"]:checked ~ .chk-answer .chk-answer-yes { display: inline; }
.chk-custom input[type="checkbox"]:checked ~ .chk-answer .chk-answer-no  { display: none; }
/* ── State-following background (.chk-state-bg) ──
   Put it on the CONTAINER of a YES/NO switcher that carries an emphasis background:
   light red while unchecked, light green once checked — the whole block answers,
   not only the toggle (owner: a green toggle on a red box was confusing).
   Uses :has() (all current browsers); older ones simply keep the red state. */
.chk-state-bg {
	background-color: rgba(255, 0, 6, 0.35);
	border-radius: .375rem;
	transition: background-color .25s ease;
}
.chk-state-bg:has(.chk-custom input[type="checkbox"]:checked) {
	background-color: #b7ffb8;
}
/* ── Radio variant ── */
.chk-custom input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	width: 1.4rem;
	height: 1.4rem;
	border-radius: 50%;
	background: #c5cbd3;
	flex-shrink: 0;
	position: relative;
	transition: background .2s ease, box-shadow .2s ease;
	cursor: pointer;
	border: none;
	outline: none;
}
.chk-custom input[type="radio"]::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: .6rem;
	height: .6rem;
	border-radius: 50%;
	background: #fff;
	transform: translate(-50%, -50%) scale(0);
	transition: transform .2s ease;
}
.chk-custom input[type="radio"]:checked {
	background: linear-gradient(135deg, #28a745, #1e7e34);
}
.chk-custom input[type="radio"]:checked::after {
	transform: translate(-50%, -50%) scale(1);
}
.chk-custom input[type="radio"]:focus-visible {
	box-shadow: 0 0 0 3px rgba(40,167,69,.25);
}
/* Label text */
.chk-custom span {
	line-height: 1.3;
}
/* ── Dark-warning palette ── */
/* Base: #e68a00 (dark amber)  Darker: #b36b00  Subtle bg: #fff3cd / #ffeeba */
.text-dark-warning          { color: #e68a00 !important; }
.bg-dark-warning            { background-color: #e68a00 !important; }
.text-bg-dark-warning       { color: #fff !important; background-color: #e68a00 !important; }
.border-dark-warning        { border-color: #e68a00 !important; }
.btn-dark-warning           { color: #fff; background-color: #e68a00; border-color: #b36b00; }
.btn-dark-warning:hover     { color: #fff; background-color: #b36b00; border-color: #995c00; }
.btn-dark-warning:active,
.btn-dark-warning.active    { color: #fff; background-color: #995c00; border-color: #804d00; }
.btn-outline-dark-warning           { color: #e68a00; border-color: #e68a00; background-color: transparent; }
.btn-outline-dark-warning:hover     { color: #fff; background-color: #e68a00; border-color: #e68a00; }
.badge.text-bg-dark-warning         { color: #fff !important; background-color: #e68a00 !important; }
.alert-dark-warning         { color: #664d00; background-color: #fff3cd; border-color: #ffeeba; }
.alert-dark-warning a       { color: #4d3a00; font-weight: 600; }
.table-dark-warning         { --bs-table-bg: #fff3cd; --bs-table-border-color: #ffeeba; color: #664d00; }
.link-dark-warning          { color: #e68a00 !important; }
.link-dark-warning:hover    { color: #b36b00 !important; }

/* ── Selectable track badges (CFP "propose to tracks") ──
   CheckboxSelectMultiple rendered as tag-pills: gray + cross when off,
   green + check when on. The native checkbox is visually hidden. */
/* Django 5 renders CheckboxSelectMultiple as nested <div>s (no ul/li). */
.track-badges > div { display: flex; flex-wrap: wrap; gap: .5rem; }
.track-badges label {
	display: inline-flex; align-items: center; gap: .4rem;
	background: #e9ecef; border: 1px solid #ced4da; color: #6c757d;
	border-radius: 50rem; padding: .4rem 1rem; font-size: .9rem; font-weight: 600;
	cursor: pointer; user-select: none;
	transition: background .15s, border-color .15s, color .15s;
}
.track-badges label::before {
	content: '\2715';           /* ✕ */
	font-weight: 700;
	color: #dc3545;
}
.track-badges label:has(input:checked) {
	background: #d4edda; border-color: #b5dfbc; color: #155724;
}
.track-badges label:has(input:checked)::before {
	content: '\2713';           /* ✓ */
	color: #198754;
}
.track-badges input[type=checkbox] {
	position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none;
}

/* Help icon inside EXTRA-requirement badges (hover shows the description in `title`) */
.req-help { cursor: help; font-size: .85em; }
