/* ------------------------------------------------------------------------------
 *
 *  # Sweet alerts
 *
 *  Styles for sweet_alert.min.js - A beautiful replacement for JavaScript's "Alert"
 *
 *  Version: 1.1
 *  Latest update: Oct 28, 2015
 *
 * ---------------------------------------------------------------------------- */


/* # Core
-------------------------------------------------- */

	// Disable scrolling
	body.stop-scrolling {
		overflow: hidden;
	}

	// Overlay
	.sweet-overlay {
		background-color: fade(#000, 40%);
		position: fixed;
		left: 0;
		right: 0;
		top: 0;
		bottom: 0;
		display: none;
		z-index: @zindex-modal;
	}

	// Alert
	.sweet-alert {
		background-color: #fff;
		width: 470px;
		padding: @content-padding-large;
		border-radius: @border-radius-base;
		text-align: center;
		position: fixed;
		left: 50%;
		top: 50%;
		margin-left: -235px;
		margin-top: -200px;
		overflow: hidden;
		display: none;
		z-index: (@zindex-modal + 10);

		// Heading
		h2 {
			margin-top: (@line-height-computed / 2);
			font-size: @font-size-h4;
			text-align: center;
			display: block;
			position: relative;
		}

		// Paragraph
		p {
			text-align: center;
			position: relative;
		}

		// Fieldset
		fieldset {
			border: none;
			position: relative;
		}

		// Buttons
		button {
			background-color: @brand-primary;
			color: #fff;
			border: 0;
			border-radius: @border-radius-base;
			padding: @padding-base-vertical @content-padding-base;
			margin: (@line-height-computed / 2) 5px 0 5px;
			box-shadow: none!important;

			// Hover state
			&:hover {
				background-color: @color-primary-600;
			}

			// Remove outline on focus
			&:focus {
				outline: 0;
			}

			// Active state
			&:active {
				background-color: @color-primary-400;
			}

			// Cance; button
			&.cancel {
				background-color: transparent;
				color: @text-color;
			}

			// Disabled state
			&[disabled] {
				cursor: default;
				.opacity(0.6);
			}

			// Confirm button disabled state
			&.confirm[disabled] {
				color: transparent;

				// Loading dots
				~ .la-ball-fall {
					visibility: visible;
					.transition-delay(0s);
					.opacity(1);
				}
			}

			// Hack to remove border in FF
			&::-moz-focus-inner {
				border: 0;
			}
		}

		// If no cancel button
		&[data-has-cancel-button=false] {

			// Button
			button {
				.box-shadow(none)!important;
			}

			// If no confirm button
			&[data-has-confirm-button=false] {
				padding-bottom: 40px;
			}
		}

		// Error container
		.sa-error-container {
			background-color: #f5f5f5;
			overflow: hidden;
			padding: 0 @content-padding-small;
			max-height: 0;
			border-radius: @border-radius-base;
			@error-container-transition: padding 0.15s, max-height 0.15s;
			.transition(@error-container-transition);

			// Paragraph
			p {
				display: inline-block;
				margin-bottom: 0;
			}

			// When visible
			&.show {
				padding: @content-padding-small 0;
				max-height: 100px;
				@show-error-transition: padding 0.2s, max-height 0.2s;
				.transition(@show-error-transition);
			}

			// Icon
			.icon {
				display: inline-block;
				width: @icon-font-size;
				height: @icon-font-size;
				line-height: @icon-font-size;
				border-radius: 50%;
				background-color: @color-warning-400;
				color: white;
				text-align: center;
				margin-right: @element-horizontal-spacing;
			}
		}

		// Prompt error message
		.sa-input-error {
		    position: absolute;
		    top: 20px;
		    right: @padding-base-horizontal;
		    width: @icon-font-size;
		    height: @icon-font-size;
		    .scale(0.5);
		    .transform-origin(50% 50%);
		    .transition(all 0.1s);
		    .opacity(0);

		    // Cross icon
		    &:before,
		    &:after {
				content: "";
				width: @icon-font-size;
				height: 2px;
				background-color: @color-danger-400;
				border-radius: @border-radius-base;
				position: absolute;
				top: 50%;
				margin-top: -1px;
				left: 50%;
				margin-left: -8px;
		    }
			&:before {
				.rotate(-45deg);
			}
			&:after {
				.rotate(45deg);
			}

			// When visible
			&.show {
				.scale(1);
				.opacity(1);
			}
		}

		// Prompt input field
		input {
		    width: 100%;
		    border-radius: @input-border-radius;
		    border: 1px solid @input-border;
		    margin-top: (@line-height-computed / 2);
		    margin-bottom: (@line-height-computed / 2);
		    font-size: @font-size-base;
		    padding: @padding-base-vertical @padding-base-horizontal;
		    display: none;
		    .box-shadow(0px 1px 1px fade(#000, 5%) inset);
		    .box-sizing(border-box);
		    .placeholder(#bdbdbd);
		    .transition(all 0.3s);

		    // Focus state
		    &:focus {
		    	outline: 0;

		    	// Animate placeholder
		    	&::-moz-placeholder,
		    	&:-ms-input-placeholder,
		    	&::-webkit-input-placeholder {
		    		.transition(opacity ease 0.3s 0.03s);
		    		.opacity(0.5);
		    	}
		    }
		}

		// Show input field
		&.show-input input {
			display: block;
		}

		// Loading button
		.sa-confirm-button-container {
			display: inline-block;
			position: relative;
		}

		// Loading dots
		.la-ball-fall {
			position: absolute;
			left: 50%;
			top: 50%;
			margin-left: -27px;
			margin-top: 0;
			visibility: hidden;
			.opacity(0);
		}

		// Icons
		.sa-icon {
			width: 80px;
			height: 80px;
			border: 4px solid #ddd;
			border-radius: 50%;
			margin: (@line-height-computed / 2) auto @line-height-computed auto;
			padding: 0;
			position: relative;
			.box-sizing(content-box);

			// Error
			&.sa-error {
				border-color: @brand-danger;

				.sa-x-mark {
					position: relative;
					display: block;
				}

				.sa-line {
					position: absolute;
					height: 5px;
					width: 47px;
					background-color: @brand-danger;
					display: block;
					top: 37px;
					border-radius: @border-radius-small;

					&.sa-left {
						left: 17px;
						.rotate(45deg);
					}

					&.sa-right {
						right: 16px;
						.rotate(-45deg);
					}
				}
			}

			// Warning
			&.sa-warning {
				border-color: @brand-warning;

				.sa-body {
					position: absolute;
					width: 5px;
					height: 47px;
					left: 50%;
					top: 10px;
					border-radius: @border-radius-small;
					margin-left: -2px;
					background-color: @brand-warning;
				}
				.sa-dot {
					position: absolute;
					width: 7px;
					height: 7px;
					border-radius: 50%;
					margin-left: -3px;
					left: 50%;
					bottom: 10px;
					background-color: @brand-warning;
				}
			}

			// Info
			&.sa-info {
				border-color: @brand-primary;

				&:before {
					content: "";
					position: absolute;
					width: 5px;
					height: 29px;
					left: 50%;
					bottom: 17px;
					border-radius: @border-radius-small;
					margin-left: -2px;
					background-color: @brand-primary;
				}
				&:after {
					content: "";
					position: absolute;
					width: 7px;
					height: 7px;
					border-radius: 50%;
					margin-left: -3px;
					top: 19px;
					background-color: @brand-primary;
				}
			}

			// Success
			&.sa-success {
				border-color: @brand-success;

				&:before,
				&:after {
					content: '';
					border-radius: 50%;
					position: absolute;
					width: 60px;
					height: 120px;
					background-color: #fff;
					.rotate(45deg);
				}
				&:before {
					border-radius: 120px 0 0 120px;
					top: -7px;
					left: -33px;
					.rotate(-45deg);
					.transform-origin(60px 60px)
				}
				&:after {
					border-radius: 0 120px 120px 0;
					top: -11px;
					left: 30px;
					.rotate(-45deg);
					.transform-origin(0 60px)
				}

				.sa-placeholder {
					width: 80px;
					height: 80px;
					border: 4px solid fade(@brand-success, 20%);
					border-radius: 50%;
					position: absolute;
					left: -4px;
					top: -4px;
					z-index: 2;
					.box-sizing(content-box);
				}

				.sa-fix {
					width: 5px;
					height: 90px;
					background-color: #fff;
					position: absolute;
					left: 28px;
					top: 8px;
					z-index: 1;
					.rotate(-45deg);
				}

				.sa-line {
					height: 5px;
					background-color: @brand-success;
					display: block;
					border-radius: @border-radius-small;
					position: absolute;
					z-index: 2;

					&.sa-tip {
						width: 25px;
						left: 14px;
						top: 46px;
						.rotate(45deg);
					}

					&.sa-long {
						width: 47px;
						right: 8px;
						top: 38px;
						.rotate(-45deg);
					}
				}
			}

			// Custom icon
			&.sa-custom {
				background-size: contain;
				border-radius: 0;
				border: 0;
				background-position: center center;
				background-repeat: no-repeat;
			}
		}


		// Mobile view
		@media (max-width: @screen-xs) {
		    width: auto;
		    margin-left: 0;
		    margin-right: 0;
		    left: @grid-gutter-width;
		    right: @grid-gutter-width;
		}
	}


/* # Animations
-------------------------------------------------- */


	// Modals
	// ------------------------------

	// Show
	@-webkit-keyframes showSweetAlert {
		0% {
			.scale(0.7);
		}
		45% {
			.scale(1.05);
		}
		80% {
			.scale(0.95);
		}
		100% {
			.scale(1);
		}
	}
	@keyframes showSweetAlert {
		0% {
			.scale(0.7);
		}
		45% {
			.scale(1.05);
		}
		80% {
			.scale(0.95);
		}
		100% {
			.scale(1);
		}
	}
	.showSweetAlert[data-animation=pop] {
		.animation(showSweetAlert 0.3s); // with animation
	}
	.showSweetAlert[data-animation=none] {
		.animation(none); // without animation
	}


	// Hide
	@-webkit-keyframes hideSweetAlert {
		0% {
			.scale(1);
		}
		100% {
			.scale(0.5);
		}
	}
	@keyframes hideSweetAlert {
		0% {
			.scale(1);
		}
		100% {
			.scale(0.5);
		}
	}
	.hideSweetAlert[data-animation=pop] {
		.animation(hideSweetAlert 0.2s); // with animation
	}
	.hideSweetAlert[data-animation=none] {
		.animation(none); // without animation
	}


	// Slide from top
	@-webkit-keyframes slideFromTop {
		0% {
			top: 0%;
		}
		100% {
			top: 50%;
		}
	}
	@keyframes slideFromTop {
		0% {
			top: 0%;
		}
		100% {
			top: 50%;
		}
	}
	.showSweetAlert[data-animation=slide-from-top] {
		.animation(slideFromTop 0.3s);
	}


	// Slide to top
	@-webkit-keyframes slideToTop {
		0% {
			top: 50%;
		}
		100% {
			top: 0%;
		}
	}
	@keyframes slideToTop {
		0% {
			top: 50%;
		}
		100% {
			top: 0%;
		}
	}
	.hideSweetAlert[data-animation=slide-from-top] {
		.animation(slideToTop 0.4s);
	}


	// Slide from bottom
	@-webkit-keyframes slideFromBottom {
		0% {
			top: 70%;
		}
		100% {
			top: 50%;
		}
	}

	@keyframes slideFromBottom {
		0% {
			top: 70%;
		}
		100% {
			top: 50%;
		} 
	}
	.showSweetAlert[data-animation=slide-from-bottom] {
		.animation(slideFromBottom 0.3s);
	}


	// Slide to bottom
	@-webkit-keyframes slideToBottom {
		0% {
			top: 50%;
		}
		100% {
			top: 70%;
		}
	}
	@keyframes slideToBottom {
		0% {
			top: 50%;
		}
		100% {
			top: 70%;
		}
	}
	.hideSweetAlert[data-animation=slide-from-bottom] {
		.animation(slideToBottom 0.3s);
	}



	// Icons
	// ------------------------------

	// Success tip
	@-webkit-keyframes animateSuccessTip {
		0% {
			width: 0;
			left: 1px;
			top: 19px;
		}
		54% {
			width: 0;
			left: 1px;
			top: 19px;
		}
		70% {
			width: 50px;
			left: -8px;
			top: 37px;
		}
		84% {
			width: 17px;
			left: 21px;
			top: 48px;
		}
		100% {
			width: 25px;
			left: 14px;
			top: 45px;
		}
	}
	@keyframes animateSuccessTip {
		0% {
			width: 0;
			left: 1px;
			top: 19px;
		}
		54% {
			width: 0;
			left: 1px;
			top: 19px;
		}
		70% {
			width: 50px;
			left: -8px;
			top: 37px;
		}
		84% {
			width: 17px;
			left: 21px;
			top: 48px;
		}
		100% {
			width: 25px;
			left: 14px;
			top: 45px;
		}
	}
	.animateSuccessTip {
		.animation(animateSuccessTip 0.75s);
	}


	// Success long
	@-webkit-keyframes animateSuccessLong {
		0% {
			width: 0;
			right: 46px;
			top: 54px;
		}
		65% {
			width: 0;
			right: 46px;
			top: 54px;
		}
		84% {
			width: 55px;
			right: 0px;
			top: 35px;
		}
		100% {
			width: 47px;
			right: 8px;
			top: 38px;
		}
	}
	@keyframes animateSuccessLong {
		0% {
			width: 0;
			right: 46px;
			top: 54px;
		}
		65% {
			width: 0;
			right: 46px;
			top: 54px;
		}
		84% {
			width: 55px;
			right: 0px;
			top: 35px;
		}
		100% {
			width: 47px;
			right: 8px;
			top: 38px;
		}
	}
	.animateSuccessLong {
		.animation(animateSuccessLong 0.75s);
	}


	// Placeholder rotation
	@-webkit-keyframes rotatePlaceholder {
		0% {
			.rotate(-45deg);
		}
		5% {
			.rotate(-45deg);
		}
		12% {
			.rotate(-405deg);
		}
		100% {
			.rotate(-405deg);
		}
	}
	@keyframes rotatePlaceholder {
		0% {
			.rotate(-45deg);
		}
		5% {
			.rotate(-45deg);
		}
		12% {
			.rotate(-405deg);
		}
		100% {
			.rotate(-405deg);
		}
	}
	.sa-icon.sa-success.animate::after {
		.animation(rotatePlaceholder 4.25s ease-in);
	}


	// Error
	@-webkit-keyframes animateErrorIcon {
		0% {
			.rotateX(100deg);
			.opacity(0);
		}
		100% {
			.rotateX(0deg);
			.opacity(1);
		}
	}
	@keyframes animateErrorIcon {
		0% {
			.rotateX(100deg);
			.opacity(0);
		}
		100% {
			.rotateX(0deg);
			.opacity(1);
		}
	}
	.animateErrorIcon {
		.animation(animateErrorIcon 0.5s);
	}


	// "X" mark
	@-webkit-keyframes animateXMark {
		0% {
			margin-top: 26px;
			.scale(0.4);
			.opacity(0);
		}
		50% {
			margin-top: 26px;
			.scale(0.4);
			.opacity(0);
		}
		80% {
			margin-top: -6px;
			.scale(1.15);
		}
		100% {
			margin-top: 0;
			.scale(1);
			.opacity(1);
		}
	}
	@keyframes animateXMark {
		0% {
			margin-top: 26px;
			.scale(0.4);
			.opacity(0);
		}
		50% {
			margin-top: 26px;
			.scale(0.4);
			.opacity(0);
		}
		80% {
			margin-top: -6px;
			.scale(1.15);
		}
		100% {
			margin-top: 0;
			.scale(1);
			.opacity(1);
		}
	}
	.animateXMark {
		.animation(animateXMark 0.5s);
	}


	// Warning pulsate
	@-webkit-keyframes pulseWarning {
		0% {
			border-color: #F8D486;
		}
		100% {
			border-color: #F8BB86;
		}
	}
	@keyframes pulseWarning {
		0% {
			border-color: #F8D486;
		}
		100% {
			border-color: #F8BB86;
		}
	}
	.pulseWarning {
		.animation(pulseWarning 0.75s infinite alternate);
	}


	// Warning pulsate
	@-webkit-keyframes pulseWarningIns {
		0% {
			background-color: #F8D486;
		}
		100% {
			background-color: #F8BB86;
		}
	}
	@keyframes pulseWarningIns {
		0% {
			background-color: #F8D486;
		}
		100% {
			background-color: #F8BB86;
		}
	}
	.pulseWarningIns {
		.animation(pulseWarningIns 0.75s infinite alternate);
	}


	// Loading rotation
	@-webkit-keyframes rotate-loading {
		0% {
			.rotate(0deg);
		}
		100% {
			.rotate(360deg);
		}
	}
	@keyframes rotate-loading {
		0% {
			.rotate(0deg);
		}
		100% {
			.rotate(360deg);
		}
	}


	// Internet Explorer 9 has some special quirks that are fixed here. The icons are not animated.
	.sweet-alert {
		.sa-icon {

			// Error
			&.sa-error .sa-line {

				// Left
				&.sa-left {
					-ms-transform: rotate(45deg);
				}

				// Right
				&.sa-right {
					-ms-transform: rotate(-45deg);
				}
			}

			// Success
			&.sa-success {
				border-color: transparent;

				// Line
				.sa-line {

					// Tip
					&.sa-tip {
						-ms-transform: rotate(45deg);
					}

					// Long
					&.sa-long {
						-ms-transform: rotate(-45deg);
					}
				}
			}
		}
	}



	// Loading dots
	// ------------------------------

	// Base
	.la-ball-fall {
		display: block;
		font-size: 0;
		color: #fff;
		width: 54px;
		height: 12px;

		// Dark color
		&.la-dark {
			color: @text-color;
		}

		// Dots
		> div {
			display: inline-block;
			float: none;
			background-color: #fff;
			border: 0 solid #fff;
			width: 6px;
			height: 6px;
			margin: 2px;
			border-radius: 100%;
			.animation(ball-fall 1s ease-in-out infinite);
			.opacity(0);

			// First
			&:nth-child(1) {
				.animation-delay(-200ms);
			}

			// Second
			&:nth-child(2) {
				.animation-delay(-100ms);
			}

			// Third
			&:nth-child(3) {
				.animation-delay(0ms);
			}
		}


		// Small size
		&.la-sm {
			width: 26px;
			height: 8px;

			// Dots
			> div {
				width: 4px;
				height: 4px;
				margin: 2px;
			}
		}

		// Double sized
		&.la-2x {
			width: 108px;
			height: 36px;

			// Dots
			> div {
				width: 20px;
				height: 20px;
				margin: 8px;
			}
		}

		// Triple sized
		&.la-3x {
			width: 162px;
			height: 54px;

			// Dots
			> div {
				width: 30px;
				height: 30px;
				margin: 12px;
			}
		}
	}


	// Animation
	@-webkit-keyframes ball-fall {
		0% {
			.translate(0; -145%);
			.opacity(0);
		}
		10% {
			.opacity(0.5);
		}
		20% {
			.translate(0; 0);
			.opacity(1);
		}
		80% {
			.translate(0; 0);
			.opacity(1);
		}
		90% {
			.opacity(0.5);
		}
		100% {
			.translate(0; 145%);
			.opacity(0);
		}
	}
	@-moz-keyframes ball-fall {
		0% {
			.translate(0; -145%);
			.opacity(0);
		}
		10% {
			.opacity(0.5);
		}
		20% {
			.translate(0; 0);
			.opacity(1);
		}
		80% {
			.translate(0; 0);
			.opacity(1);
		}
		90% {
			.opacity(0.5);
		}
		100% {
			.translate(0; 145%);
			.opacity(0);
		}
	}
	@-o-keyframes ball-fall {
		0% {
			.translate(0; -145%);
			.opacity(0);
		}
		10% {
			.opacity(0.5);
		}
		20% {
			.translate(0; 0);
			.opacity(1);
		}
		80% {
			.translate(0; 0);
			.opacity(1);
		}
		90% {
			.opacity(0.5);
		}
		100% {
			.translate(0; 145%);
			.opacity(0);
		}
	}
	@keyframes ball-fall {
		0% {
			.translate(0; -145%);
			.opacity(0);
		}
		10% {
			.opacity(0.5);
		}
		20% {
			.translate(0; 0);
			.opacity(1);
		}
		80% {
			.translate(0; 0);
			.opacity(1);
		}
		90% {
			.opacity(0.5);
		}
		100% {
			.translate(0; 145%);
			.opacity(0);
		}
	}
