:root {
	--agenda-ink: #102646;
	--agenda-muted: #526782;
	--agenda-blue: #1b396a;
	--agenda-blue-deep: #10294f;
	--agenda-blue-soft: #e6edf7;
	--agenda-sky: #88a0c4;
	--agenda-bg: #eef3f9;
	--agenda-card: #ffffff;
	--agenda-line: #cfdae8;
}

body {
	font-family: "Trebuchet MS", "Segoe UI", sans-serif;
	color: var(--agenda-ink);
	background: var(--agenda-bg);
}

.agenda-body {
	background:
		radial-gradient(circle at top left, rgba(27, 57, 106, .22), transparent 30rem),
		linear-gradient(180deg, #edf2f8 0%, #f6f9fc 44%, #ffffff 100%);
}

.agenda-navbar {
	background: linear-gradient(90deg, rgba(16, 41, 79, .98), rgba(27, 57, 106, .94));
	backdrop-filter: blur(12px);
	box-shadow: 0 16px 38px rgba(16, 41, 79, .2);
}

.agenda-navbar .navbar-brand,
.agenda-navbar .nav-link {
	color: #fff;
}

.agenda-navbar .navbar-brand {
	display: flex;
	align-items: center;
	padding: .25rem 0;
}

.agenda-brand-copy {
	display: flex;
	flex-direction: column;
	line-height: 1.05;
}

.agenda-brand-copy small {
	font-size: .7rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .72);
}

.agenda-brand-copy strong {
	font-size: 1.02rem;
	font-weight: 900;
	letter-spacing: -.03em;
}

.agenda-navbar .nav-link {
	font-weight: 700;
}

.agenda-navbar .nav-link:hover {
	color: #d8e6fb;
}

.agenda-navbar .navbar-toggler {
	border-color: rgba(255, 255, 255, .28);
}

.agenda-navbar .navbar-toggler:focus {
	box-shadow: 0 0 0 .2rem rgba(216, 230, 251, .22);
}

.agenda-navbar .navbar-toggler-icon {
	filter: brightness(0) invert(1);
}

.institution-banner {
	padding: 1rem 0 0;
	background: linear-gradient(180deg, rgba(16, 41, 79, .08), transparent);
}

.institution-banner img {
	display: block;
	width: min(100%, 58rem);
	margin: 0 auto;
	background: #fff;
	border: 1px solid rgba(16, 41, 79, .08);
	border-radius: 1.2rem;
	padding: .8rem 1rem;
	box-shadow: 0 20px 50px rgba(16, 41, 79, .12);
}

.hero-section {
	padding: 6rem 0 4rem;
	color: #fff;
	background:
		radial-gradient(circle at top right, rgba(136, 160, 196, .35), transparent 22rem),
		linear-gradient(135deg, rgba(16, 41, 79, .98), rgba(27, 57, 106, .92)),
		linear-gradient(45deg, #10294f, #1b396a);
	position: relative;
	overflow: hidden;
}

.hero-section::after {
	content: "";
	position: absolute;
	inset: auto -8rem -10rem auto;
	width: 26rem;
	height: 26rem;
	border-radius: 50%;
	background: rgba(255, 255, 255, .08);
}

.hero-section h1 {
	font-size: clamp(2.4rem, 7vw, 5rem);
	line-height: .95;
	letter-spacing: -0.05em;
	font-weight: 900;
}

.eyebrow {
	display: inline-block;
	text-transform: uppercase;
	letter-spacing: .16em;
	font-size: .75rem;
	font-weight: 800;
	color: #dbe6f6;
	margin-bottom: .85rem;
}

.eyebrow.dark {
	color: var(--agenda-blue);
}

.hero-card,
.calendar-card,
.admin-card,
.login-card,
.stat-card {
	background: var(--agenda-card);
	border: 1px solid rgba(219, 228, 240, .9);
	border-radius: 1.25rem;
	box-shadow: 0 24px 70px rgba(16, 41, 79, .14);
}

.hero-card {
	padding: 1.4rem;
	color: var(--agenda-ink);
	transform: rotate(1deg);
}

.mini-event {
	display: flex;
	gap: .75rem;
	padding: .85rem 0;
	border-top: 1px solid var(--agenda-line);
}

.mini-event small {
	display: block;
	color: var(--agenda-muted);
}

.event-dot {
	display: inline-block;
	width: .75rem;
	height: .75rem;
	border-radius: 999px;
	margin-right: .45rem;
	vertical-align: middle;
}

.calendar-section {
	padding: 4rem 0;
}

.section-heading {
	max-width: 46rem;
	margin-bottom: 1.5rem;
}

.section-heading h1,
.section-heading h2 {
	font-weight: 900;
	letter-spacing: -0.04em;
}

.calendar-card {
	padding: 1rem;
}

.fc .fc-button-primary {
	background: var(--agenda-blue);
	border-color: var(--agenda-blue);
}

.fc .fc-button-primary:hover,
.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
	background: var(--agenda-blue-deep);
	border-color: var(--agenda-blue-deep);
}

.fc-event {
	border: 0;
	padding: .16rem .35rem;
	border-radius: .55rem;
	cursor: pointer;
}

#agendaModal .modal-dialog {
	max-width: min(60rem, calc(100vw - 2rem));
}

#agendaModal .modal-content {
	border: 0;
	border-radius: 1.5rem;
	overflow: hidden;
	background: #ffffff;
	box-shadow: 0 28px 60px rgba(16, 41, 79, .24);
}

#agendaModal .modal-header {
	padding: 1.25rem 1.4rem 1.1rem;
	border-bottom: 1px solid rgba(214, 224, 238, .9);
	background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

#agendaModal .modal-title {
	font-size: 1.45rem;
	font-weight: 900;
	letter-spacing: -.03em;
	color: #183761;
}

#agendaModal .btn-close {
	width: 2.7rem;
	height: 2.7rem;
	padding: 0;
	border: 1px solid #d7e3f2;
	border-radius: .95rem;
	background-color: #fff;
	box-shadow: 0 10px 24px rgba(20, 45, 85, .08);
	opacity: 1;
}

#agendaModal .modal-body {
	padding: 1.2rem;
	background:
		radial-gradient(circle at top left, rgba(59, 102, 243, .06), transparent 24rem),
		linear-gradient(180deg, #fbfcff 0%, #f6f9ff 100%);
}

.agenda-modal-view {
	display: grid;
	gap: 1rem;
}

.agenda-modal-hero,
.agenda-modal-section,
.agenda-inline-note {
	padding: 1rem;
	border: 1px solid rgba(205, 217, 235, .9);
	border-radius: 1.15rem;
	background: rgba(255, 255, 255, .96);
	box-shadow: 0 14px 30px rgba(20, 45, 85, .06);
}

.agenda-modal-badges,
.agenda-modal-actions,
.agenda-day-card-tags {
	display: flex;
	flex-wrap: wrap;
	gap: .65rem;
}

.agenda-tag-pill,
.agenda-state-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2rem;
	padding: .35rem .8rem;
	border-radius: 999px;
	font-size: .84rem;
	font-weight: 800;
	line-height: 1;
}

.agenda-tag-pill {
	background: #eef3ff;
	color: #335ccf;
	border: 1px solid #d8e4ff;
}

.agenda-tag-pill.is-soft {
	background: #f6f8fc;
	color: #5d7192;
	border: 1px solid #dfe7f2;
}

.agenda-state-badge.is-accepted {
	background: #eef9f3;
	color: #218657;
	border: 1px solid #cfe9da;
}

.agenda-state-badge.is-pending {
	background: #fff7e8;
	color: #b87900;
	border: 1px solid #f4ddb0;
}

.agenda-state-badge.is-correct {
	background: #faf1ff;
	color: #9352d6;
	border: 1px solid #e6d2fb;
}

.agenda-alert-note {
	margin-top: .85rem;
	padding: .85rem .95rem;
	border-radius: 1rem;
	font-size: .92rem;
	line-height: 1.5;
}

.agenda-alert-note.is-warning {
	border: 1px solid #f4d1d6;
	background: #fff4f5;
	color: #8a2b3d;
}

.agenda-modal-summary-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: .85rem;
	margin-top: 1rem;
}

.agenda-modal-metric {
	display: flex;
	gap: .75rem;
	align-items: flex-start;
	padding: .85rem .9rem;
	border-radius: 1rem;
	background: #fff;
	border: 1px solid #e3ebf7;
}

.agenda-modal-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.2rem;
	height: 2.2rem;
	border-radius: .85rem;
	background: #edf3ff;
	color: #2f61d0;
	flex: 0 0 auto;
}

.agenda-modal-icon.is-muted {
	background: #f3f6fb;
	color: #5f7698;
}

.agenda-modal-icon svg,
.agenda-day-meta svg,
.agenda-day-action svg,
.agenda-action-icon svg,
.agenda-empty-icon svg {
	width: 1.2rem;
	height: 1.2rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.agenda-modal-metric-copy {
	display: grid;
	gap: .15rem;
	min-width: 0;
}

.agenda-modal-eyebrow,
.agenda-detail-label,
.agenda-section-heading {
	display: block;
	font-size: .72rem;
	text-transform: uppercase;
	color: #6981a2;
	font-weight: 900;
	letter-spacing: .08em;
}

.agenda-modal-metric-copy strong {
	font-size: .98rem;
	line-height: 1.35;
	color: #173761;
}

.agenda-modal-metric-meta {
	font-size: .82rem;
	color: #6d83a2;
}

.agenda-detail-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .85rem;
}

.agenda-detail-item {
	padding: .95rem 1rem;
	border-radius: 1rem;
	background: rgba(255, 255, 255, .96);
	border: 1px solid #dbe6f4;
	box-shadow: 0 12px 26px rgba(20, 45, 85, .05);
}

.agenda-detail-topline {
	display: flex;
	align-items: center;
	gap: .65rem;
}

.agenda-detail-topline .agenda-modal-icon {
	width: 2rem;
	height: 2rem;
	border-radius: .75rem;
}

.agenda-detail-content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .45rem;
	margin-top: .7rem;
}

.agenda-detail-value {
	display: block;
	font-size: 1.05rem;
	line-height: 1.4;
	color: #173761;
}

.agenda-detail-chip {
	display: inline-flex;
	align-items: center;
	padding: .32rem .72rem;
	border-radius: 999px;
	background: #eef3ff;
	border: 1px solid #d8e4ff;
	color: #335ccf;
	font-size: .82rem;
	font-weight: 700;
	line-height: 1;
}

.agenda-description-card {
	margin-top: .7rem;
	padding: .95rem 1rem;
	border-radius: 1rem;
	background: #fff;
	border: 1px solid #dde7f4;
}

.agenda-description-card p {
	margin: 0;
	color: #28415f;
	line-height: 1.7;
	white-space: pre-wrap;
}

.agenda-attendee-list {
	display: grid;
	gap: .75rem;
	margin-top: .7rem;
}

.agenda-attendee-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .9rem;
	padding: .9rem 1rem;
	border: 1px solid #dce6f4;
	border-radius: 1rem;
	background: #fff;
}

.agenda-attendee-copy {
	display: grid;
	gap: .18rem;
}

.agenda-attendee-copy strong {
	color: #173761;
}

.agenda-attendee-copy span {
	color: #7085a3;
	font-size: .92rem;
}

.agenda-attendee-status {
	display: inline-flex;
	align-items: center;
	min-height: 2rem;
	padding: .35rem .8rem;
	border-radius: 999px;
	background: #f4f7fc;
	color: #557094;
	font-size: .82rem;
	font-weight: 800;
}

.agenda-empty-card {
	display: grid;
	justify-items: center;
	gap: .4rem;
	padding: 1.3rem 1rem;
	text-align: center;
	border: 1px dashed #cfdbeb;
	border-radius: 1rem;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.agenda-empty-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.1rem;
	height: 3.1rem;
	border-radius: 1rem;
	background: #eef4ff;
	color: #4a70d6;
}

.agenda-empty-card strong {
	color: #173761;
	font-size: 1rem;
}

.agenda-empty-card p {
	max-width: 24rem;
	margin: 0;
	color: #6b82a2;
	line-height: 1.55;
}

.agenda-modal-actions {
	align-items: center;
	justify-content: flex-start;
}

.agenda-modal-action-primary,
.agenda-modal-action-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	min-height: 3rem;
	padding: .85rem 1.2rem;
	border-radius: 1rem;
	font-weight: 800;
}

.agenda-modal-action-primary {
	box-shadow: 0 14px 24px rgba(31, 80, 214, .18);
}

.agenda-action-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.agenda-day-view {
	gap: .9rem;
}

.agenda-view-header p {
	margin: 0;
	color: #667d9e;
	font-size: 1rem;
	font-weight: 600;
}

.agenda-day-list {
	display: grid;
	gap: .95rem;
}

.agenda-day-card {
	width: 100%;
	padding: 1.1rem 1.15rem;
	border: 1px solid #dce6f4;
	border-left-width: 4px;
	border-radius: 1.1rem;
	background: rgba(255, 255, 255, .98);
	box-shadow: 0 16px 32px rgba(20, 45, 85, .05);
	text-align: left;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.agenda-day-card:hover,
.agenda-day-card:focus {
	transform: translateY(-1px);
	box-shadow: 0 18px 34px rgba(20, 45, 85, .1);
}

.agenda-day-card.is-accepted {
	border-left-color: #2563eb;
}

.agenda-day-card.is-pending {
	border-left-color: #f4b400;
}

.agenda-day-card.is-correct {
	border-left-color: #a855f7;
}

.agenda-day-card-head,
.agenda-day-card-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .9rem;
}

