

html, body {
  height: 100%;
  margin: 0;
  display: flex;
  flex-direction: column;
}

main {
  flex: 1;
}


.center{
	margin-left:auto;
	margin-right:auto;
}


.clear {
	clear:both;
}



#org-logo img{
	max-width:277px;
}
@media (max-width: 576px) {
  #org-logo{ display:none; }
  #pdplanner-logo img {
    max-width: 100% !important;
  }
}

/************************************************************************/
/************************** BOOKINGS MAIN PAGE **************************/ 
/************************************************************************/

#index {
	padding:0px 0 0 0;
	width:100%;
	margin:0 auto;
}
#index p {
	font-family:Arial, Helvetica, sans-serif;
	font-size:14px;
}
#index .copy {
	font-size:11px;
	font-family:Arial, Helvetica, sans-serif;
}
/************************************************************************/

.js_error {
	padding:15px;
	width:570px;
	margin:0 auto;
	font-size:25px;
	font-weight:bold;
	text-align:center;
	border:1px solid #F30;
	background-color:#FEDEDE;
	margin-top:15px;
}
.js_error a {
	color:#F30;
}
sup {
	color:#999999;
	font-size:10px;
}
/***********************************************************************/
/************************** CALENDAR STYLES ****************************/ 
/***********************************************************************/
.calendar table {
	font-family:Tahoma, Geneva, sans-serif;
	border-collapse:collapse;
	border:#666 1px solid;
}
.dash_border {
	font-size:22px;
	text-align:center;
}
.dash_border_top {
}

.dow{
	background:url(../images/dow-calendar-bg.gif) left top repeat-x;
}

.calendar_title{
	color: #000;
	text-shadow: 0 -1px -1px rgba(0, 0,0, 0.8) !important;
}

table tbody .weekend {
	color:#990000;
	font-size:20px;
} /* RED HIGHLIGHTING FOR SUNDAY AND SATURDAY */

.previous_month {
	color:#000;
	font-size:18px;
	text-transform:uppercase;
	padding-left:20px;
/*	background:url(../images/arrow_left.jpg) no-repeat left top; */
	text-decoration:none;
	line-height:26px;
	width:60px;
	display:block;
	text-shadow: 0 -1px -1px rgba(0, 0,0, 0.8) !important;
}
.previous_month:hover {
	/*background:url(../images/arrow_left_on.jpg) no-repeat left top;*/
	text-decoration:underline;
}
.next_month {
	color:#000;
	font-size:18px;
	text-transform:uppercase;
	padding-right:20px;
/*	background:url(../images/arrow_right.jpg) no-repeat right top; */
	text-decoration:none;
	line-height:26px;
	width:60px;
	display:block;
	text-shadow: 0 -1px -1px rgba(0, 0,0, 0.8) !important;
}
.next_month:hover {
	/*background:url(../images/arrow_right_on.jpg) no-repeat right top;*/
	text-decoration:underline;
}

.list_nav .calendar_title{
	color:#000 !important;
}

.calendar_nav .next_month, .calendar_nav .previous_month{
	color:#000;
}

