@charset "UTF-8";
/*!
 * smallPop 0.1.2 | https://github.com/silvio-r/spop
 * Copyright (c) 2015 Silvio Rosa @silvior_
 * MIT license
 * Adaptado para FichIAndo 3.1 - Usa variables CSS
 */
.spop-container {
	z-index: 10001;
	position: fixed;
}
.spop-container,
.spop-container *,
.spop-container *:after,
.spop-container *:before {
	box-sizing: border-box;
}

.spop--top-left {
	top: 0;
	left: 0;
}
.spop--top-left .spop {
	transform-origin: 0 0;
}

.spop--top-center {
	top: 0;
	left: 50%;
	transform: translateX(-50%);
}
.spop--top-center .spop {
	transform-origin: 50% 0;
}

.spop--top-right {
	top: 0;
	right: 0;
}
.spop--top-right .spop {
	transform-origin: 100% 0;
}

.spop--center {
	top: 50%;
	left: 50%;
	transform: translate3d(-50%, -50%, 0);
}
.spop--center .spop {
	transform-origin: 50% 0;
}

.spop--bottom-left {
	bottom: 0;
	left: 0;
}
.spop--bottom-left .spop {
	transform-origin: 0 100%;
}

.spop--bottom-center {
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
}
.spop--bottom-center .spop {
	transform-origin: 50% 100%;
}

.spop--bottom-right {
	bottom: 0;
	right: 0;
}
.spop--bottom-right .spop {
	transform-origin: 100% 100%;
}

@media screen and (max-width: 30em) {
	.spop--top-left,
	.spop--top-center,
	.spop--bottom-left,
	.spop--bottom-center {
		top: 3px;
		bottom: auto;
		left: 0;
		right: 0;
		margin-left: 0;
		transform: translateX(0);
	}
	.spop--top-right,
	.spop--bottom-right {
		top: 3px;
		bottom: auto;
		left: auto;
		right: 5px;
		margin-left: 0;
		transform: translateX(0);
	}
	.spop--top-left .spop,
	.spop--top-center .spop,
	.spop--top-right .spop,
	.spop--bottom-left .spop,
	.spop--bottom-center .spop,
	.spop--bottom-right .spop {
		transform-origin: 50% 100%;
	}
	.spop {
		border-bottom: 1px solid var(--glass-border);
	}
}

.spop {
	position: relative;
	min-height: 56px;
	line-height: 1.25;
	font-size: 14px;
	transform: translateZ(0);
}
@media screen and (min-width: 30em) {
	.spop {
		border-radius: var(--radius-xl);
		width: 320px;
		margin: 0.7em;
	}
}

.spop--info,
.spop--warning,
.spop--success,
.spop--loteria,
.spop--navidad,
.spop--amor,
.spop--muerte,
.spop--cumple,
.spop--chorrinsaje,
.spop--inocente {
	color: var(--spop-text);
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
	background: var(--spop-bg);
	backdrop-filter: blur(20px) saturate(180%);
	-webkit-backdrop-filter: blur(20px) saturate(180%);
	border-radius: var(--radius-xl);
	border: 1px solid var(--spop-border);
	box-shadow: var(--spop-shadow);
}

.spop--error {
	color: var(--text-light);
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
	background: rgba(239, 68, 68, 0.15);
	backdrop-filter: blur(20px) saturate(180%);
	-webkit-backdrop-filter: blur(20px) saturate(180%);
	border: 1px solid rgba(239, 68, 68, 0.4);
	border-radius: var(--radius-xl);
	box-shadow: 0 8px 32px rgba(239, 68, 68, 0.12);
}

@keyframes spopIn {
	0% { transform: scale(0.2, 0.2); }
	95% { transform: scale(1.1, 1.1); }
	100% { transform: scale(1, 1); }
}

@keyframes spopOut {
	0% { opacity: 1; transform: scale(1, 1); }
	20% { transform: scale(1.1, 1.1); }
	100% { opacity: 0; transform: scale(0, 0); }
}