.agenda-day-title-group {
	display: flex;
	align-items: center;
	gap: .75rem;
	min-width: 0;
}

.agenda-day-title-group strong {
	font-size: 1.05rem;
	line-height: 1.35;
	color: #173761;
}

.agenda-day-dot {
	flex: 0 0 auto;
	width: .85rem;
	height: .85rem;
	border-radius: 999px;
}

.agenda-day-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .85rem 1.25rem;
	margin-top: .95rem;
	color: #556d90;
	font-size: .93rem;
}

.agenda-day-meta span,
.agenda-day-responsible,
.agenda-day-action {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
}

.agenda-day-card-foot {
	margin-top: 1rem;
}

.agenda-day-action {
	color: #2f61d0;
	font-weight: 800;
}

.agenda-day-responsible {
	margin-top: .8rem;
	color: #6981a2;
	font-size: .92rem;
}

.agenda-inline-note {
	display: flex;
	gap: .8rem;
	align-items: flex-start;
}

.agenda-inline-note strong {
	display: block;
	color: #173761;
	margin-bottom: .2rem;
}

.agenda-inline-note p {
	margin: 0;
	color: #6981a2;
	line-height: 1.55;
}

.login-wrap {
	min-height: calc(100vh - 64px);
	display: grid;
	place-items: center;
	padding: 2rem;
}

.login-card {
	width: min(100%, 30rem);
	padding: 2rem;
	margin-top: clamp(-4rem, -7vh, -2rem);
}

.password-field {
	position: relative;
}

.password-input {
	padding-right: 5.5rem;
}

.password-toggle {
	position: absolute;
	top: 50%;
	right: .75rem;
	transform: translateY(-50%);
	border: 0;
	background: transparent;
	color: var(--agenda-blue);
	padding: .2rem;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.password-toggle:hover {
	color: var(--agenda-blue-deep);
}

.password-toggle:focus-visible {
	outline: 2px solid rgba(27, 57, 106, .22);
	outline-offset: .2rem;
	border-radius: .45rem;
}

.password-toggle-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.password-toggle-icon svg {
	width: 1.25rem;
	height: 1.25rem;
}

.password-toggle-icon-visible {
	display: none;
}

.password-toggle.is-visible .password-toggle-icon-hidden {
	display: none;
}

.password-toggle.is-visible .password-toggle-icon-visible {
	display: inline-flex;
}

@media (max-width: 767.98px) {
	.login-card {
		margin-top: 0;
	}
}

.btn-primary {
	background: var(--agenda-blue);
	border-color: var(--agenda-blue);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
	background: var(--agenda-blue-deep) !important;
	border-color: var(--agenda-blue-deep) !important;
}

.btn-outline-primary {
	color: var(--agenda-blue);
	border-color: var(--agenda-blue);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
	color: #fff;
	background: var(--agenda-blue);
	border-color: var(--agenda-blue);
}

.text-bg-primary {
	background-color: var(--agenda-blue) !important;
}

.admin-body {
	--institution-accepted: #2563eb;
	--institution-pending: #f4b400;
	--institution-correct: #a855f7;
	--institution-review: #21a366;
	background:
		radial-gradient(circle at top left, rgba(27, 57, 106, .14), transparent 28rem),
		#eef2f7;
}

.admin-shell {
	min-height: 100vh;
	display: grid;
	grid-template-columns: 17rem 1fr;
	transition: grid-template-columns .28s ease;
}

.admin-sidebar {
	background:
		radial-gradient(circle at 20% 0%, rgba(136, 160, 196, .3), transparent 16rem),
		linear-gradient(180deg, #10294f 0%, #1b396a 100%);
	color: #fff;
	padding: 1.5rem;
	position: sticky;
	top: 0;
	height: 100vh;
	width: 17rem;
	transition: transform .28s ease, opacity .2s ease;
}

.admin-brand-wrap {
	margin-bottom: 1.5rem;
}

.admin-brand-image {
	display: block;
	width: 100%;
	max-width: 13rem;
	background: #fff;
	border-radius: 1rem;
	padding: .65rem .8rem;
	margin-bottom: 1rem;
	box-shadow: 0 16px 36px rgba(4, 12, 29, .24);
}

.admin-brand {
	font-size: 1.25rem;
	font-weight: 900;
	letter-spacing: -0.03em;
}

.admin-sidebar .nav-link {
	color: rgba(255, 255, 255, .78);
	border-radius: .8rem;
	padding: .75rem .9rem;
	display: flex;
	align-items: center;
	gap: .8rem;
	font-weight: 700;
	transition: color .2s ease, background-color .2s ease, transform .2s ease;
}

.admin-sidebar .nav-link:hover {
	color: #fff;
	background: rgba(255, 255, 255, .1);
	transform: translateX(.2rem);
}

.admin-sidebar .nav-link.is-active {
	color: #fff;
	background: linear-gradient(135deg, #225cff 0%, #356fff 100%);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
}

.admin-sidebar .nav-icon {
	width: 1.25rem;
	height: 1.25rem;
	flex: 0 0 1.25rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.admin-main {
	padding: 1.5rem 1.5rem 2rem;
	background:
		linear-gradient(#102F5E, #102F5E) top / 100% 6.5rem no-repeat,
		transparent;
}

.admin-topbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	margin: -1.5rem -1.5rem 1.25rem;
	padding: 1.5rem;
	min-height: 6.5rem;
}

.admin-topbar h1 {
	margin: 0;
	font-size: 1.65rem;
	font-weight: 900;
	color: #fff;
}

.admin-top-kicker {
	color: rgba(255, 255, 255, .8);
}

.admin-top-actions {
	display: flex;
	align-items: center;
	gap: .85rem;
}

.sidebar-toggle-btn {
	display: inline-flex;
	align-items: center;
	gap: .65rem;
	padding: .75rem .95rem;
	border: 1px solid rgba(255, 255, 255, .26);
	border-radius: 1rem;
	background: rgba(255, 255, 255, .12);
	color: #fff;
	font-size: .95rem;
	font-weight: 800;
	line-height: 1;
	text-decoration: none;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.sidebar-toggle-btn:hover,
.sidebar-toggle-btn:focus-visible {
	background: rgba(255, 255, 255, .2);
	border-color: rgba(255, 255, 255, .34);
	color: #fff;
	transform: translateY(-1px);
}

.sidebar-toggle-btn:focus-visible {
	outline: 2px solid rgba(255, 255, 255, .38);
	outline-offset: 2px;
}

.sidebar-toggle-btn svg {
	width: 1.1rem;
	height: 1.1rem;
	flex: 0 0 1.1rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.sidebar-toggle-btn.is-collapsed {
	background: rgba(255, 255, 255, .96);
	border-color: rgba(16, 47, 94, .08);
	box-shadow: 0 14px 30px rgba(5, 24, 54, .18);
	color: #173457;
}

.admin-body.sidebar-collapsed .admin-shell {
	grid-template-columns: 0 minmax(0, 1fr);
}

.admin-body.sidebar-collapsed .admin-sidebar {
	transform: translateX(-100%);
	opacity: 0;
	pointer-events: none;
}

.admin-bell {
	border-color: rgba(255, 255, 255, .28);
	background: rgba(255, 255, 255, .94);
}

.admin-user-pill {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .45rem .8rem .45rem .45rem;
	border-radius: 1rem;
	background: rgba(255, 255, 255, .97);
	box-shadow: 0 14px 30px rgba(5, 24, 54, .18);
}

.profile-pill-button {
	border: 0;
	color: inherit;
	text-align: left;
}

.profile-pill-button::after {
	display: none;
}

.profile-pill-button:hover,
.profile-pill-button:focus {
	background: #fff;
	color: inherit;
}

.admin-user-pill small {
	display: block;
	color: var(--agenda-muted);
}

.admin-user-pill strong {
	display: block;
	font-size: 1rem;
	line-height: 1.1;
	color: #173457;
}

.admin-user-avatar {
	display: grid;
	place-items: center;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 1rem;
	background: #204b8a;
	color: #fff;
	font-size: 1.2rem;
	font-weight: 900;
}

.admin-login-banner {
	padding: 1.5rem 1.5rem 0;
}

.admin-login-banner img {
	display: block;
	width: min(100%, 36rem);
	margin: 0 auto;
	background: #fff;
	border-radius: 1rem;
	padding: .75rem 1rem;
	box-shadow: 0 16px 42px rgba(16, 41, 79, .12);
}

.admin-card {
	padding: 1.25rem;
}

.admin-dashboard {
	display: grid;
	gap: 1.35rem;
}

.admin-hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 17rem;
	gap: 1.2rem;
	align-items: center;
}

.admin-hero-card {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.35rem 1.9rem;
	border-radius: 1.5rem;
	background:
		radial-gradient(circle at 82% 20%, rgba(255, 255, 255, .12), transparent 18rem),
		#142D55;
	box-shadow: 0 18px 34px rgba(20, 45, 85, .18);
	overflow: hidden;
}

.admin-hero-card::after {
	content: "";
	position: absolute;
	inset: auto -10% -42% 42%;
	height: 160%;
	background:
		repeating-radial-gradient(circle at left center, rgba(255, 255, 255, .14) 0 2px, transparent 2px 15px);
	opacity: .28;
	transform: rotate(-10deg);
}

.admin-hero-copy,
.admin-hero-illustration {
	position: relative;
	z-index: 1;
}

.admin-hero-copy h2 {
	margin: 0 0 .45rem;
	font-size: clamp(1.45rem, 2.4vw, 2.05rem);
	font-weight: 900;
	color: #fff;
}

.admin-hero-copy p {
	margin: 0;
	font-size: .98rem;
	color: rgba(255, 255, 255, .86);
}

.admin-hero-illustration {
	display: grid;
	place-items: center;
	min-width: 13rem;
}

.hero-calendar {
	position: relative;
	width: 9.8rem;
	padding: 1rem .8rem .75rem;
	border-radius: 1.1rem;
	background: rgba(255, 255, 255, .96);
	box-shadow: 0 16px 24px rgba(14, 25, 60, .16);
}

.hero-calendar::before,
.hero-calendar::after {
	content: "";
	position: absolute;
	top: -.7rem;
	width: .9rem;
	height: 1.2rem;
	border: 3px solid rgba(255, 255, 255, .72);
	border-bottom: 0;
	border-radius: .55rem .55rem 0 0;
}

.hero-calendar::before {
	left: 1.15rem;
}

.hero-calendar::after {
	left: 3.6rem;
}

.hero-calendar-top {
	height: .6rem;
	margin-bottom: .65rem;
	border-radius: .6rem;
	background: linear-gradient(90deg, #eef1ff 0%, #f6f7ff 100%);
}

.hero-calendar-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: .42rem;
}

.hero-calendar-grid span {
	display: block;
	aspect-ratio: 1;
	border-radius: .35rem;
	background: #ebe9ff;
}

.hero-clock {
	position: absolute;
	right: -.7rem;
	bottom: .9rem;
	width: 3.35rem;
	height: 3.35rem;
	border: .35rem solid #4b63ff;
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 10px 18px rgba(14, 25, 60, .14);
}

.hero-clock::before {
	content: "";
	position: absolute;
	inset: 50%;
	width: .34rem;
	height: .34rem;
	border-radius: 999px;
	background: #4b63ff;
	transform: translate(-50%, -50%);
}

.hero-clock-hand {
	position: absolute;
	left: 50%;
	bottom: 50%;
	width: .18rem;
	transform-origin: bottom center;
	border-radius: 999px;
	background: #3450d8;
}

.hero-clock-hand.hour {
	height: .8rem;
	transform: translateX(-50%) rotate(0deg);
}

.hero-clock-hand.minute {
	height: 1.1rem;
	transform: translateX(-50%) rotate(90deg);
}

.admin-hero-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .8rem;
	align-self: center;
	padding: .95rem 1.35rem;
	min-height: 0;
	border-radius: 1.2rem;
	background: #142D55;
	box-shadow: 0 14px 24px rgba(20, 45, 85, .16);
	color: #fff;
	font-size: 1rem;
	font-weight: 800;
	text-decoration: none;
}

.admin-hero-action:hover,
.admin-hero-action:focus {
	color: #fff;
	transform: translateY(-1px);
}

.admin-hero-action svg {
	width: 1.25rem;
	height: 1.25rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.admin-kpi-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.2rem;
}

.admin-kpi-card,
.admin-panel-card,
.admin-summary-card {
	border: 1px solid rgba(208, 220, 237, .72);
	border-radius: 1.5rem;
	background: rgba(255, 255, 255, .98);
	box-shadow: 0 16px 42px rgba(15, 48, 94, .09);
}

.admin-kpi-card {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1rem;
	align-items: center;
	padding: 1.5rem;
}

.admin-kpi-icon,
.admin-summary-icon {
	display: grid;
	place-items: center;
	width: 5.7rem;
	height: 5.7rem;
	border-radius: 1.35rem;
}

.admin-kpi-icon svg,
.admin-summary-icon svg,
.admin-panel-title svg {
	width: 2rem;
	height: 2rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.admin-kpi-icon.is-events,
.admin-summary-icon.is-next {
	background: rgba(100, 86, 255, .12);
	color: #5147f7;
}

.admin-kpi-icon.is-pending,
.admin-summary-icon.is-week {
	background: rgba(255, 162, 39, .14);
	color: #ff8a00;
}

.admin-kpi-icon.is-people,
.admin-summary-icon.is-rate {
	background: rgba(62, 201, 103, .14);
	color: #22b34d;
}

.admin-kpi-icon.is-types {
	background: rgba(47, 107, 255, .12);
	color: #226cff;
}

.admin-kpi-copy {
	display: grid;
	gap: .15rem;
}

.admin-kpi-copy span,
.admin-summary-copy span {
	color: #4f6280;
	font-weight: 700;
}

.admin-kpi-copy strong,
.admin-summary-copy strong {
	font-size: 2rem;
	line-height: 1;
	color: #182f56;
}

.admin-kpi-copy small,
.admin-summary-copy small {
	color: #7185a1;
	font-size: 1rem;
}

.admin-dashboard-grid {
	display: grid;
	grid-template-columns: minmax(0, .92fr) minmax(0, 1.48fr);
	gap: 1.25rem;
}

.admin-panel-card {
	padding: 1.45rem 1.6rem 1.2rem;
}

.admin-panel-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
}

.admin-panel-header a,
.admin-summary-copy a {
	color: #6b5ff8;
	font-weight: 800;
	text-decoration: none;
}

.admin-panel-title {
	display: inline-flex;
	align-items: center;
	gap: .8rem;
	color: #5e51f3;
}

.admin-panel-title h3 {
	margin: 0;
	font-size: 1.1rem;
	font-weight: 900;
	color: #1d3560;
}

.admin-data-table {
	margin-bottom: 0;
}

.admin-data-table thead th {
	padding: .9rem .55rem;
	border-bottom: 1px solid #edf1f7;
	color: #33476a;
	font-size: .98rem;
	font-weight: 800;
}

.admin-data-table tbody td {
	padding: .95rem .55rem;
	border-bottom: 1px solid #f1f4f9;
	color: #415675;
}

.admin-data-table tbody tr:last-child td {
	border-bottom: 0;
}

.admin-review-pill {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	padding: .35rem .7rem;
	border-radius: 999px;
	font-size: .9rem;
	font-weight: 800;
}

.admin-review-pill::before {
	content: "";
	width: .42rem;
	height: .42rem;
	border-radius: 999px;
	background: currentColor;
}

.admin-review-pill.is-pendiente {
	background: rgba(255, 177, 57, .14);
	color: #f59a23;
}

.admin-review-pill.is-aceptada {
	background: rgba(62, 201, 103, .14);
	color: #22b34d;
}

.admin-review-pill.is-rechazada {
	background: rgba(167, 85, 247, .14);
	color: #9d4edd;
}

.admin-summary-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.2rem;
}

.admin-summary-card {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 1rem;
	align-items: center;
	padding: 1.45rem 1.5rem;
	overflow: hidden;
}

.admin-summary-copy {
	display: grid;
	gap: .3rem;
}

.admin-summary-copy strong {
	font-size: 1.9rem;
}

.admin-summary-mark {
	width: 7rem;
	height: 7rem;
	opacity: .12;
}

.admin-summary-mark.is-calendar {
	border: .45rem solid #7e71ff;
	border-radius: 1.2rem;
	position: relative;
}

.admin-summary-mark.is-calendar::before {
	content: "";
	position: absolute;
	inset: .85rem;
	border-radius: .75rem;
	border: .35rem solid #7e71ff;
}

.admin-summary-mark.is-trend {
	position: relative;
}

.admin-summary-mark.is-trend::before,
.admin-summary-mark.is-trend::after {
	content: "";
	position: absolute;
	left: 15%;
	right: 12%;
	border-radius: 999px;
	background: #5e51f3;
}

.admin-summary-mark.is-trend::before {
	top: 58%;
	height: .35rem;
	transform: rotate(-28deg);
}

.admin-summary-mark.is-trend::after {
	top: 38%;
	height: .35rem;
	transform: rotate(22deg);
}

.admin-summary-mark.is-pie {
	border-radius: 999px;
	background:
		conic-gradient(#dfe8f5 0 25%, #eff4fb 25% 60%, #ccd8eb 60% 100%);
}

.reports-dashboard {
	display: grid;
	gap: 1.35rem;
}

.reports-heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}

.reports-heading h2 {
	margin: 0 0 .35rem;
	font-size: 2.35rem;
	font-weight: 900;
	color: #18345f;
}

.reports-heading p {
	margin: 0;
	font-size: 1.05rem;
	color: #6f83a1;
}

.reports-primary-action,
.reports-export {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .7rem;
	padding: .95rem 1.35rem;
	border: 0;
	border-radius: 1rem;
	background: #123f87;
	box-shadow: 0 14px 24px rgba(18, 63, 135, .16);
	color: #fff;
	font-size: 1rem;
	font-weight: 800;
	text-decoration: none;
}

.reports-heading a:hover,
.reports-action-btn:hover,
.reports-page-btn:hover:not(:disabled) {
	transform: translateY(-1px);
}

.reports-primary-action svg,
.reports-export svg,
.reports-filter svg,
.reports-search svg,
.reports-action-btn svg,
.reports-kpi-icon svg,
.reports-file-mini svg,
.reports-page-btn svg {
	width: 1.4rem;
	height: 1.4rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.reports-kpi-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.2rem;
}

.reports-kpi-card,
.reports-table-card {
	border: 1px solid rgba(208, 220, 237, .72);
	border-radius: 1.5rem;
	background: rgba(255, 255, 255, .98);
	box-shadow: 0 16px 42px rgba(15, 48, 94, .09);
}

.reports-kpi-card {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1rem;
	align-items: center;
	padding: 1.45rem;
}

.reports-kpi-icon {
	display: grid;
	place-items: center;
	width: 5.5rem;
	height: 5.5rem;
	border-radius: 1.3rem;
}

.reports-kpi-icon.is-generated {
	background: rgba(100, 86, 255, .12);
	color: #5147f7;
}

.reports-kpi-icon.is-downloads {
	background: rgba(47, 107, 255, .1);
	color: #123f87;
}

.reports-kpi-icon.is-pending {
	background: rgba(255, 177, 57, .14);
	color: #ff9800;
}

.reports-kpi-icon.is-categories {
	background: rgba(62, 201, 103, .14);
	color: #22b34d;
}

.reports-kpi-copy {
	display: grid;
	gap: .18rem;
}

.reports-kpi-copy span {
	color: #18345f;
	font-weight: 800;
}

.reports-kpi-copy strong {
	font-size: 2rem;
	line-height: 1;
	color: #142d55;
}

.reports-kpi-copy small {
	color: #70839f;
	font-size: 1rem;
}

.reports-table-card {
	padding: 1.3rem 1.35rem 1.15rem;
}

.reports-toolbar {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(0, .95fr) minmax(0, .9fr) auto;
	gap: 1rem;
	align-items: center;
	margin-bottom: 1.1rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid #edf2f8;
}

.reports-search,
.reports-filter {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .9rem 1rem;
	border: 1px solid #dce6f3;
	border-radius: 1rem;
	background: #fff;
	color: #6980a1;
}

.reports-search input,
.reports-filter select {
	width: 100%;
	border: 0;
	outline: none;
	background: transparent;
	color: #18345f;
	font-size: 1rem;
	font-weight: 700;
}

.reports-search input::placeholder {
	color: #91a2ba;
}

.reports-toolbar-actions {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: .8rem;
}

.reports-export {
	border: 1px solid #99b5df;
	background: #fff;
	box-shadow: none;
	color: #123f87;
}

.reports-data-table {
	margin-bottom: 0;
}

.reports-data-table thead th {
	padding: 1rem .6rem;
	border-bottom: 1px solid #edf1f7;
	color: #223d67;
	font-size: 1rem;
	font-weight: 900;
}

.reports-data-table tbody td {
	padding: 1rem .6rem;
	border-bottom: 1px solid #f1f4f9;
	color: #435775;
	vertical-align: middle;
}

.reports-data-table tbody tr:hover td {
	background: rgba(245, 248, 253, .78);
}

.reports-data-table tbody tr:last-child td {
	border-bottom: 0;
}

.reports-event-cell,
.reports-file-cell {
	display: grid;
	gap: .15rem;
}

.reports-event-cell {
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: .8rem;
}

.reports-file-mini {
	display: grid;
	place-items: center;
	width: 2.1rem;
	height: 2.1rem;
	border-radius: .7rem;
	background: #f2f5fb;
	color: #4e63f7;
}

.reports-event-cell strong,
.reports-file-cell strong {
	font-size: 1rem;
	font-weight: 800;
	color: #1b3560;
}

.reports-file-cell strong {
	display: block;
	max-width: 18rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.reports-file-cell small {
	color: #8091ab;
	font-size: .95rem;
}

.reports-status {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .4rem .8rem;
	border-radius: 999px;
	font-size: .95rem;
	font-weight: 800;
}

.reports-status::before {
	content: "";
	width: .42rem;
	height: .42rem;
	border-radius: 999px;
	background: currentColor;
}

.reports-status.is-disponible {
	background: rgba(62, 201, 103, .14);
	color: #22b34d;
}

.reports-status.is-generando {
	background: rgba(255, 177, 57, .14);
	color: #ff9800;
}

.reports-actions {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: .75rem;
}

.reports-action-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4rem;
	height: 3.35rem;
	border: 1px solid #dce6f3;
	border-radius: .95rem;
	background: #fff;
	color: #123f87;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
	text-decoration: none;
}

.reports-action-btn:hover {
	border-color: #99b5df;
	box-shadow: 0 10px 18px rgba(18, 63, 135, .1);
}

.reports-action-btn.is-disabled {
	opacity: .45;
	pointer-events: none;
}

.reports-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid #edf2f8;
	color: #5c7191;
	font-weight: 700;
}

.reports-pagination {
	display: inline-flex;
	align-items: center;
	gap: .8rem;
}

.reports-page-btn,
.reports-page-current,
.reports-page-size {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: .9rem;
}

.reports-page-btn {
	width: 3rem;
	height: 3rem;
	border: 1px solid #dce6f3;
	background: #fff;
	color: #45638d;
}

.reports-page-current {
	width: 3rem;
	height: 3rem;
	background: #123f87;
	color: #fff;
	font-weight: 900;
}

.reports-page-size {
	min-width: 8.5rem;
	height: 3rem;
	padding: 0 1rem;
	border: 1px solid #dce6f3;
	background: #fff;
	color: #45638d;
}

.events-dashboard {
	display: grid;
	gap: 1.35rem;
}

.events-heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}

.events-heading-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: .8rem;
}