.cal_reg_on {
	vertical-align:top;
	background:url(../images/cal_reg_on.png) #E4E4E4 top left repeat-x;
	width:76px;
	height:76px;
	color:#666666;
	font-size:22px;
} /* REGULAR DAY WHICH FALLS UNDER 1 - 31 (dark grey area) */
.cal_reg_on a {
	font-size:11px;
} /* href style for NO-JS version*/
.cal_reg_off {
	vertical-align:top;
	/*background:url(../images/cal_reg_off.png) #f3f2f2 top left repeat-x;*/
	background-color:#f3f2f2;
	width:76px;
	height:76px;
	color:#666666;
	font-size:22px;
} /* NOT AVAILABLE SQUARE OR TOTALLY BOOKED SQUARE */
.cal_reg_off a {
	font-size:11px;
} /* href style for NO-JS version*/
.cal_reg_off noscript {
	font-size:11px;
}
.cal_reg_off span {
	font-size:11px;
	padding:0;
	margin:0;
}
.cal_reg_on_today {
	vertical-align:top;
	background-color:#B6DBED;
	width:76px;
	height:76px;
	color:#666666;
	font-size:22px;
} /* TODAY SQUARE - SQUARE AVAILABLE FOR BOOKING */
.cal_reg_on_today a {
	font-size:11px;
} /* href style for NO-JS version*/
.cal_reg_off_today {
	vertical-align:top;
	background-color:#B6DBED;
	width:76px;
	height:76px;
	color:#666666;
	font-size:22px;
} /* TODAY SQUARE - NOT AVAILABLE FOR BOOKING  */
.cal_reg_off_today noscript {
	font-size:11px;
}
.cal_reg_off_today span {
	font-size:11px;
	padding:0;
	margin:0;
}
.cal_reg_off_today a {
	font-size:11px;
} /* href style for NO-JS version*/
.mainmenu5 {
	vertical-align:top;
	background-color:#0099CC;
	width:76px;
	height:76px;
	color:#FFF;
	font-size:22px;
	cursor:pointer;
} /* HOVER SQUARE */
.mainmenu5 a {
	font-size:11px;
} /* href style for NO-JS version*/
.calendar table td {
	width:125px;
	height:100px;
	border:#666 1px solid;
}
.calendar .dow {
	height:20px;
	font-size:18px;
	text-align:center;
	color:#FFFFFF;
}
.calendar .weekend{
	color:#E6E6E6;
}
.calendar_nav{
	margin-top:20px;

}

.calendar_nav .top-left{
	width:11px;
	height:11px;
}

.calendar_nav .top-right{
	width:11px;
	height:11px;
}

.calendar_nav .bottom-left{
	width:11px;
	height:11px;
}

.calendar_nav .bottom-right{

	width:11px;
	height:11px;
}

.list_nav{
	margin-top:20px;
	color:#000000 !important;

}

.calendar_title{
	padding-bottom:10px;
}

.calendar_float{
	margin:0px !important;
}
.calendar_float a {
	margin:0px !important;
}
.error_msg {
	padding:15px;
	width:570px;
	margin:0 auto;
	font-size:14px;
	text-align:center;
	border:1px solid #C11E15;
	background-color:#d36060;
	margin-top:15px;
	-moz-border-radius:5px;
	-webkit-border-radius:5px;
	border-radius:5px;
	-webkit-box-shadow: 0px 0px 5px rgba(50, 50, 50, 0.6);
	-moz-box-shadow:    0px 0px 5px rgba(50, 50, 50, 0.6);
	box-shadow:         0px 0px 5px rgba(50, 50, 50, 0.6);
}
.success_msg {
	padding:15px;
	margin:0 auto;
	font-size:14px;
	text-align:center;
	border:1px solid #2B9B2E;
	background-color:darkseagreen;
	margin-top:15px;
	-moz-border-radius:5px;
	-webkit-border-radius:5px;
	border-radius:5px;
	-webkit-box-shadow: 0px 0px 5px rgba(50, 50, 50, 0.6);
	-moz-box-shadow:    0px 0px 5px rgba(50, 50, 50, 0.6);
	box-shadow:         0px 0px 5px rgba(50, 50, 50, 0.6);
}
.error_msg2 {
	padding:15px;
	margin:0 auto 10px auto;
	font-size:14px;
	text-align:center;
	border:1px solid #C11E15;
	background-color:#d36060;
	width:90%;

	margin-top:15px;
	-moz-border-radius:5px;
	-webkit-border-radius:5px;
	border-radius:5px;
	-webkit-box-shadow: 0px 0px 5px rgba(50, 50, 50, 0.6);
	-moz-box-shadow:    0px 0px 5px rgba(50, 50, 50, 0.6);
	box-shadow:         0px 0px 5px rgba(50, 50, 50, 0.6);
	
}
.warn_msg {
	padding:15px;
	margin:0 auto;
	font-size:14px;
	text-align:center;
	border:1px solid #CCCC00;
	background-color: #FFFF99;
	margin-top:15px;
}

