.ch-line {
	text-align: center;
	color: var(--ch-text, #fff);
	font-family: inherit;
	margin: 8px 0 4px;
}
.ch-line .ch-status {
	font-size: clamp(20px, 3.2vw, 28px);
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.35;
}
.ch-line .ch-dot {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	margin-right: 8px;
	background: #3DDC84;
	box-shadow: 0 0 10px #3DDC84;
}
.ch-line.is-closed .ch-dot {
	background: #E53935;
	box-shadow: 0 0 10px #E53935;
}
.ch-line .ch-timer { color: var(--ch-timer, #E53935); }
.ch-line .ch-note { margin-top: 6px; opacity: 0.8; font-size: 14px; }
.ch-state-open, .ch-state-closed { display: none; }
.ch-line:not(.is-closed) .ch-state-open,
.ch-card:not(.is-closed) .ch-state-open,
.ch-ring:not(.is-closed) .ch-state-open { display: block; }
.ch-line.is-closed .ch-state-closed,
.ch-card.is-closed .ch-state-closed,
.ch-ring.is-closed .ch-state-closed { display: block; }

@media (max-width: 768px) {
	.ch-line .ch-status {
		font-size: 18px;
		display: block;
	}
	.ch-line .ch-timer {
		display: block;
		margin-top: 6px;
		font-size: 34px;
		font-weight: 800;
		letter-spacing: 0.03em;
		line-height: 1.1;
	}
	.ch-line .ch-note {
		font-size: 13px;
	}
}

.ch-card {
	max-width: 420px;
	margin: 20px auto;
	padding: 22px 22px 20px;
	border-radius: 18px;
	background: color-mix(in srgb, var(--ch-card-bg, #1a1a1a) calc(var(--ch-card-op, 0.55) * 100%), transparent);
	border: 1px solid var(--ch-card-border, #E53935);
	color: var(--ch-text, #fff);
	text-align: center;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
.ch-card h3 { margin: 0 0 6px; font-size: 22px; }
.ch-card .ch-sub { opacity: 0.8; margin-bottom: 10px; }
.ch-card .ch-timer {
	font-size: 48px;
	line-height: 1;
	font-weight: 800;
	color: var(--ch-timer, #E53935);
}

.ch-ring {
	--ch-size: 210px;
	position: relative;
	width: var(--ch-size);
	height: var(--ch-size);
	margin: 16px auto;
	color: var(--ch-ring-text, #333);
}
.ch-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.ch-ring-track, .ch-ring-bar { fill: none; stroke-width: 8; }
.ch-ring-track { stroke: #e4e4e4; }
.ch-ring-bar {
	stroke: var(--ch-timer, #E53935);
	stroke-linecap: round;
	transition: stroke-dashoffset 0.4s linear;
}
.ch-ring.is-closed .ch-ring-bar { stroke: #bdbdbd; }
.ch-ring-inner {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	pointer-events: none;
}
.ch-ring-time {
	font-size: 32px;
	font-weight: 800;
	letter-spacing: 0.02em;
	line-height: 1;
	color: var(--ch-timer, #E53935);
}
.ch-ring-label {
	margin-top: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--ch-ring-text, #333);
	opacity: 1;
	max-width: 72%;
	line-height: 1.25;
}
@media (max-width: 600px) {
	.ch-ring { --ch-size: 170px; }
	.ch-ring-time { font-size: 26px; }
}