.events-heading h2 {
	margin: 0 0 .35rem;
	font-size: 2.35rem;
	font-weight: 900;
	color: #18345f;
}

.events-heading p {
	margin: 0;
	font-size: 1.05rem;
	color: #6f83a1;
}

.events-primary-action,
.events-export {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .7rem;
	padding: .95rem 1.35rem;
	border-radius: 1rem;
	font-size: 1rem;
	font-weight: 800;
	text-decoration: none;
}

.events-primary-action {
	border: 0;
	background: linear-gradient(135deg, #3b66f3 0%, #5038ea 100%);
	box-shadow: 0 14px 24px rgba(60, 95, 232, .2);
	color: #fff;
}

.events-export {
	border: 1px solid #cfdcf0;
	background: #fff;
	color: #3a4d76;
}

.events-primary-action svg,
.events-export svg,
.events-search svg,
.events-filter svg,
.events-action-btn svg,
.events-kpi-icon svg,
.events-page-btn svg {
	width: 1.35rem;
	height: 1.35rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.events-kpi-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.2rem;
}

.events-kpi-card,
.events-table-card {
	border: 1px solid rgba(208, 220, 237, .72);
	border-radius: 1.5rem;
	background: rgba(255, 255, 255, .98);
	box-shadow: 0 16px 42px rgba(15, 48, 94, .09);
}

.events-kpi-card {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1rem;
	align-items: center;
	padding: 1.45rem;
}

.events-kpi-icon {
	display: grid;
	place-items: center;
	width: 5.5rem;
	height: 5.5rem;
	border-radius: 1.3rem;
}

.events-kpi-icon.is-total {
	background: rgba(100, 86, 255, .12);
	color: #5147f7;
}

.events-kpi-icon.is-pending {
	background: rgba(255, 177, 57, .14);
	color: #ff9800;
}

.events-kpi-icon.is-approved {
	background: rgba(62, 201, 103, .14);
	color: #22b34d;
}

.events-kpi-icon.is-rejected {
	background: rgba(168, 85, 247, .14);
	color: #9d4edd;
}

.events-kpi-copy {
	display: grid;
	gap: .18rem;
}

.events-kpi-copy span {
	color: #18345f;
	font-weight: 800;
}

.events-kpi-copy strong {
	font-size: 2rem;
	line-height: 1;
	color: #142d55;
}

.events-kpi-copy small {
	color: #70839f;
	font-size: 1rem;
}

.events-table-card {
	padding: 1.35rem 1.35rem 1.15rem;
}

.events-toolbar {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, .95fr) minmax(0, .95fr);
	gap: .9rem;
	align-items: center;
	margin-bottom: 1.15rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid #edf2f8;
}

.events-search,
.events-filter {
	display: flex;
	align-items: center;
	gap: .7rem;
	padding: .82rem 1rem;
	border: 1px solid #dce6f3;
	border-radius: .95rem;
	background: #fff;
	color: #7083a2;
}