.warn_msg li{
	line-height:1.3em;
	margin-bottom:5px;	
}

.error{
	padding:4px;
	display:inline-block;
	border:1px solid #C00;
	background-color: #FFE1E1;
	color:#000;
	-moz-border-radius:5px;
	-webkit-border-radius:5px;
	border-radius:5px;
}

.warning{
	padding:4px;
	display:inline-block;
	border:1px solid #CCCC00;
	background-color: #FFFF99;	
	color:#000;
	-moz-border-radius:5px;
	-webkit-border-radius:5px;
	border-radius:5px;
}

.success{
	padding:4px;
	display:inline-block;
	border:1px solid #060;
	background-color: #9FC;	
	color:#000;
	-moz-border-radius:5px;
	-webkit-border-radius:5px;
	border-radius:5px;
}

.ok {
	padding:4px;
	display:inline-block;
	border:1px solid #339966;
	background-color: #E6FFE6;
	color:#000;
	-moz-border-radius:5px;
	-webkit-border-radius:5px;
	border-radius:5px;
}

#warning {
	font-size: 15px;
	padding: 5px;
	color:#000000;
	background-color:#FFEEBB;
	border: solid 1px #000;
	font-family:Arial, Helvetica, sans-serif;
}
.msgDiv_preset {
	padding:15px;
	margin:0 auto;
	font-size:14px;
	text-align:center;
	margin-top:15px;
	border:#999999 1px solid;
	background-color:#EBEBEB;
}
.msgDiv_preset2 {
	padding:15px;
	margin:0 auto;
	font-size:14px;
	text-align:center;
	margin-top:15px;
	border:#999999 1px solid;
	background-color:#FFFFFF;
}
.cal_text {
	font-size:11px;
}
.cal_text a {
	color:#666;
}
.cal_text a:visited {
	color:#666;
}
noscript a {
	color:#666;
}
noscript a:visited {
	color:#666;
}
/***********************************************************************/

/***********************************************************************/
/************************** BOOKING FORM PAGE **************************/
/***********************************************************************/


/***********************************************************************/

/***********************************************************************/
/************************** SCHEDULE FORM PAGE **************************/
/***********************************************************************/
.schedule_na td {
	height:35px;
	background-color:#FFE2DD;
	border-bottom:1px solid #F30;
	color:#000;
	padding:5px;
}
.schedule_na td a {
	color:#F30;
}
.schedule_na td a:visited {
	color:#F30;
}
.schedule_av td {
	height:35px;
	background-color:#D5EDF9;
	border-bottom:1px solid #06F;
	color:#000;
	padding:5px;
}
.time {
	font-size:16px;
	font-weight:bold;
}
.time sup {
	font-size:12px;
	text-decoration:underline;
	font-weight:normal;
}
.form_container input, .form_container select {
	padding:5px;
	font-size:16px;
}
option {
	background-color:#FFFFFF;
}
#signupform table {
	margin:15px;
}
/*
#submitbutton, .buttons {
	background:url(../images/blackgrad1.gif) !important;
	color:#fff;
	font-weight:bold;
	font-size:15px;
	-moz-border-radius:5px;
	-webkit-border-radius:5px;
	border: 1px solid #000;
	padding:5px 10px 6px 10px;
}
.buttons2 {
	padding:5px 10px 6px 10px;
}
#submitbutton:hover, .buttons:hover {
	background: #000 !important;
	cursor:pointer;
}
.formbutton {
	background:url(../images/blackgrad1.gif) !important;
	color:#fff;
	font-weight:bold !important;
	font-size:16px !important;
	-moz-border-radius:5px;
	-webkit-border-radius:5px;
	border: 1px solid #000 !important;
	padding:5px 10px 6px 10px !important;
}
.formbutton:hover {
	background: #000 url(../images/blackgrad1.gif) bottom center;
	cursor:pointer;
}
*/
.form_container {
	margin: 0px auto;
	max-width: 650px;
	border: 1px solid #D3D3D3;
	background-color:#FFFFFF;
}
.form_container2 {
	margin: 0px auto;
	max-width: 650px;
	border: 1px solid #D3D3D3;
}
#form_header {
	font-size: 24px;
	font-weight: bold;
	margin: 5px auto 0px auto;
	z-index:3;
	width:auto;
	padding: 0px 5px;
}
#float_links {
	float:right;
}
#refresh {
	float:right;
	display:block;
	margin-top:-40px;
	margin-right:15px;
	font-size:12px;
}
#printable {
	float:left;
	display:block;
	margin-top:-40px;
	margin-right:15px;
	font-size:12px;
}
#attendees-link {
	float:left;
	display:block;
	margin-top:-40px;
	margin-right:15px;
	font-size:12px;
}
#content h1 {
	font-family:sans-serif, "Trebuchet MS", Arial, sans-serif;
	text-shadow: 0 -1px -1px rgba(0, 0,0, 0.8) !important;
	font-size:24px !important;
	margin-left:0px;
	font-weight:normal !important;
	background-color:#FFF;
	background:none;
	color:#000000;
	border:none;
}
.clearfooter {
	clear:both;
	height:15px;
}
#footer {
	width:100%;
	height: 50px;
	position: relative;
	bottom:0px;
	margin:0px;
	background-color:#505a82;
	border-top:10px solid #8088a5;
}
#print_footer {
	display:none;
}
/* HIDDEN FOR BOOTSTRAP PURPOSES
input[type=text], input[type=password], select, textarea{
	paddding-bottom:0px !important;
	border-radius:0 !important;
	border:none !important;
	border-bottom:1px solid #CCC !important;
	font-size:16px !important;	
	background-color:#FAFAFA !important;
}
*/

