/*
 * Public excursion calendar.
 * The .ssc-excursion-button class name is kept for backwards compatibility with
 * the existing markup, but since v0.12.1 it is aliased onto the single button
 * definition in base.css - nothing is redeclared here.
 */

.ssc-excursions-calendar {
	width: 100%;
	max-width: var(--ssc-container);
	margin: 0 auto;
	box-sizing: border-box;
}

.ssc-excursions-calendar * { box-sizing: border-box; }

.ssc-excursions-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 24px;
	margin-bottom: var(--ssc-space-5);
}

.ssc-excursions-toolbar h2 { margin: 0 0 6px; }

.ssc-calendar-tools,
.ssc-excursion-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.ssc-month-filter { margin: 0 0 20px; }

.ssc-month-filter select {
	min-width: 230px;
	min-height: var(--ssc-tap);
	padding: 9px 12px;
	border: 1px solid var(--ssc-line-strong);
	border-radius: var(--ssc-radius-sm);
	font: inherit;
}

.ssc-excursions-list { display: grid; gap: var(--ssc-space-4); }

.ssc-excursion-card {
	display: grid;
	grid-template-columns: 92px minmax(0, 1fr);
	gap: 20px;
	padding: 18px;
	border: 1px solid #d9e2ee;
	border-radius: 14px;
	background: var(--ssc-surface);
	box-shadow: var(--ssc-shadow-sm);
}

.ssc-excursion-card p { margin: .45em 0; }
.ssc-excursion-content { min-width: 0; }

.ssc-excursion-date {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 90px;
	border-radius: var(--ssc-radius);
	background: #eef5fc;
	color: #123c67;
	font-weight: 700;
}

.ssc-excursion-day { font-size: 32px; line-height: 1; }

.ssc-excursion-title-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: var(--ssc-space-4);
}

.ssc-excursion-title-row h3 { margin: 0; overflow-wrap: anywhere; }

.ssc-excursion-status {
	display: inline-flex;
	padding: 5px 11px;
	border-radius: var(--ssc-radius-pill);
	background: #e8eef5;
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
}