.spop--out {
	animation: spopOut 0.4s ease-in-out;
}

.spop--in {
	animation: spopIn 0.4s ease-in-out;
}

.spop-body {
	padding: 1.4em;
	padding-right: 3.5em;
}
.spop-body p {
	margin: 0;
	padding-right: 0.5em;
}
.spop-body a {
	color: var(--accent-color);
	text-decoration: underline;
}
.spop-body a:hover {
	color: var(--text-primary);
	text-decoration: none;
}

.spop-title {
	margin-top: 0;
	margin-bottom: 0.25em;
	padding-right: 0.5em;
	color: var(--text-primary);
}

.spop-close {
	position: absolute;
	right: 6px;
	top: 4px;
	height: 24px;
	width: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	font-weight: bold;
	line-height: 1;
	color: var(--text-secondary);
	background: var(--btn-secondary-bg);
	backdrop-filter: blur(10px);
	border-radius: var(--radius-sm);
	border: 1px solid var(--btn-secondary-border);
	transition: all 0.3s ease;
}

.spop-close:hover {
	cursor: pointer;
	background: rgba(239, 68, 68, 0.3);
	border-color: rgba(239, 68, 68, 0.5);
	color: var(--text-light);
	transform: translateY(-1px) scale(1.05);
	box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15);
}

.spop-icon {
	position: absolute;
	top: 13px;
	left: 16px;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	animation: spopIn 0.4s 0.4s ease-in-out;
}
.spop-icon:after,
.spop-icon:before {
	content: "";
	position: absolute;
	display: block;
}
.spop-icon + .spop-body {
	padding-left: 4.2em;
	padding-right: 2.5em;
}

/* Animaciones para iconos */
@keyframes shake {
	0%, 100% { transform: translateX(0); }
	10%, 30%, 50%, 70%, 90% { transform: translateX(-3px); }
	20%, 40%, 60%, 80% { transform: translateX(3px); }
}

@keyframes bounce {
	0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
	40% { transform: translateY(-8px); }
	60% { transform: translateY(-4px); }
}

@keyframes pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.15); }
}

