/*******************************
* MODAL AS LEFT/RIGHT SIDEBAR
* Add "left" or "right" in modal parent div, after class="modal".
* Get free snippets on bootpen.com
*******************************/
.modal.left .modal-dialog,
.modal.right .modal-dialog {
	position: fixed;
	margin: auto;
	width: 320px;
	height: 100%;
	-webkit-transform: translate3d(0%, 0, 0);
	    -ms-transform: translate3d(0%, 0, 0);
	     -o-transform: translate3d(0%, 0, 0);
	        transform: translate3d(0%, 0, 0);
}

.modal.left .modal-content,
.modal.right .modal-content {
	height: 100%;
	overflow-y: auto;
}

.modal.left .modal-body,
.modal.right .modal-body {
	padding: 15px 15px 80px;
}

/*Left*/
.modal.left.fade .modal-dialog{
	left: -320px;
	-webkit-transition: opacity 0.3s linear, left 0.3s ease-out;
	   -moz-transition: opacity 0.3s linear, left 0.3s ease-out;
	     -o-transition: opacity 0.3s linear, left 0.3s ease-out;
	        transition: opacity 0.3s linear, left 0.3s ease-out;
}

.modal.left.fade.in .modal-dialog{
	left: 0;
}
    
/*Right*/
.modal.right.fade .modal-dialog {
	right: -320px;
	-webkit-transition: opacity 0.3s linear, right 0.3s ease-out;
	   -moz-transition: opacity 0.3s linear, right 0.3s ease-out;
	     -o-transition: opacity 0.3s linear, right 0.3s ease-out;
	        transition: opacity 0.3s linear, right 0.3s ease-out;
}

.modal.right.fade.in .modal-dialog {
	right: 0;
}

/* ----- MODAL STYLE ----- */
.modal-content {
	border-radius: 0;
	border: none;
}

.modal-header {
	border-bottom-color: #EEEEEE;
	background-color: #FAFAFA;
}

/* ----- v CAN BE DELETED v ----- */
body {
	background-color: #78909C;
}

.demo {
	padding-top: 60px;
	padding-bottom: 110px;
}

.btn-demo {
	margin: 15px;
	padding: 10px 15px;
	border-radius: 0;
	font-size: 16px;
	background-color: #FFFFFF;
}

.btn-demo:focus {
	outline: 0;
}

.demo-footer {
	position: fixed;
	bottom: 0;
	width: 100%;
	padding: 15px;
	background-color: #212121;
	text-align: center;
}

.demo-footer > a {
	text-decoration: none;
	font-weight: bold;
	font-size: 16px;
	color: #fff;
}

/* Profile card beneath the left menu (name, company, sign out). .uname is turned into a small circular initials avatar by the
   jquery.nameBadges.js plugin; until that has run (or if it never does) the raw name text is hidden so it never shows twice. */