.events-search {
	justify-content: space-between;
}

.events-search input,
.events-filter select,
.events-reject-form textarea {
	width: 100%;
	border: 0;
	outline: none;
	background: transparent;
	color: #18345f;
	font-size: 1rem;
	font-weight: 700;
}

.events-search input::placeholder,
.events-reject-form textarea::placeholder {
	color: #91a2ba;
}

.events-review-shell {
	padding-bottom: 1.25rem;
}

.events-review-list {
	display: grid;
	gap: 1rem;
}

.events-review-card {
	display: grid;
	grid-template-columns: minmax(0, 1.9fr) minmax(17rem, .9fr);
	border: 1px solid #e1e9f5;
	border-left: 4px solid #2563eb;
	border-radius: 1.35rem;
	background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
	box-shadow: 0 16px 36px rgba(17, 49, 93, .08);
	overflow: hidden;
}

.events-review-card.is-pendiente {
	border-left-color: #ff9800;
}

.events-review-card.is-aceptada {
	border-left-color: #22b34d;
}

.events-review-card.is-rechazada {
	border-left-color: #9d4edd;
}

.events-review-main {
	display: grid;
	gap: 1rem;
	padding: 1.2rem 1.25rem;
}

.events-review-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}

.events-review-title-block {
	display: flex;
	align-items: flex-start;
	gap: .9rem;
	min-width: 0;
}

.events-review-icon {
	display: grid;
	place-items: center;
	width: 3.3rem;
	height: 3.3rem;
	border-radius: 1rem;
	background: #f5f8ff;
	color: #426be8;
	flex: 0 0 auto;
}

.events-review-card.is-pendiente .events-review-icon {
	background: rgba(255, 177, 57, .12);
	color: #ff9800;
}

.events-review-card.is-aceptada .events-review-icon {
	background: rgba(62, 201, 103, .12);
	color: #22b34d;
}

.events-review-card.is-rechazada .events-review-icon {
	background: rgba(168, 85, 247, .12);
	color: #9d4edd;
}

.events-review-icon svg {
	width: 1.35rem;
	height: 1.35rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.events-review-copy {
	display: grid;
	gap: .2rem;
	min-width: 0;
}

.events-review-copy h3 {
	margin: 0;
	font-size: 1.45rem;
	font-weight: 900;
	line-height: 1.15;
	color: #142d55;
}

.events-review-copy p {
	margin: 0;
	color: #70839f;
	font-size: .98rem;
	font-weight: 600;
}

.events-review-state {
	display: grid;
	justify-items: end;
	gap: .35rem;
	text-align: right;
}

.events-review-state small {
	color: #7a8fab;
	font-size: .9rem;
	font-weight: 700;
}

.events-review-meta-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: .85rem;
}

.events-review-meta-item {
	display: grid;
	gap: .2rem;
	padding: .9rem .95rem;
	border: 1px solid #e5ecf7;
	border-radius: 1rem;
	background: #fff;
}

.events-review-meta-item span {
	color: #7b8ea8;
	font-size: .78rem;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.events-review-meta-item strong {
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.35;
	color: #173761;
}

.events-review-context-grid {
	display: grid;
}

.events-context-card {
	border: 1px solid #e3eaf6;
	border-radius: 1rem;
	background: #fbfdff;
	overflow: hidden;
}

.events-context-card summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .95rem 1rem;
	list-style: none;
	cursor: pointer;
}

.events-context-card summary::-webkit-details-marker {
	display: none;
}

.events-context-card summary div {
	display: grid;
	gap: .2rem;
}

.events-context-card summary strong {
	color: #173761;
	font-size: .94rem;
}

.events-context-card summary span,
.events-context-card summary small {
	color: #6f83a0;
	font-size: .93rem;
	line-height: 1.45;
}

.events-context-card summary small {
	font-weight: 800;
	color: #315fd2;
	white-space: nowrap;
}

.events-context-body {
	display: grid;
	gap: .8rem;
	padding: 0 1rem 1rem;
}

.events-context-note {
	padding: .9rem .95rem;
	border: 1px solid #e4ebf6;
	border-radius: .95rem;
	background: #fff;
}

.events-context-note.is-rejected {
	border-color: #e7d7f8;
	background: #fbf7ff;
}

.events-context-note strong {
	display: block;
	margin-bottom: .3rem;
	color: #173761;
	font-size: .92rem;
}

.events-context-note p {
	margin: 0;
	color: #576f91;
	line-height: 1.65;
	white-space: pre-wrap;
}

.events-type-pill {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	font-weight: 700;
	color: #223d67;
}

.events-status {
	display: inline-flex;
	align-items: center;
	gap: .42rem;
	padding: .38rem .8rem;
	border-radius: 999px;
	font-size: .95rem;
	font-weight: 800;
}

.events-status::before {
	content: "";
	width: .42rem;
	height: .42rem;
	border-radius: 999px;
	background: currentColor;
}

.events-status.is-pendiente {
	background: rgba(255, 177, 57, .14);
	color: #ff9800;
}

.events-status.is-aceptada {
	background: rgba(62, 201, 103, .14);
	color: #22b34d;
}

.events-status.is-rechazada {
	background: rgba(168, 85, 247, .14);
	color: #9d4edd;
}

.events-action-panel {
	display: grid;
	align-content: start;
	gap: 1rem;
	padding: 1.2rem;
	border-left: 1px solid #ebf0f8;
	background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.events-action-panel-head {
	display: grid;
	gap: .3rem;
}

.events-action-panel-head strong {
	color: #173761;
	font-size: 1rem;
	font-weight: 900;
}

.events-action-panel-head span {
	color: #6f83a0;
	font-size: .92rem;
	line-height: 1.5;
}

.events-action-primary-grid,
.events-action-secondary-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .7rem;
}

.events-action-primary-grid form,
.events-action-secondary-grid a,
.events-action-panel > form {
	min-width: 0;
}

.events-action-btn,
.events-reject-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .45rem;
	min-height: 2.9rem;
	padding: 0 .9rem;
	border: 1px solid #dce6f3;
	border-radius: .9rem;
	background: #fff;
	color: #4b5e85;
	font-size: .95rem;
	font-weight: 800;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.events-action-btn.is-wide,
.events-action-panel > form .events-action-btn {
	width: 100%;
}

.events-action-btn:hover,
.events-primary-action:hover,
.events-export:hover,
.events-reject-submit:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 18px rgba(18, 63, 135, .08);
}

