/*
 * Стили лунного календаря.
 *
 * Все правила начинаются с `.ogl` — не ради красоты, а потому что тема
 * `ogorod` оформляет `.content li` и рисует свой маркер через
 * `.content ul > li:before`. На плагине чек-листа короткие селекторы уже
 * проиграли теме, поэтому здесь селекторы заведомо длиннее темы, а списки
 * явно гасят маркер темы.
 */

.ogl {
	--ogl-waxing: #eaf5e4;
	--ogl-waning: #eef1f6;
	--ogl-new: #e6e6ec;
	--ogl-full: #fdf3dd;
	--ogl-line: #dfe3e8;
	--ogl-muted: #6b7280;
	--ogl-good: #2f7a33;
	--ogl-bad: #a8341f;
	margin: 0 0 2em;
}

.ogl .ogl-lead {
	font-size: 1.05em;
	line-height: 1.55;
	margin: 0 0 1.2em;
}

.ogl .ogl-section {
	margin: 0 0 2em;
}

.ogl .ogl-h2 {
	font-size: 1.35em;
	line-height: 1.25;
	margin: 0 0 0.7em;
}

.ogl .ogl-note {
	color: var(--ogl-muted);
	font-size: 0.87em;
	margin: 0.6em 0 0;
}

/* Значок фазы */

.ogl .ogl-moon {
	flex: 0 0 auto;
	vertical-align: middle;
}

.ogl .ogl-moon-dark {
	fill: #2c3140;
}

.ogl .ogl-moon-light {
	fill: #f6d873;
}

/* Врезка «сегодня» */

.ogl .ogl-today {
	background: var(--ogl-waxing);
	border: 1px solid var(--ogl-line);
	border-radius: 10px;
	margin: 0 0 1.8em;
	padding: 1em 1.1em;
}

.ogl .ogl-today-head {
	align-items: center;
	display: flex;
	gap: 0.8em;
	margin: 0 0 0.6em;
}

.ogl .ogl-today-date {
	font-size: 1.15em;
	font-weight: 700;
	margin: 0;
}

.ogl .ogl-today-phase {
	color: var(--ogl-muted);
	font-size: 0.92em;
	margin: 0.15em 0 0;
}

.ogl .ogl-today-line {
	line-height: 1.5;
	margin: 0.35em 0 0;
}

.ogl .ogl-today-good b {
	color: var(--ogl-good);
}

.ogl .ogl-today-bad b {
	color: var(--ogl-bad);
}

/* Фазы месяца */

.ogl .ogl-phases {
	display: grid;
	gap: 0.6em;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.ogl .ogl-phases .ogl-phase-item {
	align-items: center;
	background: #fff;
	border: 1px solid var(--ogl-line);
	border-radius: 8px;
	display: flex;
	gap: 0.6em;
	list-style: none;
	margin: 0;
	padding: 0.55em 0.75em;
}

.ogl .ogl-phases .ogl-phase-item:before {
	content: none;
}

/* Название и дата — столбиком: у «последней четверти» название переносится,
   и дата, прижатая вправо, отрывалась от него. */
.ogl .ogl-phase-text {
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}

.ogl .ogl-phase-name {
	font-weight: 600;
}

.ogl .ogl-phase-when {
	color: var(--ogl-muted);
	font-size: 0.9em;
}

/* Виды работ */

.ogl .ogl-works {
	display: grid;
	gap: 0.9em;
	grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
}

.ogl .ogl-work {
	border: 1px solid var(--ogl-line);
	border-radius: 10px;
	padding: 1em 1.1em;
}

.ogl .ogl-work-title {
	font-size: 1.05em;
	line-height: 1.3;
	margin: 0 0 0.3em;
}

.ogl .ogl-work-hint {
	color: var(--ogl-muted);
	font-size: 0.9em;
	line-height: 1.45;
	margin: 0 0 0.7em;
}

.ogl .ogl-work-days {
	line-height: 1.5;
	margin: 0 0 0.35em;
}

.ogl .ogl-badge {
	border-radius: 4px;
	display: inline-block;
	font-size: 0.8em;
	font-weight: 700;
	letter-spacing: 0.02em;
	margin-right: 0.4em;
	padding: 0.15em 0.45em;
	text-transform: uppercase;
	vertical-align: 1px;
}

.ogl .ogl-badge-good {
	background: #dff0d8;
	color: var(--ogl-good);
}

.ogl .ogl-badge-bad {
	background: #f7e0da;
	color: var(--ogl-bad);
}

.ogl .ogl-work-links {
	border-top: 1px solid var(--ogl-line);
	list-style: none;
	margin: 0.8em 0 0;
	padding: 0.7em 0 0;
}

.ogl .ogl-work-links .ogl-work-link {
	font-size: 0.93em;
	line-height: 1.4;
	list-style: none;
	margin: 0 0 0.35em;
	padding: 0;
}

.ogl .ogl-work-links .ogl-work-link:before {
	content: none;
}

.ogl .ogl-work-links .ogl-work-link:last-child {
	margin-bottom: 0;
}

/* Сетка месяца */

.ogl .ogl-grid-scroll {
	-webkit-overflow-scrolling: touch;
	overflow-x: auto;
}

.ogl .ogl-grid {
	border: 1px solid var(--ogl-line);
	border-radius: 10px;
	min-width: 480px;
	overflow: hidden;
}

.ogl .ogl-grid-head,
.ogl .ogl-grid-body {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
}

.ogl .ogl-grid-weekday {
	background: #f6f7f9;
	color: var(--ogl-muted);
	font-size: 0.85em;
	font-weight: 600;
	padding: 0.45em 0.3em;
	text-align: center;
}

.ogl .ogl-cell {
	border-top: 1px solid var(--ogl-line);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.15em;
	min-height: 5.4em;
	padding: 0.45em 0.25em;
	text-align: center;
}

.ogl .ogl-cell + .ogl-cell {
	border-left: 1px solid var(--ogl-line);
}

.ogl .ogl-cell:nth-child(7n + 1) {
	border-left: 0;
}

.ogl .ogl-cell-day {
	font-size: 1.05em;
	font-weight: 700;
	line-height: 1.1;
}

.ogl .ogl-cell-lunar {
	color: var(--ogl-muted);
	font-size: 0.72em;
	line-height: 1.1;
}

.ogl .ogl-cell-event {
	font-size: 0.68em;
	font-weight: 600;
	line-height: 1.15;
}

.ogl .ogl-cell-waxing {
	background: var(--ogl-waxing);
}

.ogl .ogl-cell-waning {
	background: var(--ogl-waning);
}

.ogl .ogl-cell-new {
	background: var(--ogl-new);
}

.ogl .ogl-cell-full {
	background: var(--ogl-full);
}

.ogl .ogl-cell-empty {
	background: #fafbfc;
}

.ogl .ogl-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em;
	margin: 0.7em 0 0;
}

