/* Calendar modal — aligned with theme.css tokens */
@charset "utf-8";

.mask_calendar {
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	background: rgba(0, 0, 0, 0.52);
	display: none;
	z-index: 10050;
	-webkit-tap-highlight-color: transparent;
}

.calendar {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	max-height: min(88vh, 560px);
	height: min(88vh, 560px);
	min-height: 320px;
	overflow: hidden;
	background: var(--color-card, #fff);
	font-family: var(--font-base, 'PingFang SC', 'Microsoft YaHei', sans-serif);
	border-radius: var(--radius-lg, 16px) var(--radius-lg, 16px) 0 0;
	box-shadow: var(--shadow-lg, 0 -8px 32px rgba(0, 0, 0, 0.12));
	z-index: 10051;
	box-sizing: border-box;
}

.calendar .headerWrapper {
	background: var(--color-card, #fff) !important;
	height: 52px !important;
	line-height: normal !important;
	width: 100% !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	z-index: 3 !important;
	margin: 0 !important;
	padding: 0 14px 0 16px !important;
	box-sizing: border-box !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	border-bottom: 1px solid var(--color-border, #E8EAED);
	border-radius: var(--radius-lg, 16px) var(--radius-lg, 16px) 0 0;
}

.calendar .headerTip {
	text-align: left !important;
	line-height: 1.3 !important;
	margin: 0 !important;
	padding: 0 !important;
	font-size: var(--font-size-base, 15px) !important;
	font-weight: var(--font-weight-semibold, 600) !important;
	color: var(--color-text, #1A1A1A) !important;
	flex: 1;
	min-width: 0;
}

.calendar .comfire {
	height: 34px !important;
	line-height: 32px !important;
	width: auto !important;
	min-width: 88px;
	padding: 0 16px !important;
	margin: 0 !important;
	position: relative !important;
	right: auto !important;
	top: auto !important;
	left: auto !important;
	text-align: center !important;
	font-size: var(--font-size-sm, 13px) !important;
	font-weight: var(--font-weight-semibold, 600) !important;
	cursor: pointer !important;
	color: var(--color-text-white, #fff) !important;
	background: var(--color-primary, #2863E5) !important;
	border: none !important;
	border-radius: var(--radius-full, 9999px) !important;
	box-shadow: 0 2px 8px rgba(40, 99, 229, 0.35);
	flex-shrink: 0;
	-webkit-tap-highlight-color: transparent;
}

.calendar .comfire:active {
	opacity: 0.92;
	transform: scale(0.98);
}

.dateZone {
	width: 100%;
	margin: 0 !important;
	background: var(--color-divider, #F0F1F3);
	color: var(--color-text-secondary, #6B7280);
	position: absolute !important;
	top: 52px !important;
	left: 0 !important;
	right: 0 !important;
	z-index: 2;
	box-sizing: border-box;
}

table.dateZone {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
}

.dateZone td {
	background: var(--color-divider, #F0F1F3);
	height: 40px;
	line-height: 40px;
	width: 14.28%;
	font-size: var(--font-size-xs, 11px);
	font-weight: var(--font-weight-medium, 500);
	padding: 4px 0;
}

.dateZone .colo {
	color: var(--color-danger, #EF4444) !important;
	background: transparent;
}

.tbody {
	position: absolute !important;
	left: 0 !important;
	right: 0 !important;
	top: 100px !important;
	bottom: 0 !important;
	margin-top: 0 !important;
	padding-bottom: max(20px, env(safe-area-inset-bottom, 0));
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	box-sizing: border-box;
}

.tbody td {
	background: var(--color-card, #fff);
	color: var(--color-text, #1A1A1A);
}

.tbody .ny1 {
	width: 100%;
	text-align: center;
	padding: 10px 0 6px;
	color: var(--color-text-secondary, #6B7280);
	font-size: var(--font-size-sm, 12px);
	font-weight: var(--font-weight-semibold, 600);
	line-height: 1.2;
	background: var(--color-card, #fff);
	border: none;
	position: sticky;
	top: 0;
	z-index: 2;
	letter-spacing: 0.02em;
}

.dateTable {
	width: 100%;
	margin: 0 auto 8px;
	border-collapse: collapse;
	border-spacing: 0;
	border-bottom: 1px solid var(--color-divider, #F0F1F3);
}

.dateTable td {
	width: 14.28%;
	font-size: var(--font-size-md, 14px);
	font-weight: var(--font-weight-medium, 500);
	text-align: center;
	vertical-align: middle;
	border-radius: 0 !important;
	height: 48px;
	padding: 2px;
	box-sizing: border-box;
}

.dateTable .rz {
	font-size: 10px;
	font-weight: var(--font-weight-semibold, 600);
	line-height: 1.2;
	margin-top: 2px;
	opacity: 0.95;
}

/* Tooltips above cells */
.calendar .hover {
	font-size: 10px;
	line-height: 1.3;
	display: block;
	width: 100%;
	max-width: 140px;
	margin: 0 auto;
	left: 50% !important;
	transform: translateX(-50%);
	padding: 6px 8px !important;
	background: rgba(26, 26, 26, 0.88) !important;
	color: #fff !important;
	text-align: center;
	border-radius: var(--radius-sm, 6px) !important;
	box-shadow: var(--shadow-md, 0 4px 12px rgba(0, 0, 0, 0.15));
	z-index: 10060 !important;
}

.calendar .ruzhu_hover,
.calendar .lidian_hover {
	width: auto !important;
	min-width: 100px;
	white-space: nowrap;
}

.datTip {
	background: var(--color-primary, #2863E5);
	width: auto;
	min-width: 50%;
	max-width: 85%;
	position: fixed;
	bottom: max(12px, env(safe-area-inset-bottom, 12px));
	left: 50%;
	transform: translateX(-50%);
	border-radius: var(--radius-md, 10px);
	box-shadow: var(--shadow-md, 0 4px 16px rgba(0, 0, 0, 0.12));
	z-index: 10055;
}

.datTip p {
	width: 100%;
	margin: auto;
	text-align: center;
	color: #fff;
	padding: 8px 14px;
	font-size: var(--font-size-sm, 13px);
	font-weight: var(--font-weight-medium, 500);
}

.rz {
	position: relative;
}

.date_lc {
	float: left;
	width: 20px;
	text-align: center;
	line-height: 54px;
	font-size: 10px;
}

.Date_lr {
	float: left;
	height: 54px;
}

.Date_lr input {
	float: left;
	width: 84px;
	border: none;
	background: rgba(0, 0, 0, 0);
	font-size: 19px;
	color: var(--color-text, #333);
	height: 54px;
}

.Date_lr p {
	float: left;
	font-size: 13px;
	color: var(--color-text, #333);
	padding-top: 2px;
	height: 49px;
}

.span21 {
	position: absolute;
	right: 0;
	font-size: 12px;
	color: var(--color-text-secondary, #6B7280);
	padding-top: 2px;
}

#checkinout {
	height: 54px;
	line-height: 54px;
	border-bottom: 1px solid var(--color-divider, #F0F1F3);
	position: relative;
	display: flex;
	background-color: var(--color-card, #fff);
}

.firstSelect {
	width: 100%;
	background: #fff;
	position: fixed;
	top: 0;
	left: 0;
	height: 100%;
	overflow: scroll;
	display: none;
}

.animated {
	animation-duration: 0.35s;
	animation-fill-mode: both;
}

@keyframes slideInDown {
	from {
		transform: translate3d(0, 100%, 0);
		visibility: visible;
	}
	to {
		transform: translate3d(0, 0, 0);
	}
}

.slideInDown {
	animation-name: slideInDown;
}