.events-action-btn.is-success {
	background: linear-gradient(135deg, #2fc363 0%, #22b34d 100%);
	color: #fff;
	border-color: transparent;
	box-shadow: 0 14px 24px rgba(34, 179, 77, .18);
}

.events-action-btn.is-soft-danger {
	background: #fff;
}

.events-action-btn.is-danger {
	background: linear-gradient(135deg, #ff5c5c 0%, #ef4444 100%);
	color: #fff;
	border-color: transparent;
	box-shadow: 0 14px 24px rgba(239, 68, 68, .15);
}

.events-action-secondary-grid .events-action-btn {
	background: #fff;
	color: #365172;
	border-color: #d8e4f3;
	box-shadow: none;
}

.events-action-btn.is-soft-danger {
	color: #d94a4a;
	border-color: rgba(239, 68, 68, .24);
	background: rgba(255, 244, 244, .92);
	box-shadow: none;
}

.events-reject-box {
	display: grid;
	gap: .65rem;
	min-width: 0;
}

.events-reject-box summary {
	list-style: none;
	cursor: pointer;
}

.events-reject-box summary::-webkit-details-marker {
	display: none;
}

.events-reject-form {
	display: grid;
	gap: .55rem;
	padding: .85rem;
	border: 1px solid #f2d1d1;
	border-radius: 1rem;
	background: #fff7f7;
	min-width: 14rem;
}

.events-reject-form label {
	display: grid;
	gap: .45rem;
}

.events-reject-form label span {
	color: #8c4250;
	font-size: .9rem;
	font-weight: 800;
}

.events-reject-form textarea {
	resize: vertical;
	min-height: 4.3rem;
	font-weight: 600;
}

.events-reject-submit {
	border-color: #ef4444;
	background: #ef4444;
	color: #fff;
}

.events-review-resolution {
	display: grid;
	gap: .35rem;
	padding: .95rem 1rem;
	border-radius: 1rem;
	border: 1px solid #dfe9f5;
	background: #f9fbff;
}

.events-review-resolution strong {
	font-size: .96rem;
	font-weight: 900;
}

.events-review-resolution span {
	font-size: .92rem;
	line-height: 1.55;
	color: #607695;
}

.events-review-resolution.is-aceptada {
	background: #f4fcf6;
	border-color: #d5ebd9;
}

.events-review-resolution.is-aceptada strong {
	color: #1f8e49;
}

.events-review-resolution.is-rechazada {
	background: #fbf7ff;
	border-color: #eadbfb;
}

.events-review-resolution.is-rechazada strong {
	color: #8a43d5;
}

.events-empty-state {
	display: grid;
	justify-items: center;
	gap: .45rem;
	padding: 2rem 1rem;
	border: 1px dashed #d4dfed;
	border-radius: 1.25rem;
	background: linear-gradient(180deg, #fcfdff 0%, #f8fbff 100%);
	text-align: center;
}

.events-empty-icon {
	display: inline-grid;
	place-items: center;
	width: 4rem;
	height: 4rem;
	border-radius: 1.1rem;
	background: #eef4ff;
	color: #4168d8;
}

.events-empty-icon svg {
	width: 1.55rem;
	height: 1.55rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.events-empty-state strong {
	color: #173761;
	font-size: 1.05rem;
}

.events-empty-state p {
	max-width: 28rem;
	margin: 0;
	color: #6f83a0;
	line-height: 1.6;
}

.events-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid #edf2f8;
	color: #5c7191;
	font-weight: 700;
}

.events-page-btn,
.events-page-current,
.events-page-size {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: .9rem;
}

.events-page-btn {
	width: 3rem;
	height: 3rem;
	border: 1px solid #dce6f3;
	background: #fff;
	color: #45638d;
}

.events-page-current {
	width: 3rem;
	height: 3rem;
	background: linear-gradient(135deg, #3b66f3 0%, #5038ea 100%);
	color: #fff;
	font-weight: 900;
}

.events-page-size {
	min-width: 8.5rem;
	height: 3rem;
	padding: 0 1rem;
	border: 1px solid #dce6f3;
	background: #fff;
	color: #45638d;
}

.types-dashboard {
	display: grid;
	gap: 1.35rem;
}

.types-heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}

.types-heading h2 {
	margin: 0 0 .35rem;
	font-size: 2.35rem;
	font-weight: 900;
	color: #18345f;
}

.types-heading p {
	margin: 0;
	font-size: 1.05rem;
	color: #6f83a1;
	max-width: 44rem;
}

.types-primary-action,
.types-save-btn,
.types-reset-btn,
.types-action-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55rem;
	border-radius: .95rem;
	font-size: .96rem;
	font-weight: 800;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.types-primary-action {
	padding: .95rem 1.35rem;
	border: 0;
	background: linear-gradient(135deg, #3b66f3 0%, #5038ea 100%);
	box-shadow: 0 14px 24px rgba(60, 95, 232, .2);
	color: #fff;
}

.types-primary-action svg,
.types-search svg,
.types-action-btn svg,
.types-kpi-icon svg {
	width: 1.35rem;
	height: 1.35rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.types-kpi-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.2rem;
}

.types-kpi-card,
.types-form-card,
.types-table-card {
	border: 1px solid rgba(208, 220, 237, .72);
	border-radius: 1.5rem;
	background: rgba(255, 255, 255, .98);
	box-shadow: 0 16px 42px rgba(15, 48, 94, .09);
}

.types-kpi-card {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1rem;
	align-items: center;
	padding: 1.45rem;
}

.types-kpi-icon {
	display: grid;
	place-items: center;
	width: 5.2rem;
	height: 5.2rem;
	border-radius: 1.2rem;
}

.types-kpi-icon.is-total {
	background: rgba(100, 86, 255, .12);
	color: #5147f7;
}

.types-kpi-icon.is-description {
	background: rgba(47, 107, 255, .1);
	color: #2563eb;
}

.types-kpi-icon.is-usage {
	background: rgba(62, 201, 103, .14);
	color: #22b34d;
}

.types-kpi-copy {
	display: grid;
	gap: .18rem;
}

.types-kpi-copy span {
	color: #18345f;
	font-weight: 800;
}

.types-kpi-copy strong {
	font-size: 2rem;
	line-height: 1;
	color: #142d55;
}

.types-kpi-copy small {
	color: #70839f;
	font-size: 1rem;
}

.types-layout {
	display: grid;
	grid-template-columns: minmax(18rem, 27rem) minmax(0, 1fr);
	gap: 1.35rem;
	align-items: start;
}

.types-form-card,
.types-table-card {
	padding: 1.35rem;
}

.types-section-head h3 {
	margin: 0 0 .25rem;
	font-size: 1.55rem;
	font-weight: 900;
	color: #18345f;
}

.types-section-head p {
	margin: 0 0 1.15rem;
	color: #70839f;
}

.types-field {
	display: grid;
	gap: .45rem;
	margin-bottom: 1rem;
}

.types-field span {
	color: #18345f;
	font-weight: 800;
}

.types-field input,
.types-field textarea,
.types-search input {
	width: 100%;
	padding: .9rem 1rem;
	border: 1px solid #dce6f3;
	border-radius: 1rem;
	outline: none;
	background: #fff;
	color: #18345f;
	font-size: 1rem;
	font-weight: 700;
}

.types-field textarea {
	resize: vertical;
	min-height: 8rem;
}

.types-field input::placeholder,
.types-search input::placeholder {
	color: #91a2ba;
}

.types-form-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem;
}

.types-save-btn {
	padding: .92rem 1.2rem;
	border: 0;
	background: #123f87;
	box-shadow: 0 14px 24px rgba(18, 63, 135, .16);
	color: #fff;
}

.types-reset-btn {
	padding: .92rem 1.2rem;
	border: 1px solid #dce6f3;
	background: #fff;
	color: #45638d;
}

.types-toolbar {
	margin-bottom: 1rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid #edf2f8;
}

.types-search {
	display: flex;
	align-items: center;
	gap: .7rem;
}

.types-search input {
	padding-right: 3rem;
}

.types-search {
	position: relative;
}

.types-search svg {
	position: absolute;
	right: 1rem;
	color: #91a2ba;
}

.types-data-table {
	margin-bottom: 0;
}

.types-data-table thead th {
	padding: 1rem .9rem;
	border-bottom: 1px solid #edf1f7;
	color: #223d67;
	font-size: 1rem;
	font-weight: 900;
}

.types-data-table tbody td {
	padding: 1rem .9rem;
	border-bottom: 1px solid #f1f4f9;
	color: #435775;
	vertical-align: middle;
}

.types-data-table tbody tr:hover td {
	background: rgba(245, 248, 253, .78);
}

.types-name-cell {
	display: grid;
	gap: .15rem;
}

.types-name-cell strong {
	font-size: 1rem;
	font-weight: 900;
	color: #142d55;
}

.types-name-cell small {
	color: #8091ab;
}

.types-usage-pill {
	display: inline-flex;
	align-items: center;
	padding: .38rem .8rem;
	border-radius: 999px;
	background: rgba(47, 107, 255, .1);
	color: #2563eb;
	font-size: .95rem;
	font-weight: 800;
}

.types-actions {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: .65rem;
}

.types-action-btn {
	min-height: 2.85rem;
	padding: 0 .95rem;
	border: 1px solid #dce6f3;
	background: #fff;
	color: #4b5e85;
}

.types-action-btn.is-danger {
	color: #ef4444;
	border-color: rgba(239, 68, 68, .22);
}

.types-action-note {
	display: inline-flex;
	align-items: center;
	min-height: 2.85rem;
	padding: 0 .9rem;
	border: 1px solid #dce6f3;
	border-radius: .95rem;
	background: #f8fafc;
	color: #64748b;
	font-size: .9rem;
	font-weight: 800;
}

.types-primary-action:hover,
.types-save-btn:hover,
.types-reset-btn:hover,
.types-action-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 18px rgba(18, 63, 135, .08);
}

.institution-body {
	--institution-accepted: #2563eb;
	--institution-pending: #f4b400;
	--institution-correct: #a855f7;
	--institution-review: #21a366;
	background:
		radial-gradient(circle at top right, rgba(37, 99, 235, .12), transparent 24rem),
		linear-gradient(180deg, #eef3f9 0%, #f7faff 100%);
}

.institution-shell {
	min-height: 100vh;
	display: grid;
	grid-template-columns: 16.5rem minmax(0, 1fr);
	transition: grid-template-columns .28s ease;
}

.institution-sidebar {
	position: sticky;
	top: 0;
	height: 100vh;
	display: flex;
	flex-direction: column;
	padding: 1.25rem;
	background: #10294f;
	color: #fff;
	overflow: auto;
	width: 16.5rem;
	transition: transform .28s ease, opacity .2s ease;
}

.institution-brand {
	display: grid;
	gap: .45rem;
	margin-bottom: 1.25rem;
}

.institution-brand img {
	width: 100%;
	padding: .6rem .7rem;
	border-radius: .75rem;
	background: #fff;
}

.institution-brand strong {
	font-size: 1.1rem;
	line-height: 1.1;
}

.institution-brand span {
	color: rgba(255, 255, 255, .72);
	font-size: .9rem;
}

.institution-nav {
	display: grid;
	gap: .4rem;
	margin-bottom: 1rem;
}

.institution-nav a {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .72rem .8rem;
	border-radius: .65rem;
	color: rgba(255, 255, 255, .82);
	font-weight: 700;
	text-decoration: none;
}

.institution-logout-link {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-top: auto;
	padding: .72rem .8rem;
	border-radius: .65rem;
	color: rgba(255, 255, 255, .82);
	font-weight: 700;
	text-decoration: none;
}

.institution-nav a:hover,
.institution-nav a:focus,
.institution-logout-link:hover,
.institution-logout-link:focus {
	background: rgba(255, 255, 255, .11);
	color: #fff;
}

.institution-nav svg,
.institution-logout-link svg {
	width: 1.2rem;
	height: 1.2rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.institution-sidebar-sections {
	display: grid;
	gap: .75rem;
	padding-top: .25rem;
	margin-bottom: 1rem;
}

.sidebar-panel {
	padding: .85rem;
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: .7rem;
	background: rgba(255, 255, 255, .06);
}

.sidebar-panel-collapsible {
	padding: 0;
	overflow: hidden;
}

.sidebar-panel-summary {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: .75rem;
	padding: .85rem;
	cursor: pointer;
	list-style: none;
}

.sidebar-panel-summary::-webkit-details-marker {
	display: none;
}

.sidebar-panel-heading {
	min-width: 0;
}

.sidebar-panel-summary-actions {
	display: inline-flex;
	align-items: flex-start;
	gap: .4rem;
	margin-left: auto;
	padding-top: .05rem;
}

.sidebar-panel-content {
	padding: 0 .85rem .85rem;
}

.sidebar-panel-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.1rem;
	height: 1.1rem;
	padding: 0 .28rem;
	border-radius: 999px;
	background: #e53935;
	color: #fff;
	font-size: .68rem;
	font-weight: 900;
	line-height: 1;
}

.sidebar-panel-arrow {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.4rem;
	height: 1.4rem;
	color: rgba(255, 255, 255, .78);
	font-size: 1.05rem;
	font-weight: 900;
	line-height: 1;
	transform: rotate(90deg);
	transition: transform .18s ease, color .18s ease;
}

.sidebar-panel-collapsible:not([open]) .sidebar-panel-arrow {
	transform: rotate(0deg);
}

.sidebar-panel-summary:hover .sidebar-panel-arrow,
.sidebar-panel-summary:focus-visible .sidebar-panel-arrow {
	color: #fff;
}

.sidebar-panel-summary:focus-visible {
	outline: 2px solid rgba(255, 255, 255, .22);
	outline-offset: -2px;
	border-radius: .7rem;
}

.sidebar-panel-alert {
	border-color: rgba(255, 185, 185, .3);
	background: rgba(123, 20, 41, .18);
}

.sidebar-kicker {
	display: block;
	margin-bottom: .3rem;
	color: rgba(255, 255, 255, .7);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.sidebar-panel strong {
	display: block;
	margin-bottom: .35rem;
	font-size: 1rem;
	line-height: 1.2;
}

.sidebar-panel p,
.sidebar-panel span,
.sidebar-empty {
	color: rgba(255, 255, 255, .76);
}

.sidebar-panel .sidebar-panel-badge {
	color: #fff;
}

.sidebar-panel .sidebar-panel-arrow {
	color: rgba(255, 255, 255, .78);
}

.sidebar-panel .btn-light {
	font-weight: 700;
}

.sidebar-stat-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .45rem;
	margin-top: .45rem;
}

.sidebar-stat-grid div {
	padding: .55rem;
	border-radius: .55rem;
	background: rgba(255, 255, 255, .08);
}

.sidebar-stat-grid span {
	display: block;
	font-size: .72rem;
	font-weight: 700;
}

.sidebar-stat-grid strong {
	margin: .15rem 0 0;
	font-size: 1.25rem;
}

.sidebar-mini-list {
	display: grid;
	gap: .45rem;
	margin-top: .45rem;
}

.sidebar-mini-item {
	display: grid;
	gap: .15rem;
	padding: .6rem;
	border-radius: .55rem;
	background: rgba(255, 255, 255, .08);
	color: #fff;
	text-decoration: none;
}

.sidebar-mini-item:hover,
.sidebar-mini-item:focus {
	background: rgba(255, 255, 255, .14);
	color: #fff;
}

.sidebar-mini-item.is-static {
	cursor: default;
}

.sidebar-mini-item b {
	font-size: .92rem;
	font-weight: 800;
}

.sidebar-mini-item span {
	font-size: .82rem;
}

.sidebar-mini-item .status-pill {
	width: fit-content;
	margin-top: .1rem;
}

.institution-main {
	padding: 1.5rem;
	background:
		linear-gradient(#102F5E, #102F5E) top / 100% 6.5rem no-repeat,
		transparent;
}

.institution-topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.25rem;
}

.institution-topbar h1 {
	margin: 0;
	font-size: 1.65rem;
	font-weight: 900;
	color: #fff;
}

.institution-top-kicker {
	color: rgba(255, 255, 255, .8);
}

.institution-top-actions {
	display: flex;
	align-items: center;
	gap: .85rem;
}

.institution-body.sidebar-collapsed .institution-shell {
	grid-template-columns: 0 minmax(0, 1fr);
}

.institution-body.sidebar-collapsed .institution-sidebar {
	transform: translateX(-100%);
	opacity: 0;
	pointer-events: none;
}

.institution-bell {
	border-color: rgba(255, 255, 255, .28);
	background: rgba(255, 255, 255, .94);
}

.institution-user-pill {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .45rem .8rem .45rem .45rem;
	border-radius: 1rem;
	background: rgba(255, 255, 255, .97);
	box-shadow: 0 14px 30px rgba(5, 24, 54, .18);
}

.institution-user-pill small {
	display: block;
	color: var(--agenda-muted);
	line-height: 1;
}

.institution-user-pill strong {
	display: block;
	font-size: .95rem;
	line-height: 1.2;
}

.institution-user-avatar {
	display: grid;
	place-items: center;
	width: 2.45rem;
	height: 2.45rem;
	border-radius: 999px;
	background: #173a72;
	color: #fff;
	font-weight: 800;
}

.institution-hero,
.institution-panel,
.institution-stat {
	border: 1px solid rgba(207, 218, 232, .95);
	border-radius: .75rem;
	background: #fff;
	box-shadow: 0 18px 45px rgba(16, 41, 79, .1);
}

.institution-hero {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	align-items: center;
	padding: 1.25rem;
	margin-bottom: 1rem;
}

.institution-hero h2 {
	max-width: 48rem;
	margin: 0 0 .35rem;
	font-size: 1.55rem;
	font-weight: 900;
}

.institution-hero p {
	max-width: 54rem;
	margin: 0;
	color: var(--agenda-muted);
}

.institution-stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: .85rem;
	margin-bottom: 1rem;
}

.institution-stat {
	padding: 1rem;
	border-left: .3rem solid var(--agenda-blue);
}

.institution-stat span {
	display: block;
	color: var(--agenda-muted);
	font-weight: 700;
}

.institution-stat strong {
	display: block;
	margin-top: .25rem;
	font-size: 2rem;
	line-height: 1;
}

.institution-stat.is-pending {
	border-left-color: #f0ad4e;
}

.institution-stat.is-accepted {
	border-left-color: #198754;
}

.institution-stat.is-rejected {
	border-left-color: #dc3545;
}

.institution-calendar-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
}

.institution-calendar-main {
	min-width: 0;
}

.calendar-dashboard-card {
	border: 1px solid rgba(207, 218, 232, .95);
	border-radius: 1rem;
	background: #fff;
	box-shadow: 0 24px 60px rgba(16, 41, 79, .12);
	overflow: hidden;
}

.calendar-card-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.2rem;
	border-bottom: 1px solid rgba(207, 218, 232, .75);
}

.calendar-card-title {
	display: flex;
	align-items: center;
	gap: .9rem;
}

.calendar-card-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: .8rem;
}

.calendar-card-icon {
	display: grid;
	place-items: center;
	width: 2.8rem;
	height: 2.8rem;
	border-radius: .8rem;
	background: #eef4ff;
	color: #173a72;
}

.calendar-card-icon svg {
	width: 1.4rem;
	height: 1.4rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.9;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.calendar-card-header h2 {
	margin: 0 0 .2rem;
	font-size: 1.4rem;
	font-weight: 900;
}

.calendar-card-header p {
	margin: 0;
	color: var(--agenda-muted);
}

.calendar-main-card {
	padding: 1rem;
}

.calendar-main-card .fc {
	min-height: 42rem;
}

.calendar-chip-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: .55rem;
}

.calendar-primary-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .7rem;
	padding: .8rem 1.15rem;
	border-radius: 1rem;
	background: linear-gradient(135deg, #3b66f3 0%, #5038ea 100%);
	box-shadow: 0 14px 24px rgba(60, 95, 232, .18);
	color: #fff;
	font-size: .96rem;
	font-weight: 800;
	text-decoration: none;
}

.calendar-primary-action:hover,
.calendar-primary-action:focus {
	color: #fff;
	transform: translateY(-1px);
}