.tooltip, .tooltip_disabled, .tooltip_nolink {
	margin:1px;
	padding:1px;
	vertical-align:bottom;
}
.tooltip:hover {
	margin:0px;
	border:#999999 1px solid;
	background-color:#CCCCCC;
	cursor:pointer;
}
.tooltip_disabled:hover {
	cursor:default;
}
/***********************************************************************/
.hidden {
	display:none;
}

.icon {
	margin-right:10px;
	vertical-align:middle;
}

#overlay {
	/*background-image:url(../images/white.png);*/
		/* must be initially hidden */
	display:none;
	/* place overlay on top of other elements */
	z-index:10000;
	/* styling */
	background-color:#FFF;
	width:600px;
	height:auto;
	border:1px solid #999;
	padding:0px;
	margin:0px;
	/* CSS3 styling for latest browsers */
	-moz-box-shadow:0 0 15px 5px #000;
	-webkit-box-shadow: 0 0 15px #000;
}
/* container for external content. uses vertical scrollbar, if needed */
	div.contentWrap {
	overflow-y:hidden;
	margin:20px;
}
/* the overlayed element */
	
/* default close button positioned on upper right corner */
.apple_overlay .close {
	background-image:url(../images/close.png);
	position:absolute;
	right:-20px;
	top:-20px;
	cursor:pointer;
	height:35px;
	width:35px;
}
.full {
	font-weight:bold;
}
.over {
	color:red;
	font-weight:bold;
}
#loading {
	display:none;
}
#submitbutton:hover, .buttons:hover {
	background-color:#000000 !important;
}
.highlight_red {
	background-color:#FFCCCC;
}
.table_container {
	margin-bottom:50px;
}
.divheader {
	text-align:left;
	margin: 0px 0px 0px 0px;
	padding-top: 5px;
	padding-bottom: 15px;
	padding-left:0px;
	color: #000;
	font-weight:bold;
	font-size:20px;
}
.innerRow .innerCol {
	border-right:1px dashed #DADADA;
}
#message {
	color:#CC0000;
	margin-bottom:10px;
}
#msgwrapper {
	display:none;
	width:100%;
	z-index:1000;
	top:0;
}
.stick {
	position:fixed;
	top:0;
}
#msg {
	margin:0 auto;
}
.page_link a, .page_link a:visited, .page_link a:active {
	border:1px solid #FFF;
	padding:0px 3px;
	margin:0px 2px;
	text-decoration:none;
	color:#666;
	-webkit-border-radius:3px;
	-moz-border-radius:3px;
	border-radius:3px;
}
.page_link a:hover {
	border:1px solid #999999;
	background-color:#CCC;
	color:#000000;
}
.page_current {
	border:1px solid #000;
	background-color:#000;
	padding:0px 3px;
	margin:0px 2px;
	color:#FFF;
	font-weight:bold;
	border-radius:3px;
	-webkit-border-radius:3px;
	-moz-border-radius:3px;
}
.booking-header {
	width:400px !important;
	border:#333 1px solid !important;
	padding:10px 0px !important;
	font-size:24px !important;
	font-weight:normal !important;
	text-align:center !important;
	margin:10px auto 30px auto !important;
	color:#FFF !important;
	background:url(../images/calendar_nav_bg.png) left center repeat-x !important;
	border-radius:10px;
	-moz-border-radius:10px;
	-webkit-border-radius:10px;

}

