/* My Conference additions. Existing Programme geometry/colours stay authoritative. */
.cp-my-conference-heart {
	position: absolute;
	z-index: 4;
	top: 38px;
	right: 6px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid transparent;
	border-radius: 50%;
	background: transparent;
	color: var(--cp-text);
	font: inherit;
	cursor: pointer;
	pointer-events: auto;
	transition: background-color .15s ease, border-color .15s ease;
}
.cp-my-conference-heart [data-cp-heart-icon] { font-family: Arial, sans-serif; font-size: 29px; line-height: 1; transition: transform .16s ease, opacity .16s ease; }
.cp-my-conference-heart:hover { background: var(--cp-surface-raised); border-color: var(--cp-line-strong); }
.cp-my-conference-heart:focus-visible { outline: 3px solid var(--cp-text); outline-offset: -2px; background: var(--cp-surface-raised); }
.cp-my-conference-heart[aria-pressed="true"] { color: var(--cp-pathway); }
.cp-my-conference-heart:active [data-cp-heart-icon] { transform: scale(.90); }
.cp-my-conference-heart.is-confirmed [data-cp-heart-icon] { animation: cp-heart-confirm .25s ease; }
.cp-my-conference-heart.is-loading { cursor: progress; }
.cp-my-conference-heart.is-loading [data-cp-heart-icon] { opacity: .35; }
/* Reserve the control's lane within the existing pathway band, not a new row. */
.cp-programme:has(.cp-my-conference-heart) .cp-session-card__pathway { padding-right: 56px; }
/* Missing pathways have no second band: use the existing top band instead. */
.cp-session-card:not(:has(.cp-session-card__pathway)) .cp-my-conference-heart { top: 0; color: #fff; }
.cp-session-card:has(.cp-my-conference-heart):not(:has(.cp-session-card__pathway)) .cp-session-card__top { padding-right: 56px; }
.cp-session-card:not(:has(.cp-session-card__pathway)) .cp-my-conference-heart:hover,
.cp-session-card:not(:has(.cp-session-card__pathway)) .cp-my-conference-heart:focus-visible { background: #ffffff26; }
@keyframes cp-heart-confirm { 50% { transform: scale(1.14); } }
.cp-my-conference-intro { margin-bottom: 20px; }
.cp-my-conference-intro h2, .cp-my-conference-gate h2 { color: var(--cp-text) !important; font-size: 28px; margin: 4px 0 10px; }
.cp-my-conference-intro p { max-width: 680px; color: var(--cp-muted); }
.cp-my-conference-eyebrow { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; }
.cp-my-conference-intro a, .cp-my-conference-empty a { color: var(--cp-text); text-decoration: underline; text-underline-offset: 3px; }
.cp-my-conference-empty, .cp-my-conference-gate { padding: 28px; border: 1px solid var(--cp-line); border-radius: var(--cp-radius); background: var(--cp-surface); }
.cp-my-conference-empty { position: relative; overflow: hidden; margin-bottom: 18px; padding: clamp(30px, 5vw, 48px) 24px; border-top: 3px solid #7DB9E5; text-align: center; background: linear-gradient(135deg, color-mix(in srgb, #FF5A2F 6%, var(--cp-surface)) 0%, var(--cp-surface) 44%, color-mix(in srgb, #7DB9E5 8%, var(--cp-surface)) 100%); box-shadow: var(--cp-shadow); }
.cp-my-conference-empty::before { content: ''; position: absolute; width: 220px; height: 220px; top: -140px; right: -110px; border-radius: 50%; background: color-mix(in srgb, #7DB9E5 12%, transparent); pointer-events: none; }
.cp-my-conference-empty__icon { position: relative; z-index: 1; display: grid; place-items: center; width: 68px; height: 68px; margin: 0 auto 13px; border-radius: 50%; background: #FF5A2F; color: #fff; box-shadow: 0 10px 28px rgba(255, 90, 47, .25); }
.cp-my-conference-empty__icon > span { margin-top: -2px; font-family: Arial, sans-serif; font-size: 38px; line-height: 1; }
.cp-my-conference-empty__eyebrow { position: relative; z-index: 1; margin: 0 0 5px; color: #7DB9E5 !important; font-size: 11px; line-height: 1.4; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.cp-my-conference-empty h3 { position: relative; z-index: 1; margin: 0 0 8px; color: #FF5A2F !important; font-size: clamp(24px, 3vw, 30px); }
.cp-my-conference-empty > p:not(.cp-my-conference-empty__eyebrow) { position: relative; z-index: 1; max-width: 680px; margin: 0 auto 18px; color: var(--cp-muted); line-height: 1.6; }
.cp-my-conference-empty a.cp-my-conference-empty__action { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 9px 18px; border: 1px solid #FF5A2F; border-radius: 11px; background: #FF5A2F; color: #fff !important; font-weight: 800; text-decoration: none; box-shadow: 0 7px 20px rgba(255, 90, 47, .18); }
.cp-my-conference-empty a.cp-my-conference-empty__action:hover { filter: brightness(1.04); }
.cp-my-conference-empty a.cp-my-conference-empty__action:focus-visible { outline: 3px solid #7DB9E5; outline-offset: 3px; }
.cp-programme[data-cp-my-conference-empty-state="true"] .cp-programme__days,
.cp-programme[data-cp-my-conference-empty-state="true"] .cp-programme__filters,
.cp-programme[data-cp-my-conference-empty-state="true"] .cp-programme__filters-toggle,
.cp-programme[data-cp-my-conference-empty-state="true"] [data-cp-none] { display: none !important; }
.cp-my-conference-dialog, .cp-my-conference-status {
	--cp-dialog-surface: #fff;
	--cp-dialog-text: #25282a;
	--cp-dialog-line: #dce1e4;
	color: var(--cp-dialog-text);
	background: var(--cp-dialog-surface);
	font-family: Avenir, "Avenir Next", Arial, sans-serif;
}
.cp-my-conference-dialog[data-theme="reading"], .cp-my-conference-status[data-theme="reading"] { --cp-dialog-surface: #fbf6eb; --cp-dialog-text: #342f28; --cp-dialog-line: #dfd2ba; }
.cp-my-conference-dialog[data-theme="dark"], .cp-my-conference-status[data-theme="dark"] { --cp-dialog-surface: #283137; --cp-dialog-text: #f1f4f5; --cp-dialog-line: #3d494f; }
.cp-my-conference-dialog { width: min(440px, calc(100vw - 32px)); box-sizing: border-box; border: 1px solid var(--cp-dialog-line); border-radius: 18px; padding: 26px; box-shadow: 0 20px 70px #0004; }
.cp-my-conference-dialog::backdrop { background: #15202999; }
.cp-my-conference-dialog h2 { color: inherit !important; font-size: 24px; line-height: 1.3; }
.cp-my-conference-dialog p { line-height: 1.6; }
.cp-my-conference-dialog-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.cp-my-conference-primary, .cp-my-conference-dialog button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 18px; border-radius: 999px; border: 1px solid var(--cp-dialog-line, var(--cp-line)); font: inherit; text-decoration: none; cursor: pointer; }
.cp-my-conference-primary { background: var(--cp-dialog-text, var(--cp-text)); color: var(--cp-dialog-surface, var(--cp-surface)) !important; }
.cp-my-conference-dialog button { background: transparent; color: inherit; }
.cp-my-conference-dialog a:focus-visible, .cp-my-conference-dialog button:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
.cp-my-conference-dialog.is-fallback { position: fixed; inset: 50% auto auto 50%; transform: translate(-50%, -50%); margin: 0; z-index: 100001; box-shadow: 0 0 0 100vmax #15202999; }
.cp-my-conference-status { position: fixed; z-index: 100002; bottom: 24px; left: 50%; transform: translateX(-50%); padding: 12px 20px; border: 1px solid var(--cp-dialog-line); border-radius: 12px; box-shadow: 0 4px 20px #0002; max-width: calc(100vw - 40px); box-sizing: border-box; font-size: 14px; }
.cp-my-conference-status:empty { padding: 0; border: 0; background: transparent; box-shadow: none; pointer-events: none; }
@media (prefers-reduced-motion: reduce) {
	.cp-my-conference-heart, .cp-my-conference-heart [data-cp-heart-icon] { transition: none; animation: none !important; }
}

/* MY CONFERENCE PRESENTATION: scoped accents only; cards and behaviour unchanged. */
.cp-programme:has(.cp-my-conference-intro) .cp-my-conference-intro h2::after { content: ''; display: block; width: 44px; height: 3px; background: #FF5A2F; margin-top: 12px; }
.cp-programme:has(.cp-my-conference-intro) .cp-my-conference-eyebrow { text-decoration: underline; text-decoration-color: #7DB9E5; text-underline-offset: 5px; }
.cp-programme:has(.cp-my-conference-intro) .cp-my-conference-intro > a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 14px; box-sizing: border-box; border: 1px solid #FF5A2F; border-radius: 10px; background: var(--cp-surface); color: var(--cp-text); font-weight: 750; text-decoration: none; }
.cp-programme:has(.cp-my-conference-intro) .cp-my-conference-intro > a:hover { background: color-mix(in srgb, #7DB9E5 10%, var(--cp-surface)); }
.cp-programme:has(.cp-my-conference-intro) .cp-my-conference-intro > a:focus-visible { outline: 3px solid #FF5A2F; outline-offset: 3px; }
.cp-programme:has(.cp-my-conference-intro) .cp-programme__toolbar { border-top: 2px solid #7DB9E5; }
