/* CCAPP Conference Portal — front-end styles.
   Built on the CCAPP Conferences theme design system: Fraunces display,
   Inter body, charcoal/sand/teal brand palette, pill buttons, 14px-radius
   cards. Uses the theme's CSS variables (--conf-accent, --conf-bright,
   --ccapp-*) with brand-correct fallbacks so the portal matches each
   conference page's accent and still looks right on non-theme sites. */

.ccp-portal, .ccp-agenda {
	--ccp-accent:    var(--conf-accent, #008C95);
	--ccp-accent-2:  var(--conf-accent-2, #5F249F);
	--ccp-bright:    var(--conf-bright, #2AD2C9);
	--ccp-charcoal:  var(--ccapp-charcoal, #2D2926);
	--ccp-ink:       #2D2926;
	--ccp-muted:     #5F5E5A;
	--ccp-faint:     #8a877f;
	--ccp-border:    #E5E2D9;
	--ccp-sand:      var(--ccapp-sand, #F4F1EA);
	--ccp-teal-tint:   #E1F5EE;
	--ccp-amber-tint:  #FAEEDA;
	--ccp-purple-tint: #EFE7FA;
	--ccp-coral-tint:  #F9E3DA;
	--ccp-serif: var(--ccapp-font-display, 'Fraunces', Georgia, serif);
	--ccp-sans:  var(--ccapp-font-body, 'Inter', Helvetica, Arial, sans-serif);
	font-family: var(--ccp-sans);
	color: var(--ccp-ink);
	max-width: 1120px;
	margin: 0 auto;
	line-height: 1.55;
}

/* Fraunces display headings, matching theme section titles */
.ccp-portal .ccp-h, .ccp-agenda .ccp-h {
	font-family: var(--ccp-serif);
	font-weight: 500;
	color: var(--ccp-ink);
	line-height: 1.15;
	margin: 0 0 18px;
}
.ccp-portal h2.ccp-h { font-size: clamp(1.6rem, 2.4vw, 2.2rem); margin-top: 34px; }
.ccp-portal h2.ccp-h:first-child { margin-top: 0; }
.ccp-portal h3.ccp-h { font-size: 1.15rem; margin-bottom: 10px; }

/* Full-width fallback: on portal pages, hide the theme sidebar and let
   the content column span the page (Divi + common theme selectors). */
body:has(.ccp-portal) #sidebar,
body:has(.ccp-portal) #secondary,
body:has(.ccp-portal) .sidebar,
body:has(.ccp-portal) aside.widget-area { display: none !important; }
body:has(.ccp-portal) #left-area,
body:has(.ccp-portal) .content-area,
body:has(.ccp-portal) #primary { width: 100% !important; max-width: 100% !important; float: none !important; }

/* Notices */
.ccp-notice {
	font-family: var(--ccp-sans);
	padding: 13px 18px;
	border-radius: 12px;
	margin: 0 0 18px;
	border: 1.5px solid var(--ccp-border);
	background: var(--ccp-sand);
	font-size: 0.95rem;
}
.ccp-notice--success { border-color: #bfe8d8; background: var(--ccp-teal-tint); color: #085041; }
.ccp-notice--error   { border-color: #efc4b4; background: var(--ccp-coral-tint); color: #712B13; }

/* Nav — pill chips like the theme's filter chips.
   Hard list reset: Divi/theme styles add disc bullets and padding to ul/li
   inside content areas, which leaked dots between the pills. */
.ccp-nav { margin: 0 0 28px; border-bottom: 1.5px solid var(--ccp-border); padding-bottom: 14px; }
.ccp-nav ul { display: flex; gap: 8px; list-style: none !important; margin: 0 !important; padding: 0 !important; flex-wrap: wrap; }
.ccp-nav li { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.ccp-nav li::marker { content: none; }
.ccp-nav li::before { content: none !important; display: none !important; }
.ccp-nav li a {
	display: inline-block;
	padding: 9px 18px;
	border-radius: 100px;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.88rem;
	color: var(--ccp-ink);
	border: 1.5px solid var(--ccp-border);
	background: #fff;
	transition: transform 0.2s, border-color 0.2s, color 0.2s;
}
.ccp-nav li a:hover { border-color: var(--ccp-accent); color: var(--ccp-accent); transform: scale(1.04); }
.ccp-nav li.ccp-nav--active a { background: var(--ccp-charcoal); border-color: var(--ccp-charcoal); color: #fff; }

/* Cards — theme card language: white, 1.5px sand border, 14px radius */
.ccp-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; margin-bottom: 26px; }
.ccp-card {
	border: 1.5px solid var(--ccp-border);
	border-radius: 14px;
	padding: 22px 24px;
	margin-bottom: 16px;
	background: #fff;
}
.ccp-card--info { background: var(--ccp-sand); }
.ccp-card--decision { border-color: var(--ccp-accent); }
.ccp-card--center { text-align: center; padding: 44px 30px; max-width: 640px; margin: 0 auto; }
.ccp-cards .ccp-card h3.ccp-h { font-size: 2rem; margin: 0 0 4px; color: var(--ccp-accent); }
.ccp-meta { color: var(--ccp-muted); font-size: 0.88rem; margin: 4px 0; }
.ccp-hint { color: var(--ccp-faint); font-size: 0.82rem; }

/* Auth */
.ccp-auth { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ccp-auth--single { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
@media (max-width: 720px) { .ccp-auth { grid-template-columns: 1fr; } }
.ccp-hp { position: absolute !important; left: -9999px !important; }

/* "Confirm it's you" — shown mid-form when the email typed as primary
   presenter already has an account. Loud on purpose: it is the one thing
   standing between the applicant and a finished submission. */
.ccp-form fieldset.ccp-attach {
	border: 2px solid var(--ccp-accent);
	background: var(--ccp-sand);
	border-radius: 10px;
	padding: 18px 22px;
	margin-bottom: 24px;
}
.ccp-form fieldset.ccp-attach legend { color: var(--ccp-accent); }
.ccp-form fieldset.ccp-attach input[type="password"] { max-width: 340px; }

/* Buttons — theme pill buttons */
.ccp-btn {
	display: inline-block;
	font-family: var(--ccp-sans);
	font-weight: 600;
	font-size: 0.88rem;
	line-height: 1;
	padding: 0.85em 1.6em;
	border-radius: 100px;
	text-decoration: none;
	cursor: pointer;
	background: transparent;
	color: var(--ccp-accent);
	border: 1.5px solid var(--ccp-accent);
	transition: transform 0.2s, background-color 0.2s, color 0.2s, border-color 0.2s;
}
.ccp-btn:hover { transform: scale(1.05); }
.ccp-btn:focus-visible { outline: 3px solid var(--ccp-bright); outline-offset: 2px; }
.ccp-btn--primary, .ccp-btn--dark { background: var(--ccp-charcoal); border-color: var(--ccp-charcoal); color: #fff; }
.ccp-btn--primary:hover, .ccp-btn--dark:hover { color: var(--ccp-bright); }
.ccp-btn--danger { border-color: #D85A30; color: #712B13; }
.ccp-btn--small { padding: 0.5em 1.1em; font-size: 0.8rem; }

/* Forms */
.ccp-form fieldset {
	border: 1.5px solid var(--ccp-border);
	border-radius: 14px;
	padding: 22px 24px;
	margin: 0 0 22px;
	background: #fff;
}
.ccp-form legend {
	font-family: var(--ccp-serif);
	font-weight: 500;
	font-size: 1.1rem;
	padding: 0 10px;
	color: var(--ccp-ink);
}
.ccp-form label, .ccp-auth label { display: block; font-weight: 600; font-size: 0.88rem; margin-bottom: 5px; color: var(--ccp-ink); }
.ccp-form input[type="text"], .ccp-form input[type="email"], .ccp-form input[type="tel"],
.ccp-form input[type="password"], .ccp-form input[type="number"], .ccp-form select, .ccp-form textarea,
.ccp-auth input[type="text"], .ccp-auth input[type="email"], .ccp-auth input[type="password"] {
	width: 100%;
	padding: 10px 13px;
	border: 1.5px solid var(--ccp-border);
	border-radius: 10px;
	box-sizing: border-box;
	font-family: var(--ccp-sans);
	font-size: 0.95rem;
	color: var(--ccp-ink);
	background: #fff;
}
.ccp-form input:focus, .ccp-form select:focus, .ccp-form textarea:focus,
.ccp-auth input:focus { outline: none; border-color: var(--ccp-accent); box-shadow: 0 0 0 3px var(--ccp-teal-tint); }
.ccp-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }
@media (max-width: 720px) { .ccp-two-col { grid-template-columns: 1fr; } }
.ccp-checkboxes label { font-weight: 400; margin-bottom: 7px; }
.ccp-wordcount { color: var(--ccp-faint); font-size: 0.78rem; }
.ccp-wordcount--over { color: #B3261E; font-weight: 700; }
.ccp-ce-row { border-top: 1.5px dashed var(--ccp-border); padding-top: 12px; margin-top: 12px; }
.ccp-headshot-preview img { border-radius: 12px; display: block; margin-bottom: 8px; }
.ccp-form details summary { cursor: pointer; font-weight: 600; color: var(--ccp-accent); margin-bottom: 12px; }

/* Tables — charcoal header band like the theme's agenda day cards */
.ccp-table { width: 100%; border-collapse: separate; border-spacing: 0; margin-bottom: 26px; border: 1.5px solid var(--ccp-border); border-radius: 14px; overflow: hidden; }
.ccp-table th, .ccp-table td { text-align: left; padding: 12px 14px; vertical-align: top; font-size: 0.92rem; border-bottom: 1px solid #EFEDE6; }
.ccp-table tbody tr:last-child td { border-bottom: 0; }
.ccp-table thead th {
	background: var(--ccp-charcoal);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	border-bottom: 0;
}
.ccp-table tbody tr:nth-child(even) { background: #FBFAF7; }
.ccp-row--warn { background: var(--ccp-amber-tint) !important; }
.ccp-warn-text { color: #854F0B; }
.ccp-table select, .ccp-table input[type="text"], .ccp-table input[type="number"] {
	padding: 7px 9px; border: 1.5px solid var(--ccp-border); border-radius: 8px; font-family: var(--ccp-sans);
}

/* Badges — uppercase tinted pills, matching .ccapp-badge */
.ccp-badge {
	display: inline-block;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 0.35em 1em;
	border-radius: 100px;
	line-height: 1.4;
	background: var(--ccp-sand);
	color: var(--ccp-muted);
}
.ccp-badge--submitted    { background: var(--ccp-teal-tint); color: #085041; }
.ccp-badge--under_review { background: var(--ccp-amber-tint); color: #854F0B; }
.ccp-badge--accepted     { background: var(--ccp-accent); color: #fff; }
.ccp-badge--denied       { background: var(--ccp-coral-tint); color: #712B13; }
.ccp-badge--withdrawn    { background: #F1EFE8; color: #5F5E5A; }
.ccp-badge--draft        { background: #fff; color: #5F5E5A; border: 1.5px dashed var(--ccp-border); }
.ccp-badge--revisions    { background: var(--ccp-amber-tint); color: #854F0B; }
.ccp-badge--waitlist     { background: var(--ccp-purple-tint); color: #3C3489; }

/* Filters + bulk bar */
.ccp-filters { display: flex; gap: 10px; margin-bottom: 18px; flex-wrap: wrap; }
.ccp-filters select { padding: 8px 12px; border: 1.5px solid var(--ccp-border); border-radius: 100px; font-family: var(--ccp-sans); font-weight: 600; font-size: 0.85rem; background: #fff; }
.ccp-bulkbar {
	display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
	padding: 14px 18px; border: 1.5px solid var(--ccp-border); border-radius: 14px;
	background: var(--ccp-sand); margin: -12px 0 26px;
}
.ccp-bulkbar select { padding: 8px 12px; border: 1.5px solid var(--ccp-border); border-radius: 100px; font-weight: 600; font-size: 0.85rem; }

/* Rubric */
.ccp-rubric { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }
@media (max-width: 720px) { .ccp-rubric { grid-template-columns: 1fr; } }

/* Presenter row in detail view */
.ccp-presenter { display: flex; gap: 18px; align-items: flex-start; }

/* Agenda (standalone fallback — theme sites render via [ccapp_agenda]) */
.ccp-agenda__day {
	font-family: var(--ccp-serif); font-weight: 500; font-size: 1.3rem;
	margin: 30px 0 0; padding: 16px 20px; background: var(--ccp-charcoal); color: #fff;
	border-radius: 14px 14px 0 0;
}
.ccp-agenda__day-sessions { border: 1.5px solid var(--ccp-border); border-top: 0; border-radius: 0 0 14px 14px; margin-bottom: 18px; background: #fff; }
.ccp-session { display: flex; gap: 18px; padding: 14px 18px; border-bottom: 1px solid #EFEDE6; }
.ccp-session:last-child { border-bottom: 0; }
.ccp-session__time { flex: 0 0 150px; font-weight: 600; color: var(--ccp-accent-2); font-size: 0.86rem; font-variant-numeric: tabular-nums; }
.ccp-session__room { display: block; font-weight: 700; color: #085041; background: var(--ccp-teal-tint); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.04em; border-radius: 100px; padding: 3px 10px; margin-top: 6px; width: fit-content; }
.ccp-session__title { margin: 0 0 4px; font-size: 0.98rem; font-weight: 600; font-family: var(--ccp-sans); }
.ccp-session__track { display: inline-block; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #4A1D82; background: var(--ccp-purple-tint); border-radius: 100px; padding: 3px 10px; margin-bottom: 6px; }
.ccp-session__speakers { color: var(--ccp-faint); margin: 3px 0; font-size: 0.85rem; }
.ccp-session__more summary { cursor: pointer; color: var(--ccp-accent); font-weight: 600; font-size: 0.85rem; }
.ccp-session--hidden { display: none; }
.ccp-session--event { background: #FBFAF7; }
.ccp-session--event .ccp-session__title { font-weight: 500; color: var(--ccp-muted); }
.ccp-session__closed { font-size: 0.75em; font-weight: 700; color: var(--ccp-faint); text-transform: uppercase; letter-spacing: 0.04em; }
.ccp-row--new { background: var(--ccp-sand); }
.ccp-agenda__filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.ccp-chip { border: 1.5px solid var(--ccp-border); background: #fff; border-radius: 100px; padding: 7px 16px; cursor: pointer; font-size: 0.82rem; font-weight: 600; font-family: var(--ccp-sans); }
.ccp-chip--active { background: var(--ccp-charcoal); border-color: var(--ccp-charcoal); color: #fff; }
.ccp-agenda-picker { list-style: none !important; padding: 0 !important; margin: 0; }
.ccp-agenda-picker li { list-style: none !important; }
.ccp-agenda-picker li::marker { content: none; }
.ccp-agenda-picker li { padding: 14px 0; border-bottom: 1.5px solid var(--ccp-border); }
@media (max-width: 600px) { .ccp-session { flex-direction: column; gap: 4px; } .ccp-session__time { flex-basis: auto; } }