.print_msg{
	display:none;
}

.info_box{
	font-family: "Trebuchet MS", Arial, sans-serif !important;	
}

.ui-dropdownchecklist-selector-wrapper, .ui-widget.ui-dropdownchecklist-selector-wrapper, .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default{
	font-size: inherit !important;
	background-color: none!important;
	font-family: inherit !important;
		
}

.modal-dialog {
  max-width: 800px;
}

.modal-body {
  max-height: 80vh;
  overflow-y: auto;
}

/* Hover effect ONLY on collapsed headers */
.accordion-button.collapsed:hover {
  background-color: #f8f9fa; /* Light background on hover */
  color: #0d6efd;            /* Bootstrap primary */
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  transform: scale(1.01);
  transition: all 0.2s ease-in-out;
}

/* Prevent hover effect when already expanded */
.accordion-button:not(.collapsed):hover {
  background-color: inherit;
  color: inherit;
  box-shadow: none;
  transform: none;
}

.assigned-ribbon {
  position: absolute;
  top: 0;
  left: 0;
  background: #0d6efd; /* Bootstrap primary */
  color: white;
  font-size: 10px;
  font-weight: bold;
  padding: 2px 6px;
  border-bottom-right-radius: 6px;
  z-index: 10;
  box-shadow: 0 0 2px rgba(0,0,0,0.3);
}

.badge-select .auto-toggle-wrapper {
  pointer-events: none;
}

.badge-select .auto-award-toggle {
  pointer-events: all; /* allow direct interaction with checkbox */
}

.event-selectable{
	cursor: pointer;
}
.event-selectable.selected, .event-card.selected {
  border: 2px solid #0d6efd;
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
	cursor: pointer;
}

.selectable-card.selected, .event-selectable.selected, .event-card.required {
  background-color: #e7f3ff !important; /* light blue */
  border-color: #0d6efd !important;
}

.floating-message {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 1rem 2rem;
  color: #fff;
  font-weight: bold;
  border-radius: 8px;
  z-index: 9999;
  max-width: 90%;
  text-align: center;
  display: none;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

.floating-message-container {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1055; /* Above most Bootstrap components */
  max-width: 90%;
  border-radius: 0.5rem;
  box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.2);
}

.floating-message-close {
  position: absolute;
  top: 0.25rem;
  right: 0.5rem;
  z-index: 1;
}

.bg-success {
  background-color: #198754;
}
.bg-danger {
  background-color: #dc3545;
}

.ribbon {
  position: absolute;
  top: 1.7rem;
  right: -2rem;
  width: 150px;
  padding: 0.4rem 1.25rem;
  font-size: 0.75rem;
  font-weight: bold;
  color: white;
  background-color: #dc3545; /* default (danger) */
  transform: rotate(45deg);
  z-index: 10;
  text-align: center;
  pointer-events: none;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
}

@media (max-width: 576px) {
  .ribbon {
    font-size: 0.65rem;
  }
}


.ribbon-warning {
  background-color: #ffc107;
}

.ribbon-danger {
  background-color: #dc3545;
}

.ribbon-secondary {
  background-color: #6c757d;
}