.ssc-excursion-status-confirmed .ssc-excursion-status { background: #dff4e5; color: #176334; }
.ssc-excursion-status-postponed .ssc-excursion-status { background: var(--ssc-warning-bg); color: var(--ssc-warning); }
.ssc-excursion-status-completed .ssc-excursion-status { background: #edf0f3; color: #4a5560; }

.ssc-excursion-status-cancelled { opacity: .82; border-color: #efb9b9; }
.ssc-excursion-status-cancelled .ssc-excursion-status { background: #fde3e3; color: #9b1c1c; }

.ssc-excursion-primary     { margin-top: var(--ssc-space-2); }
.ssc-excursion-description { margin-top: var(--ssc-space-3); }
.ssc-excursion-actions     { margin-top: var(--ssc-space-4); }

/*
 * .ssc-excursion-button and .ssc-excursion-button-secondary are defined once in
 * base.css, aliased onto .ssc-button. Nothing local is needed here.
 */

.ssc-excursions-empty {
	padding: 20px;
	border: 1px dashed var(--ssc-line-dashed);
	border-radius: var(--ssc-radius);
	color: var(--ssc-text-muted);
}

@media (max-width: 720px) {
	.ssc-excursions-toolbar { display: block; }
	.ssc-calendar-tools     { margin-top: 14px; }
	.ssc-calendar-tools .ssc-excursion-button { flex: 1 1 180px; }

	.ssc-excursion-card { grid-template-columns: 62px minmax(0, 1fr); gap: 13px; padding: 14px; }
	.ssc-excursion-date { min-height: 66px; }
	.ssc-excursion-day  { font-size: 24px; }

	.ssc-excursion-title-row { display: block; }
	.ssc-excursion-status    { margin-top: 7px; white-space: normal; }
	.ssc-excursion-actions .ssc-excursion-button { width: 100%; }
}

/* ------------------------------------------- upcoming vs past (v0.29.1) --- */

/*
 * Upcoming excursions are the ones a parent can still act on - declare, arrange
 * transport, ask a question. Past ones are reference. The list is newest-first,
 * so the two groups sit together and the difference has to be visible at a
 * glance rather than read off a date.
 */
.ssc-excursion-card.is-upcoming {
	border-color: var(--ssc-accent);
	border-left: 5px solid var(--ssc-accent);
	background: linear-gradient(180deg, #fff6fb 0%, var(--ssc-surface) 130px);
	box-shadow: 0 8px 26px rgba(189, 35, 133, .14);
}

.ssc-excursion-card.is-upcoming .ssc-excursion-date {
	background: var(--ssc-accent);
	color: #fff;
}

.ssc-excursion-card.is-upcoming .ssc-excursion-title-row h3 {
	color: var(--ssc-accent);
}

/* Past ones recede rather than disappear - still readable, just quieter. */
.ssc-excursion-card.is-past {
	background: var(--ssc-surface-muted);
}

.ssc-excursion-card.is-past .ssc-excursion-title-row h3 {
	color: var(--ssc-ink-700);
}

/* Same distinction in the table view. */
.ssc-summary-table tr.is-upcoming td {
	background: #fff6fb;
	font-weight: 600;
}

.ssc-summary-table tr.is-upcoming td:first-child {
	box-shadow: inset 4px 0 0 var(--ssc-accent);
}

/* ---------------------------------------------------------------- public promo (v0.31.1) --- */
.ssc-excursions-public-promo{padding:8px 0 18px}.ssc-public-promo-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.ssc-public-promo-head h2{margin:4px 0 7px}.ssc-public-promo-head p{max-width:720px;margin:0;color:var(--ssc-text-muted)}.ssc-public-kicker{font-size:12px;font-weight:800;letter-spacing:.11em;color:var(--ssc-accent)}.ssc-public-promo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ssc-public-promo-card{display:grid;grid-template-columns:76px minmax(0,1fr);gap:16px;align-items:center;padding:18px;border:1px solid var(--ssc-line);border-radius:var(--ssc-radius-lg);background:linear-gradient(135deg,#fff 0%,#fff8fc 100%);box-shadow:var(--ssc-shadow-sm)}.ssc-public-promo-date{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:76px;border-radius:var(--ssc-radius);background:var(--ssc-accent);color:#fff}.ssc-public-promo-date strong{font-size:26px;line-height:1}.ssc-public-promo-date span{margin-top:5px;font-size:12px;font-weight:800}.ssc-public-promo-body h3{margin:0 0 5px;color:var(--ssc-ink-800)}.ssc-public-promo-when,.ssc-public-promo-location{margin:3px 0;color:var(--ssc-text-muted)}.ssc-public-promo-location{font-weight:700;color:var(--ssc-ink-600)}.ssc-public-promo-status{display:inline-flex;margin-top:7px;padding:4px 9px;border-radius:var(--ssc-radius-pill);background:var(--ssc-warning-bg);color:var(--ssc-warning);font-size:12px;font-weight:800}.ssc-public-promo-empty{display:flex;flex-direction:column;gap:4px;padding:22px;border:1px dashed var(--ssc-line-dashed);border-radius:var(--ssc-radius-lg);background:var(--ssc-surface-subtle)}.ssc-public-promo-empty span{color:var(--ssc-text-muted)}
@media(max-width:760px){.ssc-public-promo-head{align-items:stretch;flex-direction:column}.ssc-public-promo-head .ssc-button{align-self:flex-start}.ssc-public-promo-grid{grid-template-columns:1fr}}

/* Parent flow: declarations are the primary action; calendar links stay quiet. */
.ssc-parent-auto-declared {
	display: grid;
	gap: 3px;
	margin: 16px 0 10px;
	padding: 12px 14px;
	border-left: 4px solid var(--ssc-warning);
	border-radius: var(--ssc-radius-sm);
	background: var(--ssc-warning-bg);
	color: var(--ssc-text);
}
.ssc-parent-auto-declared span { color: var(--ssc-text-muted); font-size: 14px; }
.ssc-excursion-actions.is-parent-actions .ssc-calendar-quiet {
	min-height: 0;
	padding: 5px 9px;
	border: 1px solid var(--ssc-line);
	background: transparent !important;
	box-shadow: none !important;
	color: var(--ssc-text-muted) !important;
	font-size: 12px;
	font-weight: 600;
}
.ssc-excursion-actions.is-parent-actions .ssc-calendar-quiet:hover,
.ssc-excursion-actions.is-parent-actions .ssc-calendar-quiet:focus {
	background: var(--ssc-surface-subtle) !important;
	color: var(--ssc-brand) !important;
}

/* ------------------------------------------------ frontend excursion manager (v0.33.0) --- */
.ssc-excursion-manager{display:grid;gap:24px}.ssc-excursion-manager-form,.ssc-excursion-manager-list{padding:20px;border:1px solid var(--ssc-line);border-radius:var(--ssc-radius-lg);background:var(--ssc-surface);box-shadow:var(--ssc-shadow-sm)}.ssc-excursion-manager-form{display:grid;gap:16px}.ssc-excursion-manager .ssc-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ssc-excursion-manager .ssc-field{display:grid;gap:6px;font-weight:700;color:var(--ssc-text)}.ssc-excursion-manager .ssc-field input[type=text],.ssc-excursion-manager .ssc-field input[type=date],.ssc-excursion-manager .ssc-field input[type=time],.ssc-excursion-manager .ssc-field select,.ssc-excursion-manager .ssc-field textarea{width:100%;max-width:none}.ssc-excursion-manager .ssc-field-checkbox{display:flex;align-items:center;gap:9px;align-self:end;min-height:44px}.ssc-excursion-manager-list h3{margin-top:0}@media(max-width:700px){.ssc-excursion-manager .ssc-form-grid{grid-template-columns:1fr}.ssc-excursion-manager-form,.ssc-excursion-manager-list{padding:15px}}