.calendar-primary-action svg {
	width: 1.2rem;
	height: 1.2rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.calendar-chip {
	display: inline-flex;
	align-items: center;
	padding: .4rem .75rem;
	border-radius: 999px;
	font-size: .82rem;
	font-weight: 800;
}

.chip-accepted {
	background: rgba(37, 99, 235, .12);
	color: var(--institution-accepted);
}

.chip-pending {
	background: rgba(244, 180, 0, .14);
	color: #a16800;
}

.chip-correct {
	background: rgba(168, 85, 247, .12);
	color: var(--institution-correct);
}

.calendar-status-legend {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 1.2rem;
	padding: .35rem .1rem 0;
	color: var(--agenda-blue-deep);
	font-weight: 700;
}

.calendar-status-legend span {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
}

.legend-dot {
	width: .8rem;
	height: .8rem;
	flex: 0 0 .8rem;
	border-radius: 999px;
	display: inline-block;
}

.legend-dot.is-accepted {
	background: var(--institution-accepted);
}

.legend-dot.is-pending {
	background: var(--institution-pending);
}

.legend-dot.is-correct {
	background: var(--institution-correct);
}

.institution-panel {
	padding: 1rem;
	margin-bottom: 1rem;
}

.institution-panel-header {
	display: flex;
	justify-content: space-between;
	align-items: start;
	gap: 1rem;
	margin-bottom: .75rem;
}

.institution-panel-header h2 {
	margin: 0;
	font-size: 1.2rem;
	font-weight: 900;
}

.status-pill {
	display: inline-flex;
	align-items: center;
	padding: .25rem .55rem;
	border-radius: 999px;
	font-size: .8rem;
	font-weight: 800;
}

.status-aceptada {
	background: rgba(37, 99, 235, .12);
	color: var(--institution-accepted);
}

.status-pendiente {
	background: rgba(244, 180, 0, .16);
	color: #a16800;
}

.status-rechazada {
	background: rgba(168, 85, 247, .14);
	color: var(--institution-correct);
}

.sidebar-stat-grid div:nth-child(1) strong,
.sidebar-stat-grid div:nth-child(1) span {
	color: #fff;
}

.sidebar-stat-grid div:nth-child(2) strong {
	color: var(--institution-pending);
}

.sidebar-stat-grid div:nth-child(3) strong {
	color: var(--institution-accepted);
}

.sidebar-stat-grid div:nth-child(4) strong {
	color: var(--institution-correct);
}

.sidebar-panel-alert .sidebar-mini-item {
	background: rgba(168, 85, 247, .13);
}

.institution-nav a.is-active {
	background: linear-gradient(135deg, #225cff 0%, #356fff 100%);
	color: #fff;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
}

.calendar-main-card .fc .fc-toolbar.fc-header-toolbar {
	margin-bottom: 1rem;
}

.calendar-main-card .fc .fc-toolbar-title {
	font-size: clamp(1.8rem, 2vw, 2.4rem);
	font-weight: 900;
	color: #12356b;
}

.calendar-main-card .fc .fc-button-primary {
	background: #fff;
	border-color: #d9e4f2;
	color: #12356b;
	box-shadow: none;
}

.calendar-main-card .fc .fc-button-primary:hover,
.calendar-main-card .fc .fc-button-primary:not(:disabled).fc-button-active,
.calendar-main-card .fc .fc-button-primary:not(:disabled):active {
	background: #2563eb;
	border-color: #2563eb;
	color: #fff;
}

.calendar-main-card .fc .fc-daygrid-day-number,
.calendar-main-card .fc .fc-col-header-cell-cushion {
	color: #12356b;
	font-weight: 800;
	text-decoration: none;
}

.calendar-main-card .fc .fc-daygrid-day.fc-day-today {
	background: rgba(244, 180, 0, .1);
}

.calendar-main-card .fc .fc-daygrid-event {
	border: 0;
	border-radius: 0;
	padding: .14rem .2rem;
	font-weight: 700;
	box-shadow: none;
	cursor: pointer;
}

.calendar-main-card .fc .fc-event-title,
.calendar-main-card .fc .fc-event-time {
	color: inherit;
}

.calendar-main-card .fc .calendar-state-aceptada {
	background: transparent;
	color: #1264ff;
}

.calendar-main-card .fc .calendar-state-pendiente {
	background: transparent;
	color: #1264ff;
}

.calendar-main-card .fc .calendar-state-rechazada {
	background: transparent;
	color: #1264ff;
}

.calendar-inline-event {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	max-width: 100%;
	min-width: 0;
	color: #1264ff;
	font-weight: 800;
	line-height: 1.2;
}

.calendar-inline-dot {
	display: inline-block;
	flex: 0 0 auto;
	width: .55rem;
	height: .55rem;
	border-radius: 999px;
}

.calendar-inline-title {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.event-form-layout {
	max-width: 100%;
}

.event-form-layout fieldset {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.event-form-layout fieldset:disabled .form-control,
.event-form-layout fieldset:disabled .form-select,
.event-form-layout fieldset:disabled .form-check-input {
	opacity: 1;
	cursor: default;
}

.event-form-layout fieldset:disabled .form-control,
.event-form-layout fieldset:disabled .form-select {
	background: #f8fbff;
	color: #173457;
}

.event-form-layout fieldset:disabled .responsible-option,
.event-form-layout fieldset:disabled .attendee-option {
	pointer-events: none;
}

.agenda-request-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(18rem, 24rem);
	gap: 1.25rem;
	align-items: start;
}

.agenda-request-main {
	display: grid;
	gap: 1rem;
	min-width: 0;
}

.agenda-request-side {
	position: sticky;
	top: 1rem;
	display: grid;
	gap: 1rem;
	min-width: 0;
}

.event-form-panel,
.agenda-preview-card,
.agenda-capture-checklist {
	border: 1px solid rgba(207, 218, 232, .9);
	border-radius: 1rem;
	background: #fff;
	box-shadow: 0 14px 34px rgba(16, 41, 79, .08);
}

.event-form-panel {
	padding: 1rem;
}

.event-form-section-title {
	margin-top: .4rem;
	padding: 0 0 .55rem;
	border-bottom: 1px solid var(--agenda-line);
	color: var(--agenda-blue);
	font-size: .85rem;
	font-weight: 800;
	letter-spacing: .035em;
	text-transform: uppercase;
}

.event-form-layout .form-label {
	margin-bottom: .35rem;
	font-weight: 650;
}

.event-form-layout textarea {
	resize: vertical;
}

.event-schedule-shell {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(6.75rem, 7.5rem);
	gap: 1rem;
	align-items: stretch;
}

.event-schedule-card {
	padding: 1rem;
	border: 1px solid #d7e2ef;
	border-radius: 1rem;
	background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
}

.event-schedule-card.is-end {
	background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
}

.event-schedule-card.is-duration {
	display: grid;
	grid-template-rows: auto 1fr;
	align-items: stretch;
	text-align: center;
	background: linear-gradient(180deg, #f8fbff 0%, #eef4fb 100%);
	padding: .9rem 0 .8rem;
	overflow: hidden;
}

.event-schedule-card.is-duration .event-schedule-card-head {
	padding: 0 .55rem;
	margin-bottom: .35rem;
}

.event-schedule-card-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: .75rem;
	margin-bottom: .85rem;
}

.event-schedule-card-head.is-centered {
	justify-content: center;
	text-align: center;
	margin-bottom: .5rem;
}

.event-schedule-card-head strong {
	display: block;
	color: #173457;
	font-size: 1rem;
	font-weight: 900;
}

.event-schedule-card-head small {
	display: block;
	margin-top: .2rem;
	color: var(--agenda-muted);
	font-size: .82rem;
	line-height: 1.35;
}

.event-schedule-chip {
	display: inline-flex;
	align-items: center;
	padding: .3rem .65rem;
	border-radius: 999px;
	background: rgba(27, 57, 106, .1);
	color: var(--agenda-blue);
	font-size: .74rem;
	font-weight: 850;
	white-space: nowrap;
}

.event-schedule-chip.is-soft {
	background: #eef3f9;
	color: #5f6f84;
}

.event-schedule-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .85rem;
}

.event-schedule-item {
	display: grid;
	gap: .35rem;
}

.event-schedule-label {
	color: var(--agenda-muted);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .03em;
	text-transform: uppercase;
}

.event-schedule-duration-box {
	display: grid;
	grid-template-rows: minmax(6.5rem, 1fr) auto;
	gap: .55rem;
	width: 100%;
	height: 100%;
	align-items: stretch;
	padding: 0;
}

.event-schedule-duration-label {
	display: block;
	color: var(--agenda-muted);
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: 0 .35rem;
}

.event-schedule-duration-box strong {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #173457;
	font-size: 2rem;
	font-weight: 900;
	line-height: 1.1;
	min-height: 6.5rem;
	width: 100%;
	padding: .9rem .35rem;
	background: linear-gradient(180deg, rgba(255, 255, 255, .95) 0%, rgba(244, 248, 253, .98) 100%);
	border-top: 1px solid rgba(23, 52, 87, .08);
	border-bottom: 1px solid rgba(23, 52, 87, .08);
}

.event-schedule-feedback {
	margin-top: .85rem;
}

.event-schedule-status {
	display: block;
	color: var(--agenda-muted);
	font-size: .92rem;
	line-height: 1.45;
}

.event-schedule-status.is-success {
	color: #16863a;
	font-weight: 700;
}

.event-schedule-status.is-error {
	color: #c2410c;
	font-weight: 700;
}

.agenda-preview-card {
	padding: 1.1rem;
}

.agenda-preview-header {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	justify-content: space-between;
	margin-bottom: .85rem;
}

.agenda-preview-badge,
.agenda-preview-type {
	display: inline-flex;
	align-items: center;
	min-height: 1.8rem;
	padding: .32rem .65rem;
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 850;
	line-height: 1;
}

.agenda-preview-badge {
	background: rgba(62, 201, 103, .14);
	color: #16863a;
}

.agenda-preview-type {
	background: var(--agenda-blue-soft);
	color: var(--agenda-blue);
}

.agenda-preview-card h2 {
	margin: 0;
	color: #173457;
	font-size: 1.35rem;
	font-weight: 900;
	line-height: 1.15;
	word-break: break-word;
}

.agenda-preview-description {
	margin: .7rem 0 1rem;
	color: var(--agenda-muted);
	font-size: .95rem;
	line-height: 1.45;
}

.agenda-preview-list {
	display: grid;
	gap: .65rem;
}

.agenda-preview-list div {
	padding: .75rem;
	border: 1px solid var(--agenda-line);
	border-radius: .75rem;
	background: #f8fafc;
}

.agenda-preview-list span {
	display: block;
	margin-bottom: .15rem;
	color: var(--agenda-muted);
	font-size: .72rem;
	font-weight: 850;
	letter-spacing: .07em;
	text-transform: uppercase;
}

.agenda-preview-list strong {
	display: block;
	color: #173457;
	font-size: .95rem;
	line-height: 1.3;
	word-break: break-word;
}

.agenda-preview-meta {
	display: block;
	margin-top: .28rem;
	color: var(--agenda-muted);
	font-size: .8rem;
	font-weight: 700;
	line-height: 1.35;
}

.agenda-capture-checklist {
	padding: 1rem;
}

.agenda-capture-checklist strong {
	display: block;
	margin-bottom: .55rem;
	color: #173457;
	font-weight: 900;
}

.agenda-capture-checklist ul {
	display: grid;
	gap: .45rem;
	margin: 0;
	padding-left: 1.1rem;
	color: var(--agenda-muted);
	font-size: .92rem;
}

.stat-card {
	padding: 1.25rem;
}

.stat-card span {
	display: block;
	color: var(--agenda-muted);
	font-weight: 700;
}

.stat-card strong {
	font-size: 2.4rem;
	line-height: 1;
}

.visibility-checks {
	display: grid;
	gap: .45rem;
	padding: .55rem .75rem;
	border: 1px solid #dee2e6;
	border-radius: .375rem;
	background: #fff;
}

.visibility-checks .form-check {
	margin-bottom: 0;
}

.attendee-picker {
	display: block;
	padding: .75rem;
	border: 1px solid #dee2e6;
	border-radius: .5rem;
	background: #fff;
}

.mail-audience-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	gap: .65rem;
}

.mail-settings-card {
	border: 1px solid var(--agenda-line);
	border-radius: 1rem;
	background: linear-gradient(180deg, #fbfdff 0%, #f5f9ff 100%);
	overflow: hidden;
}

.mail-settings-summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.1rem;
	cursor: pointer;
	list-style: none;
}

.mail-settings-summary::-webkit-details-marker {
	display: none;
}

.mail-settings-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
	margin-top: .35rem;
}

.mail-settings-meta span {
	display: inline-flex;
	align-items: center;
	padding: .3rem .65rem;
	border-radius: 999px;
	background: #eaf2fb;
	color: #335173;
	font-size: .87rem;
	font-weight: 700;
}

.mail-settings-toggle {
	position: relative;
	flex: 0 0 auto;
	width: 2.15rem;
	height: 2.15rem;
	border-radius: 999px;
	border: 1px solid #c8d8ec;
	background: #fff;
}

.mail-settings-toggle::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: .65rem;
	height: .65rem;
	border-right: 2px solid #31527a;
	border-bottom: 2px solid #31527a;
	transform: translate(-50%, -65%) rotate(45deg);
	transition: transform .18s ease;
}

.mail-settings-card[open] .mail-settings-toggle::before {
	transform: translate(-50%, -40%) rotate(225deg);
}

.mail-settings-body {
	padding: 0 1.1rem 1.1rem;
	border-top: 1px solid rgba(176, 197, 222, .7);
}