@keyframes spin {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

@keyframes heartbeat {
	0%, 100% { transform: scale(1); }
	10%, 30% { transform: scale(1.2); }
	20%, 40% { transform: scale(1.1); }
}

.spop-icon--info {
	border: 2px solid var(--info);
	background: rgba(66, 165, 245, 0.1);
	backdrop-filter: blur(10px);
	box-shadow: 0 2px 8px rgba(66, 165, 245, 0.3);
}
.spop-icon--info:before {
	top: 5px;
	left: 11px;
	width: 4px;
	height: 4px;
	background-color: var(--info);
}
.spop-icon--info:after {
	top: 12px;
	left: 11px;
	width: 4px;
	height: 9px;
	background-color: var(--info);
}

.spop-icon--error {
	border: 2px solid rgba(239, 68, 68, 0.5);
	background: rgba(254, 226, 226, 0.2);
	backdrop-filter: blur(10px);
	box-shadow: 0 2px 8px rgba(239, 68, 68, 0.25);
	color: var(--danger-dark);
}
.spop-icon--error:before {
	font-family: "Font Awesome 6 Free", "Font Awesome 7 Free";
	font-weight: 900;
	content: "\f54c";
	font-size: 20px;
	top: 1px;
	left: 4px;
	animation: shake 0.5s ease-in-out;
}

.spop-icon--success {
	border: none;
	background: transparent;
	backdrop-filter: none;
	box-shadow: none;
	color: var(--success);
	width: 35px;
	height: 35px;
	top: 10px;
	left: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.spop-icon--success:before {
	content: "";
	position: absolute;
	width: 30px;
	height: 30px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M 4 12 L 9 17 L 20 6' stroke='%2348bb78' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' stroke-dasharray='30' stroke-dashoffset='30' style='animation: drawCheck 1.2s ease-in-out 0.2s forwards'/%3E%3Cstyle%3E@keyframes drawCheck %7B to %7B stroke-dashoffset: 0; %7D %7D%3C/style%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

.spop-icon--warning {
	border: 2px solid var(--warning);
	background: rgba(245, 158, 11, 0.1);
	backdrop-filter: blur(10px);
	box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
	color: var(--warning);
}
.spop-icon--warning:before {
	font-family: "Font Awesome 6 Free", "Font Awesome 7 Free";
	font-weight: 900;
	content: "\f071";
	font-size: 18px;
	top: 0px;
	left: 4px;
	animation: pulse 1s ease-in-out infinite;
}

.spop-icon--loteria {
	color: var(--warning);
	border: 2px solid var(--warning);
	background: rgba(245, 158, 11, 0.1);
	backdrop-filter: blur(10px);
	box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}
.spop-icon--loteria:before {
	font-family: "Font Awesome 6 Free", "Font Awesome 7 Free";
	font-weight: 900;
	content: "\f0ac";
	font-size: 20px;
	top: 5px;
	left: 5px;
	animation: spin 2s linear infinite;
}

.spop-icon--navidad {
	color: var(--success);
	border: 2px solid var(--success);
	background: rgba(34, 197, 94, 0.1);
	backdrop-filter: blur(10px);
	box-shadow: 0 2px 8px rgba(34, 197, 94, 0.3);
}
.spop-icon--navidad:before {
	font-family: "Font Awesome 6 Free", "Font Awesome 7 Free";
	font-weight: 900;
	content: "\f7ba";
	font-size: 20px;
	top: 5px;
	left: 5px;
	animation: bounce 0.8s ease-in-out infinite;
}

.spop-icon--amor {
	color: #e91e63;
	border: 2px solid #e91e63;
	background: rgba(233, 30, 99, 0.1);
	backdrop-filter: blur(10px);
	box-shadow: 0 2px 8px rgba(233, 30, 99, 0.3);
}
.spop-icon--amor:before {
	font-family: "Font Awesome 6 Free", "Font Awesome 7 Free";
	font-weight: 900;
	content: "\f004";
	font-size: 20px;
	top: 5px;
	left: 5px;
	animation: heartbeat 1s ease-in-out infinite;
}

.spop-icon--muerte {
	color: var(--fichando-naranja);
	border: 2px solid var(--fichando-naranja);
	background: rgba(255, 117, 0, 0.1);
	backdrop-filter: blur(10px);
	box-shadow: 0 2px 8px rgba(255, 117, 0, 0.3);
}
.spop-icon--muerte:before {
	font-family: "Font Awesome 6 Free", "Font Awesome 7 Free";
	font-weight: 900;
	content: "\f6e2";
	font-size: 20px;
	top: 5px;
	left: 5px;
	animation: shake 0.8s ease-in-out;
}

.spop-icon--inocente {
	color: #9b59b6;
	border: 2px solid #9b59b6;
	background: rgba(155, 89, 182, 0.1);
	backdrop-filter: blur(10px);
	box-shadow: 0 2px 8px rgba(155, 89, 182, 0.3);
}
.spop-icon--inocente:before {
	font-family: "Font Awesome 6 Free", "Font Awesome 7 Free";
	font-weight: 900;
	content: "\f5c4";
	font-size: 20px;
	top: 5px;
	left: 5px;
	animation: spin 1.5s linear infinite;
}

.spop-icon--cumple {
	color: #e91e63;
	border: 2px solid #e91e63;
	background: rgba(233, 30, 99, 0.1);
	backdrop-filter: blur(10px);
	box-shadow: 0 2px 8px rgba(233, 30, 99, 0.3);
}
.spop-icon--cumple:before {
	font-family: "Font Awesome 6 Free", "Font Awesome 7 Free";
	font-weight: 900;
	content: "\f1fd";
	font-size: 20px;
	top: 5px;
	left: 5px;
	animation: bounce 1s ease-in-out infinite;
}

.spop-icon--chorrinsaje {
	color: var(--info);
	border: 2px solid var(--info);
	background: rgba(66, 165, 245, 0.1);
	backdrop-filter: blur(10px);
	box-shadow: 0 2px 8px rgba(66, 165, 245, 0.3);
}
.spop-icon--chorrinsaje:before {
	font-family: "Font Awesome 6 Free", "Font Awesome 7 Free";
	font-weight: 900;
	content: "\f58b";
	font-size: 20px;
	top: 5px;
	left: 5px;
	animation: pulse 1.2s ease-in-out infinite;
}

/* ====================================
   NOTIFICACIONES PERSONALIZADAS
   Sistema de notificaciones de Gestion.js
   ==================================== */

/* UNDO - Cuenta regresiva con deshacer */
.notif-undo {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.notif-undo-text {
	font-size: 14px;
	line-height: 1.4;
}

.notif-undo-progress {
	height: 4px;
	background: rgba(255, 255, 255, 0.2);
	border-radius: 2px;
	overflow: hidden;
}

.notif-undo-bar {
	height: 100%;
	background: var(--accent-color, #3b82f6);
	transition: width 1s linear;
	border-radius: 2px;
}

.notif-undo-btn {
	align-self: flex-end;
	padding: 6px 12px;
	font-size: 12px;
	font-weight: 600;
	color: var(--text-light, #fff);
	background: rgba(255, 255, 255, 0.15);
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: var(--radius-md, 8px);
	cursor: pointer;
	transition: all 0.2s ease;
	backdrop-filter: blur(5px);
}

.notif-undo-btn:hover {
	background: rgba(255, 255, 255, 0.25);
	border-color: rgba(255, 255, 255, 0.5);
	transform: translateY(-1px);
}

.notif-undo-btn i {
	margin-right: 4px;
}

/* CONFIRM - Botones aceptar/rechazar */
.notif-confirm {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.notif-confirm-text {
	font-size: 14px;
	line-height: 1.4;
}

.notif-confirm-btns {
	display: flex;
	gap: 8px;
	justify-content: flex-end;
}

.notif-btn {
	padding: 8px 14px;
	font-size: 12px;
	font-weight: 600;
	border-radius: var(--radius-md, 8px);
	cursor: pointer;
	transition: all 0.2s ease;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border: none;
}

.notif-btn-cancel {
	color: var(--text-secondary, rgba(255,255,255,0.7));
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.2);
}

.notif-btn-cancel:hover {
	background: rgba(239, 68, 68, 0.2);
	border-color: rgba(239, 68, 68, 0.4);
	color: var(--text-light, #fff);
}

.notif-btn-accept {
	color: #fff;
	background: var(--success, #22c55e);
	border: 1px solid transparent;
	box-shadow: 0 2px 8px rgba(34, 197, 94, 0.3);
}

.notif-btn-accept:hover {
	background: var(--success-dark, #16a34a);
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(34, 197, 94, 0.4);
}

/* PROGRESS - Barra de progreso */
.notif-progress {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.notif-progress-text {
	font-size: 14px;
	line-height: 1.4;
}

.notif-progress-bar-container {
	height: 8px;
	background: rgba(255, 255, 255, 0.15);
	border-radius: 4px;
	overflow: hidden;
}

.notif-progress-bar {
	height: 100%;
	background: linear-gradient(90deg, var(--accent-color, #3b82f6), var(--accent-light, #60a5fa));
	border-radius: 4px;
	transition: width 0.3s ease;
}

.notif-progress-pct {
	font-size: 12px;
	font-weight: 600;
	text-align: right;
	color: var(--text-secondary, rgba(255,255,255,0.7));
}

/* Animación de progreso indeterminado */
@keyframes progressIndeterminate {
	0% { transform: translateX(-100%); }
	100% { transform: translateX(400%); }
}

.notif-progress-bar-container.indeterminate .notif-progress-bar {
	width: 30%;
	animation: progressIndeterminate 1.5s ease-in-out infinite;
}
