/* Sig Reservations 前台样式 —— 尽量少覆盖主题，只管自己这一块 */

.sigres-wrap {
	--sigres-line: #e2e0dd;
	--sigres-ink: #1f1d1b;
	--sigres-mute: #7c7873;
	--sigres-accent: #9a3412;
	--sigres-soft: #faf9f8;
	max-width: 640px;
	margin: 0 auto;
	color: var(--sigres-ink);
	font-size: 15px;
	line-height: 1.5;
}

.sigres-title {
	margin: 0 0 18px;
	font-size: 1.35em;
	line-height: 1.25;
}

.sigres-step { margin-bottom: 22px; }

.sigres-label {
	display: block;
	margin-bottom: 7px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: uppercase;
	color: var(--sigres-mute);
}

/* ---------- 日历 ---------- */

.sigres-cal {
	border: 1px solid var(--sigres-line);
	border-radius: 10px;
	padding: 12px;
	background: #fff;
}

.sigres-cal-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
}

.sigres-cal-month {
	font-weight: 600;
	text-transform: capitalize;
}

.sigres-cal-prev,
.sigres-cal-next {
	appearance: none;
	border: 1px solid var(--sigres-line);
	background: #fff;
	color: var(--sigres-ink);
	border-radius: 8px;
	width: 34px;
	height: 34px;
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	padding: 0;
}

.sigres-cal-prev:disabled,
.sigres-cal-next:disabled {
	opacity: .3;
	cursor: default;
}

.sigres-cal-grid {
	display: grid;
	/* ⚠ 必须是 minmax(0,1fr) 而不是 1fr：1fr 的隐含最小值是 auto，
	   格子是 <button>，各家主题给全局 button 加的 min-width / letter-spacing
	   会把列的最小宽度撑得比卡片还宽 —— 溢出向右，周六周日先被挤出去
	   （2026-08-28 Lychee Garden 手机上实测）。minmax(0,1fr) = 永远严格七等分。 */
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 4px;
	width: 100%;
}

.sigres-dow {
	text-align: center;
	font-size: 11px;
	color: var(--sigres-mute);
	padding-bottom: 4px;
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	letter-spacing: normal;
}

.sigres-day,
.sigres-day-empty {
	display: block;
	/* 不用 aspect-ratio：老 Android WebView 不认，格子会塌成一条。
	   固定高度在所有设备上行为一致。 */
	height: 44px;
	min-width: 0;          /* 配合 minmax(0,1fr)，允许列收窄到卡片内 */
	width: 100%;
	box-sizing: border-box;
	border-radius: 8px;
	border: 1px solid transparent;
	background: var(--sigres-soft);
	color: var(--sigres-ink);
	font: inherit;
	font-size: 14px;
	line-height: 1;
	letter-spacing: normal;   /* 主题常给 button 加大字距，这里必须归零 */
	text-transform: none;
	cursor: pointer;
	margin: 0;
	padding: 0;
}

.sigres-day-empty {
	background: transparent;
	cursor: default;
}

.sigres-day:hover:not(:disabled) {
	border-color: var(--sigres-accent);
}

.sigres-day.is-off {
	background: transparent;
	color: #c9c5c0;
	text-decoration: line-through;
	cursor: default;
}

.sigres-day.is-selected {
	background: var(--sigres-accent);
	border-color: var(--sigres-accent);
	color: #fff;
	font-weight: 600;
}

.sigres-cal-loading {
	padding: 10px 2px 2px;
	font-size: 13px;
	color: var(--sigres-mute);
}

/* ---------- 时段 ---------- */

.sigres-slots {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	min-height: 40px;
}

/* 跟日历格子同一个道理：这是 <button>，主题给全局 button 加的
   margin / min-width / width:100% / letter-spacing 都会漏进来 ——
   按钮之间的大空白就是主题的外边距，不是上面的 gap。
   这里逐项封死，间隙只由 .sigres-slots 的 gap 管。 */
.sigres-slot {
	appearance: none;
	flex: 0 0 auto;
	width: auto;           /* 主题常给 button 设 width:100%，会一行一个 */
	min-width: 0;
	min-height: 0;
	margin: 0;             /* 主题的外边距归零，间隙只由 gap 管 */
	box-sizing: border-box;
	border: 1px solid var(--sigres-line);
	background: #fff;
	color: var(--sigres-ink);
	border-radius: 999px;
	padding: 7px 13px;
	font: inherit;
	font-size: 14px;
	line-height: 1.2;
	letter-spacing: normal;
	text-transform: none;
	cursor: pointer;
}

.sigres-slot:hover { border-color: var(--sigres-accent); }

.sigres-slot.is-selected {
	background: var(--sigres-accent);
	border-color: var(--sigres-accent);
	color: #fff;
	font-weight: 600;
}

.sigres-slots-msg {
	margin: 0;
	font-size: 14px;
	color: var(--sigres-mute);
}

/* ---------- 字段 ---------- */

.sigres-fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-bottom: 18px;
}

.sigres-field-full { grid-column: 1 / -1; }

.sigres-wrap input[type="text"],
.sigres-wrap input[type="email"],
.sigres-wrap input[type="tel"],
.sigres-wrap select,
.sigres-wrap textarea {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--sigres-line);
	border-radius: 8px;
	padding: 10px 12px;
	font: inherit;
	font-size: 15px;
	background: #fff;
	color: var(--sigres-ink);
}

.sigres-wrap textarea { resize: vertical; }

.sigres-guests { max-width: 220px; }

/* 蜂蜜罐：不能用 display:none，有些机器人会跳过隐藏字段 */
.sigres-hp {
	position: absolute !important;
	left: -9999px !important;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.sigres-msg {
	margin: 0 0 12px;
	font-size: 14px;
	min-height: 1px;
}

.sigres-msg.is-error { color: #b91c1c; }
.sigres-msg.is-info { color: var(--sigres-mute); }

.sigres-submit {
	appearance: none;
	border: 0;
	border-radius: 8px;
	background: var(--sigres-accent);
	color: #fff;
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	padding: 12px 26px;
	cursor: pointer;
}

.sigres-submit[disabled] { opacity: .6; cursor: default; }

.sigres-pending-note {
	margin: 10px 0 0;
	font-size: 12.5px;
	color: var(--sigres-mute);
}

.sigres-done {
	border: 1px solid var(--sigres-line);
	border-radius: 10px;
	padding: 22px;
	/* background: var(--sigres-soft); */
}

.sigres-done-msg { margin: 0; font-size: 15px; }

@media (max-width: 520px) {
	.sigres-fields { grid-template-columns: 1fr; }
}