.mail-audience-option {
	display: flex;
	gap: .7rem;
	align-items: flex-start;
	margin: 0;
	padding: .75rem .8rem;
	border: 1px solid var(--agenda-line);
	border-radius: .75rem;
	background: #f8fafc;
	cursor: pointer;
	transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.mail-audience-option:hover {
	border-color: var(--agenda-sky);
	background: #eef4fb;
	transform: translateY(-1px);
}

.mail-audience-option span {
	display: grid;
	gap: .15rem;
}

.mail-audience-option small {
	display: block;
	color: var(--agenda-muted);
}

.mail-unit-card {
	padding: .95rem 1rem;
	border: 1px dashed #c9d8ea;
	border-radius: .9rem;
	background: #ffffff;
}

.mail-unit-card .form-check {
	margin-bottom: .35rem;
}

.mail-unit-switch {
	display: flex;
	align-items: center;
	gap: .7rem;
	flex-wrap: wrap;
}

.mail-unit-switch .form-check-input {
	margin-top: 0;
}

.mail-unit-heading {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
}

.mail-help-trigger {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.4rem;
	height: 1.4rem;
	padding: 0;
	border: 1px solid #bfd1e7;
	border-radius: 999px;
	background: #eef5fd;
	color: #2f5686;
	font-size: .82rem;
	font-weight: 800;
	line-height: 1;
	cursor: pointer;
}

.mail-help-trigger:hover,
.mail-help-trigger:focus-visible {
	border-color: #98b8dc;
	background: #e4effc;
	outline: none;
}

.mail-help-tooltip {
	position: absolute;
	left: 50%;
	bottom: calc(100% + .55rem);
	transform: translateX(-50%);
	width: min(18rem, 78vw);
	padding: .7rem .8rem;
	border-radius: .75rem;
	background: #173454;
	color: #fff;
	font-size: .85rem;
	font-weight: 500;
	line-height: 1.45;
	box-shadow: 0 14px 28px rgba(18, 42, 70, .22);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
	z-index: 20;
}

.mail-help-tooltip::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 100%;
	transform: translateX(-50%);
	border-width: .38rem;
	border-style: solid;
	border-color: #173454 transparent transparent transparent;
}

.mail-help-trigger:hover .mail-help-tooltip,
.mail-help-trigger:focus .mail-help-tooltip,
.mail-help-trigger:focus-visible .mail-help-tooltip {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(-.15rem);
}

.attendee-toolbar {
	display: flex;
	gap: .65rem;
	align-items: center;
}

.attendee-type-filter {
	margin-bottom: .75rem;
	align-items: end;
}

.attendee-bulk-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.attendee-toolbar .form-control {
	max-width: 25rem;
}

.attendee-summary {
	margin-top: .75rem;
}

.attendee-selected {
	min-height: 1.75rem;
	padding: .45rem 0;
}

.attendee-results {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	gap: .65rem;
	max-height: 18rem;
	overflow: auto;
}

.attendee-option {
	display: flex;
	gap: .6rem;
	align-items: flex-start;
	padding: .7rem;
	border: 1px solid var(--agenda-line);
	border-radius: .5rem;
	background: #f8fafc;
	cursor: pointer;
}

.attendee-option:hover {
	border-color: var(--agenda-sky);
	background: #eef4fb;
}

.attendee-option small {
	display: block;
	color: var(--agenda-muted);
}

.responsible-picker {
	position: relative;
}

.location-picker {
	display: grid;
	gap: .55rem;
}

.location-search-shell {
	position: relative;
}

.location-selected {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	min-height: 2rem;
	padding: .45rem 0;
}

.location-results {
	display: none;
	position: absolute;
	z-index: 20;
	width: 100%;
	max-height: 15rem;
	overflow: auto;
	border: 1px solid #dee2e6;
	border-radius: .375rem;
	background: #fff;
	box-shadow: 0 18px 38px rgba(15, 23, 42, .12);
}

.location-option {
	display: flex;
	width: 100%;
	gap: .55rem;
	align-items: flex-start;
	margin: 0;
	padding: .65rem .8rem;
	border: 0;
	background: #fff;
	text-align: left;
	cursor: pointer;
}

.location-option:hover,
.location-option.is-selected {
	background: #eef4fb;
}

.location-option strong,
.location-option small {
	display: block;
}

.location-option small {
	color: var(--agenda-muted);
}

.location-empty {
	padding: .7rem .8rem;
	color: var(--agenda-muted);
}

.responsible-selected {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	align-items: flex-start;
	min-height: 2rem;
	padding: .45rem 0;
}

.responsible-chip {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .18rem;
}

.responsible-tag {
	padding: .2rem .5rem;
	border-radius: 999px;
	background: #e8f1fb;
	color: #174b7a;
	font-size: .875rem;
}

.responsible-role {
	display: block;
	padding-left: .1rem;
	color: var(--agenda-muted);
	font-size: .78rem;
	font-weight: 700;
	line-height: 1.3;
}

.responsible-results {
	display: none;
	position: absolute;
	z-index: 20;
	width: 100%;
	max-height: 14rem;
	overflow: auto;
	border: 1px solid #dee2e6;
	border-radius: .375rem;
	background: #fff;
}

.responsible-option {
	display: flex;
	gap: .55rem;
	align-items: flex-start;
	margin: 0;
	padding: .55rem .7rem;
	cursor: pointer;
}

.responsible-option:hover {
	background: #eef4fb;
}

.responsible-option small {
	display: block;
	color: var(--agenda-muted);
}

.responsible-no-results {
	padding: .65rem .7rem;
	color: var(--agenda-muted);
}

.notification-list,
.notification-item {
	display: grid;
	gap: .45rem;
}

.notification-item {
	padding: .75rem .9rem;
	border: 1px solid var(--agenda-line);
	border-radius: .5rem;
	background: #f8fafc;
}

.notification-item.is-unread {
	border-color: #f0c36a;
	background: #fff8e6;
}

.notification-item span,
.notification-item p {
	color: var(--agenda-muted);
	font-size: .9rem;
}

.notification-dropdown {
	position: relative;
}

.profile-dropdown {
	position: relative;
}

.notification-bell {
	position: relative;
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 1px solid var(--agenda-line);
	border-radius: 999px;
	background: #fff;
	color: var(--agenda-blue);
	box-shadow: 0 10px 28px rgba(16, 41, 79, .1);
}

.notification-bell:hover,
.notification-bell:focus {
	border-color: var(--agenda-sky);
	background: #f8fafc;
	color: var(--agenda-blue-deep);
}