.ogl .ogl-legend-item {
	border: 1px solid var(--ogl-line);
	border-radius: 4px;
	font-size: 0.83em;
	padding: 0.2em 0.5em;
}

/* День за днём */

.ogl .ogl-days {
	display: grid;
	gap: 0.6em;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.ogl .ogl-day {
	border: 1px solid var(--ogl-line);
	border-radius: 8px;
	padding: 0.7em 0.85em;
}

.ogl .ogl-day-head {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	margin: 0 0 0.4em;
}

.ogl .ogl-day-date {
	font-weight: 700;
}

.ogl .ogl-day-phase {
	color: var(--ogl-muted);
	font-size: 0.85em;
	width: 100%;
}

.ogl .ogl-day-line {
	font-size: 0.93em;
	line-height: 1.45;
	margin: 0 0 0.25em;
}

.ogl .ogl-day-bad b {
	color: var(--ogl-bad);
}

/* Переключатель месяцев */

.ogl .ogl-switch {
	border-top: 1px solid var(--ogl-line);
	margin: 2em 0 0;
	padding: 1.2em 0 0;
}

.ogl .ogl-switch-year {
	margin: 0 0 0.9em;
}

.ogl .ogl-switch-label {
	color: var(--ogl-muted);
	display: block;
	font-weight: 700;
	margin: 0 0 0.4em;
}

.ogl .ogl-switch-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35em;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ogl .ogl-switch-list .ogl-switch-item {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ogl .ogl-switch-list .ogl-switch-item:before {
	content: none;
}

.ogl .ogl-switch-item a,
.ogl .ogl-switch-item span {
	border: 1px solid var(--ogl-line);
	border-radius: 5px;
	display: block;
	font-size: 0.9em;
	padding: 0.3em 0.6em;
}

.ogl .ogl-switch-item-current span {
	background: #2c3140;
	border-color: #2c3140;
	color: #fff;
}

/* Хлебные крошки темы.
   Тема всегда дописывает <span class="last"> с результатом tw_wp_title(), а та
   про виртуальную страницу не знает и отдаёт пустую строку. Звенья мы добавили
   фильтром `tw_breadcrumbs`, а пустой хвост и разделитель перед ним прячем тут:
   подставить туда текст из PHP нельзя, у tw_wp_title() нет фильтра.
   Файл подключается только на страницах календаря, поэтому селектор без `.ogl`. */

.breadcrumbs .last:empty {
	display: none;
}

.breadcrumbs .separator:has(+ .last:empty) {
	display: none;
}

/* Оговорка */

.ogl .ogl-disclaimer {
	color: var(--ogl-muted);
	font-size: 0.88em;
	line-height: 1.5;
	margin: 1.6em 0 0;
}

@media (max-width: 640px) {
	.ogl .ogl-cell {
		min-height: 4.6em;
		padding: 0.35em 0.15em;
	}

	.ogl .ogl-cell-lunar,
	.ogl .ogl-cell-event {
		font-size: 0.62em;
	}

	.ogl .ogl-work,
	.ogl .ogl-today {
		padding: 0.85em 0.9em;
	}

	/* На узком экране колонка одна: minmax с фиксированным минимумом
	   переполняет контейнер, если тот уже этого минимума. */
	.ogl .ogl-phases,
	.ogl .ogl-works,
	.ogl .ogl-days {
		grid-template-columns: 1fr;
	}
}
