/* SIS Course Non-Degree — Subject Booking: dropdown popover (shared by the
   front end and the admin workspace; see assets/js/dropdown.js). Self-contained
   tokens because the popover is attached at <body>/dialog level. */
.cndx-dd__native { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; }
.cndx-dd__pop {
	/* lives at <body>/dialog level, outside the .cndx token scope */
	--p-ink: #101828; --p-ink-2: #344054; --p-mute: #667085; --p-faint: #98a2b3;
	--p-line: #e4e7ec; --p-line-2: #eef0f3; --p-soft: #f7f8fa;
	--p-brand: #0b3d2e; --p-brand-2: #12715a; --p-brand-soft: #e9f2ef;
	position: fixed;
	z-index: 100070;
	box-sizing: border-box;
	padding: .35rem;
	border: 1px solid var(--p-line);
	border-radius: 14px;
	background: #fff;
	color: var(--p-ink-2);
	font-family: "Sis-Reg", "Sarabun", system-ui, -apple-system, sans-serif;
	font-size: 16px;
	line-height: 1.4;
	box-shadow: 0 20px 44px -14px rgba(16, 24, 40, .28), 0 2px 6px rgba(16, 24, 40, .05);
	transform-origin: top center;
	animation: cndx-dd-in .18s cubic-bezier(.16, 1, .3, 1) both;
}
.cndx-dd__pop * { box-sizing: border-box; }
.cndx-dd__pop[hidden] { display: none !important; }
.cndx-dd__pop.is-up { transform-origin: bottom center; }
.cndx-dd__pop.is-leaving { animation: cndx-dd-out .12s ease both; pointer-events: none; }
@keyframes cndx-dd-in { from { opacity: 0; transform: translateY(-4px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes cndx-dd-out { to { opacity: 0; transform: translateY(-3px) scale(.985); } }
.cndx-dd__search { position: relative; display: flex; align-items: center; margin: .1rem .1rem .35rem; }
.cndx-dd__search svg { position: absolute; left: .7rem; width: 1rem; height: 1rem; color: var(--p-faint); pointer-events: none; }
.cndx-dd__search input {
	width: 100%;
	height: 2.5rem;
	margin: 0;
	padding: 0 .75rem 0 2.2rem !important;
	border: 1px solid var(--p-line) !important;
	border-radius: 10px !important;
	background: var(--p-soft) !important;
	color: var(--p-ink);
	font: inherit;
	font-size: 16px;
	box-shadow: none !important;
	outline: none !important;
}
.cndx-dd__search input:focus { border-color: var(--p-brand-2) !important; background: #fff !important; }
.cndx-dd__list { max-height: 17rem; margin: 0; padding: 0; overflow-y: auto; overscroll-behavior: contain; list-style: none; outline: none; scrollbar-width: thin; }
.cndx-dd__opt {
	display: flex;
	align-items: center;
	gap: .6rem;
	margin: 0;
	padding: .55rem .7rem;
	border-radius: .6rem;
	color: var(--p-ink-2);
	font-size: 1rem;
	line-height: 1.35;
	list-style: none;
	cursor: pointer;
	user-select: none;
}
.cndx-dd__opt.is-active { background: var(--p-soft); color: var(--p-ink); }
.cndx-dd__opt.is-selected { color: var(--p-brand); font-weight: 700; }
.cndx-dd__opt.is-selected.is-active { background: var(--p-brand-soft); }
.cndx-dd__opt.is-all { color: var(--p-mute); }
.cndx-dd__text { flex: 1 1 auto; min-width: 0; }
.cndx-dd__count { flex: 0 0 auto; padding: 0 .4rem; border-radius: 999px; background: var(--p-line-2); color: var(--p-mute); font-size: .75rem; font-weight: 700; line-height: 1.5; }
.cndx-dd__tick {
	fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; width: 1rem; height: 1rem; color: var(--p-brand-2); opacity: 0; stroke-width: 2.4; }
.cndx-dd__opt.is-selected .cndx-dd__tick {
	fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; opacity: 1; }
.cndx-dd__none { margin: .6rem .7rem !important; color: var(--p-faint); font-size: .875rem; }
.cndx-dd__search svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.cndx-dd__chev { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.cndx-dd__group { margin: .35rem .7rem .15rem; color: var(--p-faint); font-size: .75rem; font-weight: 700; letter-spacing: .04em; list-style: none; }

.cndx-dd__opt[hidden], .cndx-dd__group[hidden], .cndx-dd__none[hidden] { display: none !important; }
.cndx-dd__opt[aria-disabled="true"] { opacity: .4; cursor: not-allowed; }
.cndx-dd__opt::before, .cndx-dd__opt::marker { content: none; }
.cndx-dd__dot { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; }
.cndx-dd__dot.cndx-tone-info { background: #2e6bd8; } .cndx-dd__dot.cndx-tone-warn { background: #f7ab39; } .cndx-dd__dot.cndx-tone-ok { background: #2fb37f; } .cndx-dd__dot.cndx-tone-brand { background: #0b3d2e; } .cndx-dd__dot.cndx-tone-mute { background: #c3c9d2; }
@media (prefers-reduced-motion: reduce) { .cndx-dd__pop, .cndx-dd__pop.is-leaving { animation: none !important; } }