.notification-bell svg {
	width: 1.25rem;
	height: 1.25rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.notification-bell-light {
	border-color: rgba(255, 255, 255, .35);
	background: rgba(255, 255, 255, .12);
	color: #fff;
	box-shadow: none;
}

.notification-bell-light:hover,
.notification-bell-light:focus {
	background: rgba(255, 255, 255, .22);
	color: #fff;
}

.notification-badge {
	position: absolute;
	top: -.25rem;
	right: -.2rem;
	display: grid;
	place-items: center;
	min-width: 1.15rem;
	height: 1.15rem;
	padding: 0 .25rem;
	border: 2px solid #fff;
	border-radius: 999px;
	background: #dc3545;
	color: #fff;
	font-size: .68rem;
	font-weight: 800;
	line-height: 1;
}

.notification-menu {
	width: min(92vw, 23rem);
	padding: .45rem;
	border: 1px solid var(--agenda-line);
	border-radius: .75rem;
	box-shadow: 0 20px 48px rgba(16, 41, 79, .18);
}

.profile-menu {
	width: min(92vw, 24rem);
	padding: .55rem;
	border: 1px solid var(--agenda-line);
	border-radius: .95rem;
	box-shadow: 0 20px 48px rgba(16, 41, 79, .18);
}

.profile-menu-header {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: .85rem;
	align-items: center;
	padding: .45rem .5rem .8rem;
	border-bottom: 1px solid var(--agenda-line);
}

.profile-menu-avatar {
	display: grid;
	place-items: center;
	width: 2.65rem;
	height: 2.65rem;
	border-radius: .95rem;
	background: #204b8a;
	color: #fff;
	font-size: 1rem;
	font-weight: 900;
}

.profile-menu-header strong,
.profile-menu-header span {
	display: block;
}

.profile-menu-header strong {
	color: #173457;
	font-size: 1rem;
	line-height: 1.2;
}

.profile-menu-header span {
	margin-top: .12rem;
	color: var(--agenda-muted);
	font-size: .84rem;
}

.profile-menu-details {
	display: grid;
	gap: .45rem;
	padding: .7rem .5rem .4rem;
}

.profile-menu-details div {
	padding: .6rem .7rem;
	border: 1px solid #edf2f8;
	border-radius: .7rem;
	background: #f8fafc;
}

.profile-menu-details span,
.profile-menu-details strong {
	display: block;
}

.profile-menu-details span {
	margin-bottom: .14rem;
	color: var(--agenda-muted);
	font-size: .72rem;
	font-weight: 850;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.profile-menu-details strong {
	color: #173457;
	font-size: .92rem;
	line-height: 1.35;
	word-break: break-word;
}

.notification-menu-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	padding: .55rem .65rem .7rem;
	border-bottom: 1px solid var(--agenda-line);
}

.notification-menu-header .btn-link {
	padding: 0;
	color: var(--agenda-blue);
	font-weight: 700;
	text-decoration: none;
}

.notification-dropdown-item {
	display: grid;
	gap: .2rem;
	padding: .75rem .65rem;
	border-radius: .5rem;
	color: var(--agenda-ink);
	text-decoration: none;
}

.notification-dropdown-item:hover,
.notification-dropdown-item:focus {
	background: #eef4fb;
	color: var(--agenda-ink);
}

.notification-dropdown-item.is-unread {
	background: #fff8e6;
}

.notification-dropdown-item strong {
	font-size: .92rem;
}

.notification-dropdown-item span {
	color: var(--agenda-muted);
	font-size: .86rem;
	line-height: 1.35;
}

.notification-empty {
	padding: .9rem .65rem;
	color: var(--agenda-muted);
	font-size: .9rem;
}

.confirm-toast {
	position: fixed;
	top: 1.25rem;
	right: 1.25rem;
	z-index: 1080;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: .85rem;
	width: min(92vw, 27rem);
	padding: 1rem;
	border: 1px solid rgba(240, 195, 106, .8);
	border-radius: .75rem;
	background: #fff;
	box-shadow: 0 18px 45px rgba(16, 41, 79, .18);
	opacity: 0;
	transform: translateY(-.5rem);
	transition: opacity .18s ease, transform .18s ease;
}

.confirm-toast.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.confirm-toast-icon {
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	border-radius: 999px;
	background: #fff3cd;
	color: #8a5c00;
	font-weight: 900;
}

.confirm-toast-copy {
	display: grid;
	gap: .2rem;
	min-width: 0;
}

.confirm-toast-copy strong {
	font-size: .95rem;
}

.confirm-toast-copy span {
	color: var(--agenda-muted);
	font-size: .92rem;
}

.confirm-toast-actions {
	grid-column: 1 / -1;
	display: flex;
	justify-content: flex-end;
	gap: .5rem;
}

.submit-loading-overlay {
	position: fixed;
	inset: 0;
	z-index: 2000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	background: rgba(9, 22, 43, .48);
	opacity: 0;
	pointer-events: none;
	transition: opacity .18s ease;
}

.submit-loading-overlay.is-visible {
	opacity: 1;
	pointer-events: auto;
}

.submit-loading-card {
	display: grid;
	gap: .85rem;
	width: min(100%, 24rem);
	padding: 1.4rem 1.25rem;
	border-radius: 1rem;
	background: #fff;
	box-shadow: 0 24px 60px rgba(16, 41, 79, .22);
	text-align: center;
}

.submit-loading-spinner {
	width: 3rem;
	height: 3rem;
	margin: 0 auto;
	border: .24rem solid rgba(37, 99, 235, .18);
	border-top-color: #2563eb;
	border-radius: 999px;
	animation: submit-loading-spin .8s linear infinite;
}

.submit-loading-copy {
	display: grid;
	gap: .35rem;
}

.submit-loading-copy strong {
	font-size: 1rem;
	color: var(--agenda-ink, #10294f);
}

.submit-loading-copy span {
	color: var(--agenda-muted);
	font-size: .95rem;
}

.is-submit-loading {
	cursor: progress;
}

@keyframes submit-loading-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (max-width: 900px) {
	.admin-shell {
		grid-template-columns: 1fr;
	}

	.admin-hero-grid,
	.admin-dashboard-grid,
	.admin-summary-grid,
	.admin-kpi-grid,
	.events-kpi-grid,
	.types-kpi-grid,
	.reports-kpi-grid {
		grid-template-columns: 1fr;
	}

	.admin-hero-action {
		min-height: 4.25rem;
	}

	.admin-kpi-card,
	.admin-summary-card {
		grid-template-columns: auto 1fr;
	}

	.admin-summary-mark {
		display: none;
	}

	.admin-topbar {
		align-items: stretch;
		flex-direction: column;
	}

	.admin-top-actions {
		justify-content: space-between;
	}

	.institution-shell {
		grid-template-columns: 1fr;
	}

	.admin-sidebar {
		position: static;
		height: auto;
	}

	.institution-sidebar {
		position: static;
		height: auto;
	}

	.admin-body.sidebar-collapsed .admin-sidebar,
	.institution-body.sidebar-collapsed .institution-sidebar {
		display: none;
	}

	.institution-nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.institution-sidebar-sections {
		grid-template-columns: 1fr;
	}

	.institution-main {
		padding: 1rem;
	}

	.institution-topbar,
	.institution-hero {
		align-items: stretch;
		flex-direction: column;
	}

	.institution-top-actions,
	.calendar-card-header,
	.calendar-card-title,
	.calendar-card-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.institution-stats,
	.institution-calendar-layout {
		grid-template-columns: 1fr;
	}

		.reports-heading,
		.events-heading,
		.types-heading,
		.reports-footer,
		.events-footer {
			align-items: stretch;
			flex-direction: column;
		}

		.types-layout,
		.reports-toolbar,
		.events-toolbar {
			grid-template-columns: 1fr;
		}

	.events-toolbar-actions,
	.events-pagination,
	.reports-toolbar-actions,
	.reports-pagination {
		justify-content: space-between;
	}

	.calendar-main-card .fc {
		min-height: 34rem;
	}

	.institution-banner {
		padding-top: .75rem;
	}

	.institution-banner img,
	.admin-login-banner img {
		border-radius: .95rem;
		padding: .65rem .8rem;
	}

	.agenda-detail-list {
		grid-template-columns: 1fr;
	}

	#agendaModal .modal-header,
	#agendaModal .modal-body {
		padding-left: 1rem;
		padding-right: 1rem;
	}

	#agendaModal .modal-title {
		font-size: 1.2rem;
	}

	.agenda-modal-summary-grid {
		grid-template-columns: 1fr;
	}

	.agenda-day-card-head,
	.agenda-day-card-foot {
		align-items: flex-start;
		flex-direction: column;
	}

	.agenda-day-meta {
		flex-direction: column;
		gap: .6rem;
	}

	.agenda-modal-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.agenda-modal-action-primary,
	.agenda-modal-action-secondary {
		width: 100%;
	}

	.attendee-toolbar {
		align-items: stretch;
		flex-direction: column;
	}

	.attendee-toolbar .form-control {
		max-width: none;
	}

	.confirm-toast {
		inset: auto 1rem 1rem 1rem;
		width: auto;
		transform: translateY(.5rem);
	}

	.submit-loading-card {
		width: min(100%, 22rem);
		padding: 1.25rem 1rem;
	}

	.agenda-request-grid {
		grid-template-columns: 1fr;
	}

	.agenda-request-side {
		position: static;
	}

	.event-schedule-shell {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.admin-main {
		padding: 1rem 1rem 1.5rem;
	}

	.admin-topbar {
		margin: -1rem -1rem 1rem;
		padding: 1rem;
		min-height: 0;
	}

	.event-schedule-grid {
		grid-template-columns: 1fr;
	}

	.admin-hero-card {
		padding: 1.15rem 1.1rem;
	}

	.admin-hero-illustration {
		display: none;
	}

	.admin-kpi-card {
		padding: 1.2rem;
	}

	.admin-kpi-icon,
	.admin-summary-icon {
		width: 4.5rem;
		height: 4.5rem;
		border-radius: 1rem;
	}

	.admin-panel-card {
		padding: 1.15rem;
	}

	.admin-panel-header {
		align-items: flex-start;
		flex-direction: column;
	}

	.admin-user-pill {
		width: 100%;
	}

	.reports-heading h2 {
		font-size: 2rem;
	}

		.events-heading h2 {
			font-size: 2rem;
		}

		.types-heading h2 {
			font-size: 2rem;
		}

		.types-kpi-card,
		.types-form-card,
		.types-table-card,
		.events-kpi-card,
		.events-table-card,
		.reports-kpi-card,
		.reports-table-card {
			border-radius: 1.15rem;
		}

		.types-kpi-card,
		.events-kpi-card,
		.reports-kpi-card {
			padding: 1.15rem;
		}

		.types-kpi-icon,
		.events-kpi-icon,
		.reports-kpi-icon {
			width: 4.4rem;
			height: 4.4rem;
			border-radius: 1rem;
		}

		.types-primary-action,
		.types-save-btn,
		.types-reset-btn,
		.events-primary-action,
		.events-export,
		.reports-primary-action,
		.reports-export {
			width: 100%;
		}

		.types-actions,
		.events-actions,
		.reports-actions {
			width: 100%;
			justify-content: flex-start;
	}

		.reports-action-btn {
			width: 3.35rem;
			height: 3rem;
		}

		.events-action-btn {
			min-height: 3rem;
			padding-inline: .85rem;
		}
	}

/* Responsive overrides kept at the end so they win over legacy desktop styles. */
.admin-main,
.institution-main {
	min-width: 0;
}

.admin-body,
.institution-body {
	overflow-x: hidden;
}

.sidebar-backdrop {
	display: none;
}

.page-split-header,
.form-actions-stack {
	gap: .85rem;
}

@media (max-width: 900px) {
	.sidebar-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		background: rgba(8, 22, 42, .48);
		backdrop-filter: blur(2px);
		opacity: 0;
		pointer-events: none;
		transition: opacity .24s ease;
		z-index: 1055;
	}

	.admin-shell,
	.institution-shell,
	.admin-body.sidebar-collapsed .admin-shell,
	.institution-body.sidebar-collapsed .institution-shell {
		grid-template-columns: 1fr;
	}

	.admin-body.sidebar-mobile-open,
	.institution-body.sidebar-mobile-open {
		overflow: hidden;
	}

	.admin-body.sidebar-mobile-open .sidebar-backdrop,
	.institution-body.sidebar-mobile-open .sidebar-backdrop {
		opacity: 1;
		pointer-events: auto;
	}

	.admin-sidebar,
	.institution-sidebar {
		position: fixed;
		top: 0;
		left: 0;
		bottom: 0;
		height: 100dvh;
		width: min(18rem, calc(100vw - 2.5rem));
		max-width: 18rem;
		padding-bottom: 5rem;
		overflow-y: auto;
		z-index: 1060;
		box-shadow: 0 24px 60px rgba(4, 12, 29, .32);
		transform: translateX(0);
	}

	.admin-body.sidebar-collapsed .admin-sidebar,
	.institution-body.sidebar-collapsed .institution-sidebar {
		display: flex;
		transform: translateX(calc(-100% - 1rem));
		opacity: 0;
		pointer-events: none;
	}

	.admin-main,
	.institution-main {
		width: 100%;
	}

	.admin-topbar,
	.institution-topbar {
		position: relative;
		padding-left: 4.3rem;
		flex-direction: row;
		align-items: flex-start;
	}

	.sidebar-toggle-btn {
		position: fixed;
		top: .9rem;
		left: .9rem;
		width: 3rem;
		height: 3rem;
		padding: 0;
		justify-content: center;
		border-radius: 999px;
		gap: 0;
		z-index: 1070;
		box-shadow: 0 14px 30px rgba(5, 24, 54, .2);
	}

	.sidebar-toggle-btn .sidebar-toggle-text {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}

	.sidebar-toggle-btn svg {
		width: 1.25rem;
		height: 1.25rem;
	}

	.admin-top-actions,
	.institution-top-actions {
		justify-content: flex-end;
		flex-wrap: nowrap;
		align-items: center;
		align-self: flex-start;
		margin-left: auto;
	}

	.admin-topbar > :first-child,
	.institution-topbar > :first-child {
		min-width: 0;
	}

	.admin-user-pill,
	.institution-user-pill {
		width: auto;
		max-width: min(100%, 14rem);
	}

	.institution-user-pill {
		padding-right: .6rem;
	}

	.institution-bell {
		flex: 0 0 auto;
	}

	.calendar-main-card .fc .fc-toolbar.fc-header-toolbar {
		margin-bottom: 1rem;
	}
}

@media (max-width: 767.98px) {
	.page-split-header {
		flex-direction: column;
		align-items: stretch !important;
	}

	.page-split-header .btn,
	.form-actions-stack .btn {
		width: 100%;
	}

	.form-actions-stack {
		flex-direction: column-reverse;
		align-items: stretch !important;
	}

	.calendar-card-header,
	.calendar-card-title,
	.calendar-card-actions {
		align-items: flex-start;
	}

	.calendar-primary-action {
		width: 100%;
	}

	.calendar-main-card {
		padding: .85rem;
	}

	.calendar-main-card .fc {
		min-height: auto;
	}

	.calendar-main-card .fc .fc-toolbar {
		flex-direction: column;
		align-items: stretch;
		gap: .7rem;
	}

	.calendar-main-card .fc .fc-toolbar-chunk {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: .5rem;
	}

	.calendar-main-card .fc .fc-toolbar-title {
		font-size: 1.1rem;
		text-align: center;
	}

	.calendar-main-card .fc .fc-button-group {
		display: inline-flex;
		flex-wrap: wrap;
	}

	.calendar-main-card .fc .fc-list-event-time,
	.calendar-main-card .fc .fc-list-event-title {
		white-space: normal;
	}

	.table-responsive {
		overflow: visible;
	}

	.table-responsive > .table.is-responsive-table {
		min-width: 0;
	}

	.table-responsive > .table.is-responsive-table thead {
		display: none;
	}

	.table-responsive > .table.is-responsive-table tbody {
		display: grid;
		gap: .85rem;
	}

	.table-responsive > .table.is-responsive-table tbody tr {
		display: block;
		padding: 1rem;
		border: 1px solid rgba(208, 220, 237, .8);
		border-radius: 1rem;
		background: #fff;
		box-shadow: 0 12px 26px rgba(15, 48, 94, .08);
	}

	.table-responsive > .table.is-responsive-table tbody td {
		display: grid;
		grid-template-columns: minmax(6.5rem, 8rem) minmax(0, 1fr);
		align-items: start;
		gap: .75rem;
		width: 100%;
		padding: .45rem 0 !important;
		border: 0 !important;
		text-align: left !important;
		white-space: normal;
	}

	.table-responsive > .table.is-responsive-table tbody td::before {
		content: attr(data-label);
		color: var(--agenda-muted);
		font-size: .72rem;
		font-weight: 800;
		letter-spacing: .08em;
		text-transform: uppercase;
	}

	.table-responsive > .table.is-responsive-table tbody td[data-label="Acciones"] {
		grid-template-columns: 1fr;
		margin-top: .2rem;
		padding-top: .75rem !important;
		border-top: 1px solid #edf1f7 !important;
	}

	.table-responsive > .table.is-responsive-table tbody td[colspan] {
		display: block;
		padding: .25rem 0 !important;
		text-align: center !important;
	}

	.table-responsive > .table.is-responsive-table tbody td[colspan]::before {
		content: none;
	}

	.events-actions,
	.types-actions,
	.reports-actions {
		width: 100%;
		justify-content: flex-start;
	}

	.events-reject-box,
	.events-reject-form,
	.reports-file-cell strong {
		min-width: 0;
		max-width: none;
	}

	.events-action-btn,
	.types-action-btn,
	.reports-action-btn {
		max-width: 100%;
	}

	.admin-user-pill,
	.institution-user-pill {
		width: auto;
	}
}

@media (max-width: 575.98px) {
	.admin-topbar,
	.institution-topbar {
		padding-left: 4rem;
		gap: .75rem;
	}

	.admin-topbar h1,
	.institution-topbar h1,
	.calendar-card-header h2 {
		font-size: 1.3rem;
	}

	.admin-user-pill,
	.institution-user-pill {
		width: auto;
		padding-right: .55rem;
	}

	.admin-top-actions,
	.institution-top-actions {
		gap: .55rem;
	}

	.admin-user-pill div,
	.institution-user-pill div {
		display: none;
	}

	.admin-user-avatar,
	.institution-user-avatar {
		width: 2.6rem;
		height: 2.6rem;
	}

	.login-wrap {
		min-height: auto;
		padding: 1rem;
	}

	.login-card {
		width: 100%;
		padding: 1.35rem;
		border-radius: 1rem;
	}

	.login-card h1 {
		font-size: 1.8rem;
	}

	.admin-login-banner {
		padding: 1rem 1rem 0;
	}

	#menuPublico .navbar-nav {
		align-items: stretch !important;
		padding-top: .75rem;
	}

	#menuPublico .btn {
		width: 100%;
	}

	.modal-dialog {
		margin: .5rem;
	}

	.modal-dialog.modal-lg {
		max-width: calc(100vw - 1rem);
	}
}

@media (max-width: 1199.98px) {
	.events-review-card {
		grid-template-columns: 1fr;
	}

	.events-action-panel {
		border-left: 0;
		border-top: 1px solid #ebf0f8;
	}

	.events-review-meta-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 991.98px) {
	.events-heading,
	.events-heading-actions,
	.events-review-header {
		align-items: stretch;
		flex-direction: column;
	}

	.events-review-state {
		justify-items: start;
		text-align: left;
	}

	.events-toolbar {
		grid-template-columns: 1fr;
	}

	.events-kpi-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767.98px) {
	.events-review-main,
	.events-action-panel,
	.events-table-card {
		padding: 1rem;
	}

	.events-review-copy h3 {
		font-size: 1.2rem;
	}

	.events-review-meta-grid,
	.events-action-primary-grid,
	.events-action-secondary-grid {
		grid-template-columns: 1fr;
	}

	.events-context-card summary {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (max-width: 575.98px) {
	.events-kpi-grid {
		grid-template-columns: 1fr;
	}

	.events-heading h2 {
		font-size: 1.65rem;
	}

	.events-search,
	.events-filter {
		padding-inline: .85rem;
	}
}