.sky-profile {
	/* pinned to the bottom of the sidebar, outside the scrolling menu: the menu scrolls, the name stays */
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 5;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 11px 14px 12px;
	/* an embossed plate: a lit top edge, a darker body that fades down, a shadow thrown up onto the menu above it */
	border-top: 1px solid rgba(255, 255, 255, .18);
	background: linear-gradient(180deg, #2c383d 0%, #1f292d 55%, #182024 100%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .10), inset 0 -2px 3px rgba(0, 0, 0, .35), 0 -6px 14px rgba(0, 0, 0, .32);
}
/* The theme's logo bar is 59px tall but the sidebar started its content at 50px, leaving a strip of sidebar colour under the SkyCASH bar.
   On phones the bars stack and sky_styles.php sets its own offset. */
@media (min-width: 768px) {
	body.fixed .main-sidebar { padding-top: 59px; }
}
/* The menu scrolls natively: it fills the sidebar under the logo bar and scrolls by itself, with the profile card staying put below it. */
body.fixed .main-sidebar .sidebar {
	height: 100%;
	overflow-y: auto;
	overflow-x: hidden;
	overscroll-behavior: contain;       /* scrolling the menu never drags the page behind it */
	-webkit-overflow-scrolling: touch;  /* momentum scrolling on phones and tablets */
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, .25) transparent;
}
body.fixed .main-sidebar .sidebar::-webkit-scrollbar { width: 6px; }
body.fixed .main-sidebar .sidebar::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, .25); border-radius: 3px; }
body.fixed .main-sidebar .sidebar::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, .4); }
/* room under the last menu item so it can scroll clear of the pinned card */
.main-sidebar .sidebar-menu { padding-bottom: 88px; }
.fixed .main-sidebar { bottom: 0; }
.sky-profile .uname {
	flex: 0 0 30px;
	width: 30px;
	height: 30px;
	overflow: hidden;
	font-size: 0;
	line-height: 1;
	border-radius: 50%;
	box-shadow: 0 1px 0 rgba(255, 255, 255, .14), 0 2px 4px rgba(0, 0, 0, .5);   /* a little raised, like a button on the plate */
}
.sky-profile-t { flex: 1; min-width: 0; }
.sky-profile-t .n { color: #f4f8fa; text-shadow: 0 -1px 0 rgba(0, 0, 0, .65), 0 1px 0 rgba(255, 255, 255, .14); font-weight: 600; font-size: 13px; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sky-profile-t .d { color: #c9d6dc; text-shadow: 0 -1px 0 rgba(0, 0, 0, .6), 0 1px 0 rgba(255, 255, 255, .10); font-size: 11px; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sky-profile-t .c { color: #94adb8; text-shadow: 0 -1px 0 rgba(0, 0, 0, .6), 0 1px 0 rgba(255, 255, 255, .08); font-size: 11px; text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sky-profile-out { color: #b8c7ce; font-size: 18px; padding: 4px 7px; border-radius: 6px; text-shadow: 0 -1px 0 rgba(0, 0, 0, .6); background: linear-gradient(180deg, rgba(255, 255, 255, .09), rgba(0, 0, 0, .12)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), 0 1px 2px rgba(0, 0, 0, .45); }
.sky-profile-out:hover, .sky-profile-out:focus { color: #fff; background: linear-gradient(180deg, rgba(255, 255, 255, .16), rgba(0, 0, 0, .08)); text-decoration: none; }
.sky-profile-out:active { box-shadow: inset 0 2px 3px rgba(0, 0, 0, .5); transform: translateY(1px); }
/* collapsed (icons-only) sidebar: just the avatar */
.sidebar-mini.sidebar-collapse .sky-profile { justify-content: center; padding: 8px 0; }
.sidebar-mini.sidebar-collapse .sky-profile-t,
.sidebar-mini.sidebar-collapse .sky-profile-out { display: none; }

/* Loan calculator icon in the top bar, beside the notification bell */
.navbar-nav > .sky-calc-nav > a { font-size: 16px; }

/* AdminLTE.css sets .form-control border-radius to 0 -- round all inputs,
   selects and textareas app-wide instead. */
.form-control,
input.form-control,
select.form-control,
textarea.form-control {
	border-radius: 4px;
}

/* Shared "report tile" grid -- used by any page that used to lay out a
   wall of differently-colored .btn buttons for report/action links
   (general-reports, hr-reports, account-library, back-office, etc).
   auto-fill + 1fr means it always fills the row completely, whether that
   takes 2 columns or 5, instead of leaving dead space on the right. */
.sky-report-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(185px, 1fr));
	gap: 14px;
	padding: 4px 0;
}
.sky-report-tile {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 64px;
	padding: 12px 16px;
	background: #fff;
	border: 1px solid #e7e7e7;
	border-left: 4px solid #d2d6de;
	border-radius: 6px;
	box-shadow: 0 1px 2px rgba(0,0,0,0.06);
	cursor: pointer;
	text-align: left;
	color: #2c3e50;
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.sky-report-tile:hover,
.sky-report-tile:focus {
	box-shadow: 0 4px 10px rgba(0,0,0,0.14);
	transform: translateY(-2px);
	color: #2c3e50;
	text-decoration: none;
	outline: none;
}
.sky-report-tile .sky-report-icon {
	font-size: 20px;
	flex: 0 0 26px;
	text-align: center;
}
.sky-report-tile .sky-report-label {
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
}
.sky-report-section.sky-c-blue .sky-report-tile { border-left-color: #3c8dbc; }
.sky-report-section.sky-c-blue .sky-report-icon { color: #3c8dbc; }
.sky-report-section.sky-c-teal .sky-report-tile { border-left-color: #00c0ef; }
.sky-report-section.sky-c-teal .sky-report-icon { color: #00c0ef; }
.sky-report-section.sky-c-orange .sky-report-tile { border-left-color: #f39c12; }
.sky-report-section.sky-c-orange .sky-report-icon { color: #f39c12; }
.sky-report-section.sky-c-green .sky-report-tile { border-left-color: #00a65a; }
.sky-report-section.sky-c-green .sky-report-icon { color: #00a65a; }
.sky-report-section.sky-c-red .sky-report-tile { border-left-color: #dd4b39; }
.sky-report-section.sky-c-red .sky-report-icon { color: #dd4b39; }
.sky-report-section.sky-c-purple .sky-report-tile { border-left-color: #605ca8; }
.sky-report-section.sky-c-purple .sky-report-icon { color: #605ca8; }

/* AdminLTE.css's own rule for rotating the treeview arrow when a menu is
   active/open is malformed (an extra "> a >" segment that can never match
   the sidebar's actual markup, li.treeview > a > .pull-right-container >
   .fa-angle-left), so the arrow never rotated even when the submenu
   toggle itself worked correctly. Corrected version: */
.sidebar-menu li.active > a > .pull-right-container > .fa-angle-left {
	-webkit-transform: rotate(-90deg);
	-ms-transform: rotate(-90deg);
	-o-transform: rotate(-90deg);
	transform: rotate(-90deg);
}

/* Seasonal logo decoration -- a handful of small particles falling/
   floating over the logo, on top of (never replacing) the SkyCASH text.
   Theme + date window chosen in sky_header_navbar.php. */
.main-header .logo {
	position: relative;
	overflow: visible;
}
/* SkyCASH wordmark: centred horizontally and vertically in its bar, whatever the bar's height (50px on desktop, 40px on phones)
   and whichever of the full / collapsed versions is showing. The body prefix beats the phone-size rule in sky_styles.php. */
body .main-header .logo {
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1 !important;
	padding-top: 0;
	padding-bottom: 0;
	text-align: center;
}
body .main-header .logo .logo-lg,
body .main-header .logo .logo-mini {
	line-height: 1;
	margin: 0;
	padding: 0;
	white-space: nowrap;
}
.sky-season-fx {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	overflow: hidden;
	pointer-events: none;
	z-index: 1;
}
.sky-season-particle {
	position: absolute;
	top: -10%;
	font-style: normal;
	font-size: 14px;
	line-height: 1;
	opacity: 0;
	animation-name: sky-season-fall;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}
@keyframes sky-season-fall {
	0%   { transform: translateY(0) rotate(0deg); opacity: 0; }
	10%  { opacity: 0.9; }
	90%  { opacity: 0.9; }
	100% { transform: translateY(70px) rotate(45deg); opacity: 0; }
}
.sky-season-particle:nth-child(1) { left: 5%;  animation-duration: 3.2s; animation-delay: 0s; }
.sky-season-particle:nth-child(2) { left: 18%; animation-duration: 4.1s; animation-delay: 0.6s; }
.sky-season-particle:nth-child(3) { left: 32%; animation-duration: 3.6s; animation-delay: 1.3s; }
.sky-season-particle:nth-child(4) { left: 46%; animation-duration: 4.4s; animation-delay: 0.2s; }
.sky-season-particle:nth-child(5) { left: 58%; animation-duration: 3.0s; animation-delay: 1.8s; }
.sky-season-particle:nth-child(6) { left: 70%; animation-duration: 4.2s; animation-delay: 0.9s; }
.sky-season-particle:nth-child(7) { left: 82%; animation-duration: 3.5s; animation-delay: 1.5s; }
.sky-season-particle:nth-child(8) { left: 92%; animation-duration: 3.9s; animation-delay: 0.4s; }

.sky-season-christmas .sky-season-particle::before { content: '\2744'; color: #fff; }
.sky-season-newyear .sky-season-particle::before { content: '\2728'; color: #ffd700; }
.sky-season-newyear .sky-season-particle:nth-child(even)::before { content: '\1F389'; }
.sky-season-valentine .sky-season-particle::before { content: '\2764'; color: #ff6b9d; }
.sky-season-easter .sky-season-particle::before { content: '\1F95A'; }
.sky-season-easter .sky-season-particle:nth-child(3n)::before { content: '\1F430'; }
.sky-season-halloween .sky-season-particle::before { content: '\1F987'; }
.sky-season-halloween .sky-season-particle:nth-child(even)::before { content: '\1F383'; }
.sky-season-independence .sky-season-particle::before { content: '\2605'; color: #fcd116; }
.sky-season-independence .sky-season-particle:nth-child(3n)::before { color: #ce1126; }
.sky-season-independence .sky-season-particle:nth-child(3n+1)::before { color: #006b3f; }

/* AdminLTE.css also zeroes ALL corners of .input-group-addon (the icon box
   next to an input, e.g. Date of Birth / Telephone Number), not just the
   side touching the input -- so the addon's outer corner needs its own
   rounding restored to match the now-rounded .form-control it sits next to. */
.input-group .input-group-addon:first-child {
	border-top-left-radius: 4px;
	border-bottom-left-radius: 4px;
}
.input-group .input-group-addon:last-child {
	border-top-right-radius: 4px;
	border-bottom-right-radius: 4px;
}
/* ---- Menu shell: pages shown inside the content frame ----
   A page loaded into the shell's frame (body.sky-embedded) has no top bar or left menu of its own, so its content starts at the top-left. */
body.sky-embedded .content-wrapper,
body.sky-embedded .right-side,
body.sky-embedded .main-footer,
body.sky-embedded.fixed .content-wrapper,
body.sky-embedded.sidebar-mini.sidebar-collapse .content-wrapper { margin-left: 0 !important; padding-top: 0 !important; }
body.sky-embedded .main-footer { display: none; }
body.sky-embedded .sky-skip { display: none; }

/* The shell: the content frame sits where .content-wrapper normally is, beside the left menu and under the top bar. It appears on the first menu
   click; until then (and after a refresh) the server-rendered page is shown as usual. */
.sky-shell { display: none; }
body.sky-shell-on .content-wrapper:not(.sky-shell) { display: none; }
/* the footer stays on screen under the frame, so it shows on every page, not only after a refresh */
body.sky-shell-on .main-footer {
	display: block;
	position: fixed;
	bottom: 0;
	right: 0;
	left: 230px;
	margin: 0 !important;
	height: 44px;
	padding: 12px 15px;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	z-index: 825;
	transition: left 0.3s ease-in-out;
}
body.sky-shell-on.sidebar-mini.sidebar-collapse .main-footer { left: 50px; }
body.sky-shell-on .sky-shell {
	display: block;
	position: fixed;
	top: 59px;
	right: 0;
	bottom: 44px;               /* the footer sits under the frame */
	left: 230px;
	margin: 0 !important;       /* the theme adds margin-left to anything called .content-wrapper: the frame is placed with left: instead */
	padding: 0 !important;
	min-height: 0 !important;   /* and sets a minimum height from the window: the frame is sized by top/bottom */
	z-index: 820;
	background: #ecf0f5;
	transition: left 0.3s ease-in-out, transform 0.3s ease-in-out;
}
/* the theme's own rules for .content-wrapper in each menu state are more specific than the one above: match them so the frame's margin stays 0 */
body.sky-shell-on.sidebar-mini .sky-shell,
body.sky-shell-on.sidebar-mini.sidebar-collapse .sky-shell,
body.sky-shell-on.sidebar-open .sky-shell { margin-left: 0 !important; }
body.sky-shell-on.sidebar-mini.sidebar-collapse .sky-shell { left: 50px; }
.sky-shell iframe { display: block; width: 100%; height: 100%; border: 0; background: #ecf0f5; }
.sky-shell-bar { position: absolute; top: 0; left: 0; height: 3px; width: 0; background: #7b3a6b; z-index: 2; opacity: 0; transition: width 6s cubic-bezier(.1, .8, .2, 1), opacity .2s; }
.sky-shell-bar.on { width: 85%; opacity: 1; }
@media (max-width: 767px) {
	body.sky-shell-on .sky-shell { left: 0; top: 80px; }
	body.sky-shell-on .main-footer, body.sky-shell-on.sidebar-mini.sidebar-collapse .main-footer { left: 0; }
	body.sky-shell-on.sidebar-open .sky-shell { transform: translate(230px, 0); }
}
