/* Blue: Very Light - #609EF3, Light - #2462B6, Dark - #174C95 */

.calendar_mainContainer, .calendar_mainContainer * { box-sizing:border-box; }
.calendar_mainContainer { height:100%; position:relative; width:100%; }
.calendar_mainContainer input[type="button"], .calendar_mainContainer input[type="submit"], .calendar_mainContainer button {
	background:#2462B6; border:2px outset #174C95; border-radius:10px; color:white; cursor:pointer; font-weight:bold; padding:5px; }
.calendar_mainContainer input[type="button"]:hover, .calendar_mainContainer input[type="submit"]:hover, .calendar_mainContainer button:hover
	{ background:#174C95; }
.calendar_mainContainer input[type="button"]:active, .calendar_mainContainer input[type="submit"]:active, .calendar_mainContainer button:active
	{ background:#174C95; border-style:inset; }
input[type].deleteBtn { background:#E00; border-color:#A00; }
input[type].deleteBtn:hover, input[type].deleteBtn:focus { background:#A00; }

/* Admin styles */

/* Control Panel */
.calendar_controlPanelScreen { align-items:flex-start; display:flex; height:100%; justify-content:center; }
.calendar_controlPanel { background:#2462B6; border:2px ridge #174C95; border-radius:15px; display:flex; flex-direction:column;
	justify-content:space-between; padding:25px; }
.calendar_controlPanel > input { margin:5px auto; width:100%; }

/* New calendar */
.calendar_newCalendarForm { display:flex; flex-direction:column; justify-content:space-between; margin-bottom:0; }
.calendar_newCalendarForm > div { margin:5px 0; }
.calendar_newCalendarNameWrapper { color:white; display:flex; font-weight:bold; justify-content:space-between; }
.calendar_newCalendarDateWrapper { color:white; font-weight:bold; }
.calendar_newCalendarInputsWrapper { display:flex; justify-content:space-around; }
.calendar_newCalendarInputWrapper > input { max-width:100px; }
.calendar_newCalendarButtonWrapper { display:flex; justify-content:space-around; }
.calendar_newCalendarButtonWrapper > input { width:35%; }

/* View calendar */
.calendar_viewCalendarRegistrantsWrapper { border:1px solid; border-right:none; overflow-y:auto; text-align:center; width:10%; }
.calendar_viewCalendarWrapper { display:flex; height:100%; width:100%; }
.calendar_viewAdminCalendarMainWrapper { display:flex; flex-direction:column; width:80%; }
.calendar_viewCalendarMainHeader { border:1px solid; border-bottom:none; display:flex; font:25px cursive; height:10%; justify-content:center; padding:0 5px; }
.calendar_viewCalendarMainHeaderInput { border:none; flex-grow:2; font-size:25px; text-align:center; }
.calendar_viewCalendarTitleSave, .calendar_viewCalendarTitleCancel { display:none; height:70%; margin:15% 1px; }
.calendar_viewCalendarMainHeaderInput.focus ~ .calendar_viewCalendarTitleSave,
.calendar_viewCalendarMainHeaderInput.focus ~ .calendar_viewCalendarTitleCancel { display:block; }
.calendar_viewCalendarMainBody { border:3px inset; border-bottom:1px solid black; height:90%; overflow-y:scroll; }
.calendar_viewCalendarControlsWrapper { border:1px solid; border-left:none; display:flex; flex-direction:column; justify-content:center; width:10%; }
.calendar_viewCalendarControlsWrapper > input { margin:3px 5px; }

/* Registrants list */
.calendar_viewCalendarRegistantsTitle { margin-bottom:5px; text-decoration:underline; }
.calendar_viewCalendarRegistantsList {}
.calendar_viewCalendarRegistantsList:empty:before { content:'No registrants'; font-style:italic; }
.calendar_viewCalendarRegistrant { border:1px solid; border-radius:5px; cursor:pointer; font-size:10pt; margin:0 5px 5px; padding:1px; }
.calendar_viewCalendarRegistrantTitle { font-weight:bold; overflow:hidden; white-space:nowrap; }
.calendar_viewCalendarRegistrant.selected { background:#2462B6; border-color:#174C95; }

/* Daily view */
.calendar_viewCalendarDailyDay { border-bottom:1px solid; display:flex; flex-wrap:wrap; }
.calendar_viewCalendarDailyDay:last-child { border-bottom:none; }
.calendar_viewCalendarDailyHeader { background:white; border-bottom:2px ridge; font-family:cursive; font-weight:bold;
	position:sticky; text-align:center; top:0; width:100%; z-index:10; }
.calendar_viewCalendarDailyHours { border-right:1px solid; }
.calendar_viewCalendarDailyTimePeriod { border-bottom:1px solid grey; color:#555; font-size:10pt; height:25px; text-align:center; }
.calendar_viewCalendarDailyTimePeriod:last-child { border-bottom:none; }
.calendar_viewCalendarDailyColumn { border-right:1px dotted grey; flex-grow:2; position:relative; }
.calendar_viewCalendarDailyColumn:last-child { border-right:none; }
.calendar_viewCalendarDailyColumnSection { border-bottom:1px dotted grey; height:25px; }
.calendar_viewCalendarDailyColumnSection:last-of-type { border-bottom:none; }

/* Daily events */
.calendar_viewCalendarDailyEvent {
	--default-bg-color: lightblue;
}
.calendar_viewCalendarDailyEvent {
	border: 1px solid;
	background: var(--default-bg-color);
	cursor: pointer;
	overflow: hidden;
	position: absolute;
	text-align: center;
	width: 100%;
	z-index: 1;
}
.calendar_viewCalendarDailyEvent:hover, .calendar_viewCalendarDailyEvent.highlight {
	border-color: var(--default-bg-color);
	box-shadow: 0 0 4px 1px var(--default-bg-color);
	z-index: 2;
}
.calendar_viewCalendarDailyEventTitle {
	margin: 0 0 5px;
}
.calendar_viewCalendarDailyEventDescription {
	text-align: center;
	margin: 0 10px;
}

.calendar_viewCalendarDailyEventPromptText {
	background: inherit;
	bottom: 0;
	font-size: 10pt;
	left: 0;
	position: absolute;
	text-align: center;
	width: 100%;
}

/* Edit calendar */
.calendar_editCalendarForm { color:white; display:flex; flex-direction:column; font-weight:bold; justify-content:space-between;
	margin-bottom:0; max-width:500px; }
.calendar_editCalendarForm > div { margin:5px 0; }
.calendar_editCalendarNameWrapper { display:flex; justify-content:space-between; }
.calendar_editCalendarInputsWrapper { display:flex; justify-content:space-around; }
.calendar_editCalendarInputWrapper > input { max-width:100px; }
.calendar_editCalendarRequiredWrapper { display:flex; flex-direction:column; }
.calendar_editCalendarNote { font-size:10pt; font-style:italic; }
.calendar_editCalendarLinkBtn { margin-left:15px; }
.calendar_editCalendarLinkForm { display:flex; justify-content:space-between; }
.calendar_editCalendarLinksList { display:flex; flex-wrap:wrap; justify-content:space-around; }
.calendar_editCalendarLinksList > div { border:1px solid; cursor:pointer; border-radius:5px; margin:3px 0; padding:3px 10px; }
.calendar_editCalendarLinkField { width:25%; }
.calendar_editCalendarLinkField > input { width:100%; }
.calendar_editCalendarButtonWrapper { display:flex; justify-content:space-around; }
.calendar_editCalendarButtonWrapper > input { width:35%; }

/* Calendar stats */
.calendar_viewStatsWrapper { color:white; display:flex; flex-wrap:wrap; font-weight:bold; justify-content:space-between; max-width:500px; }
.calendar_viewStatsWrapper > div { min-width:50%; }
div.calendar_viewStatsRegistrants { text-align:center; width:100%; }
div.calendar_viewStatsEventRegistrantsHeader { width:100%; }
div.calendar_viewStatsEventsPerDayHeader, div.calendar_viewStatsRegistrantsPerDayHeader { margin-top:10px; width:100%; }
div.calendar_viewStatsButtonWrapper { display:flex; justify-content:space-around; margin-top:10px; width:100%; }

/* Edit event */
.calendar_editEventForm { color:white; display:flex; flex-direction:column; font-weight:bold; justify-content:space-between;
	margin-bottom:0; max-width:400px; }
.calendar_editEventForm > div { margin:5px 0; }
.calendar_editEventTitleWrapper { display:flex; justify-content:space-between; }
.calendar_editEventTitle { width:50%; }
.calendar_editEventInputsWrapper { display:flex; flex-wrap:wrap; justify-content:space-around; }
.calendar_editEventInputWrapper > input { max-width:100px; }
.calendar_editEventNote { font-size:10pt; font-style:italic; }
.calendar_editEventDescription { height:70px; width:100%; resize:none; }
.calendar_editEventCeusWrapper { display:flex; justify-content:space-around; }
.calendar_editEventCeusWrapper > span > * { display:block; }
.calendar_editEventCeusCertWrapper { display:none; }
.calendar_editEventCeusList ,.calendar_editEventBundleList { display:flex; flex-wrap: wrap; justify-content:space-around; }
.calendar_editEventCert,.calendar_editEventBundle { border: 1px solid; cursor: pointer; border-radius: 5px; margin: 3px 0; padding: 3px 10px; }
.calendar_editEventLinkBtn { margin-left:15px; }
.calendar_editEventLinkForm { display:flex; justify-content:space-between; }
.calendar_editEventLinksList { display:flex; flex-wrap:wrap; justify-content:space-around; }
.calendar_editEventLinksList > div { border:1px solid; cursor:pointer; border-radius:5px; margin:3px 0; padding:3px 10px; }
.calendar_editEventLinkField { width:25%; }
.calendar_editEventLinkField > input { width:100%; }
.calendar_editEventButtonWrapper { display:flex; justify-content:space-around; }
.calendar_editEventButtonWrapper > input { width:35%; }
.calendar_editEventCeusAmnt {width: 100;}
.calendar_editEventCeusType {width: 200;}

/* Popup */
.calendar_popupBack { align-items:flex-start; background:rgba(255, 255, 255, 0.5); display:flex; height:100%; justify-content:center;
	position:fixed; top:0; width:100%; z-index:100; }
.calendar_popup { background:#2462B6; border:3px outset #174C95; border-radius:15px; /* max-height:100%;  */padding:20px 15px;height: 100%;overflow-y: scroll; }

/* User styles */

/* Calendar */
.calendar_viewCalendarRegisteredWrapper { border:1px solid; border-right:none; text-align:center; width:10%; }
.calendar_viewCalendarRegisteredTitle { height:10%; }
.calendar_viewCalendarRegisteredList { display:flex; flex-direction:column; height:80%; overflow:auto; }
.calendar_viewCalendarRegisteredList > div { margin:10px 0; }
.calendar_viewRegistrantCalendarMainWrapper { display:flex; flex-direction:column; width:90%; }
.calendar_viewCalendarRegisteredFooter { height:10%; }

/* Registered Events */
.calendar_viewCalendarRegisteredTitle { text-decoration:underline; }
.calendar_viewCalendarRegisteredDate { margin:0 auto 5px; text-align:center; }
.calendar_viewCalendarRegisteredEvent { border:1px solid; border-radius:5px; cursor:pointer; font-size:10pt; margin:0 5px 5px;
	padding:1px; }
.calendar_viewCalendarRegisteredEvent.conflict { background:red; border-color:red; color:white; }
.calendar_viewCalendarRegisteredEventTitle { font-weight:bold; overflow:hidden; white-space:nowrap; }

/* Daily Calendar */
.calendar_viewCalendarDailyEvent.selected { background:#609EF3; }
.calendar_viewCalendarDailyEvent.selected:hover, .calendar_viewCalendarDailyEvent.selected.highlight { border-color:#609EF3; box-shadow:0 0 4px 1px #609EF3; }
.calendar_viewCalendarDailyEvent.required { background:teal; }
.calendar_viewCalendarDailyEvent.required:hover, .calendar_viewCalendarDailyEvent.required.highlight { border-color:teal; box-shadow:0 0 4px 1px teal; }
.calendar_viewCalendarDailyEvent.default { background:#888; }
.calendar_viewCalendarDailyEvent.default:hover, .calendar_viewCalendarDailyEvent.default.highlight { border-color:#888; box-shadow:0 0 4px 1px #888; }
.calendar_viewCalendarDailyEvent.conflict { background:red; }
.calendar_viewCalendarDailyEvent.conflict:hover, .calendar_viewCalendarDailyEvent.conflict.highlight { border-color:red; box-shadow:0 0 4px 1px red; }

/* View event */
.calendar_viewEventForm { color:white; display:flex; flex-direction:column; justify-content:space-between;
	margin-bottom:0; max-width:600px; text-align:center; }
.calendar_viewEventForm > div { margin:5px 0; }
.calendar_viewEventTitle { margin-top:0; }
.calendar_viewEventDescription { overflow:auto; text-align:justify; }
.calendar_viewEventExtraLinks { display:flex; flex-wrap:wrap; justify-content:space-around; text-align:left; }
.calendar_viewEventExtraLinks a { color:#40E0D0; }
.calendar_viewEventExtraLinks a:active { color:red; }
.calendar_viewEventButtonWrapper { display:flex; justify-content:space-around; }

/* Login Form */
.calendar_loginForm { color:white; margin-bottom:0; width:300px; }
.calendar_loginFormTitle { font-style:italic; font-weight:bold; margin-bottom:10px; text-align:center; }
.calendar_loginFormRow { display:flex; justify-content:space-between; margin:5px 0; }
.calendar_loginFormRow > input { margin:0 5px; width:70%; }
.calendar_loginFormBtns { justify-content:space-around; }
.calendar_loginFormErrMsg { background:maroon; border-radius:10px; padding:5px 10px; text-align:center; }
.calendar_loginFormErrMsg:before { content:'\f071'; font-family:fontawesome; margin-right:5px; }
.calendar_loginFormErrMsg:empty { display:none; }