/* Team page: identity, a day timeline with the dashboard's rail, and an about sidebar. */

.team-identity {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--border);
}

/* frappe-ui's square 3xl Avatar: 46px, 10px corners, 20px initial. */
.team-logo {
	display: grid;
	flex-shrink: 0;
	place-items: center;
	width: calc(var(--spacing) * 11.5);
	height: calc(var(--spacing) * 11.5);
	border-radius: 10px;
	font-size: var(--text-3xl);
	background: var(--surface-raised);
	box-shadow: 0 0 0 1px var(--border);
	color: var(--ink-strong);
	font-weight: 600;
	object-fit: cover;
}

/* Wider than a plain subtle button: it is the page's one call to action. */
.team-event-action {
	min-width: 9rem;
	justify-content: center;
}

.team-identity-text {
	flex: 1;
	min-width: 240px;
}

.team-identity .event-title {
	font-size: 34px;
	line-height: 1.1;
}

.team-stats {
	margin-top: 4px;
	color: var(--ink-muted);
	font-size: 13px;
	font-variant-numeric: tabular-nums;
}

.team-columns {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 248px;
	gap: 40px;
	margin-top: 32px;
}

.team-columns:not(:has(.team-aside)) {
	grid-template-columns: minmax(0, 1fr);
}

.timeline-controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 24px;
}

/* The cover layout: one grid across the days; each card's cover carries its date. */
[data-card-layout="cover"] [data-panel]:not([hidden]) {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

[data-card-layout="cover"] :is(.team-day, .team-day-events) {
	display: contents;
}

[data-card-layout="cover"] .team-day::before,
[data-card-layout="cover"] .team-day::after {
	content: none;
}

[data-card-layout="cover"] .team-day-heading {
	display: none;
}

[data-card-layout="cover"] [data-panel] > :not(.team-day) {
	grid-column: 1 / -1;
}

.timeline-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 48px 24px;
	border: 1px dashed var(--outline-gray-2);
	border-radius: var(--radius-xl);
	text-align: center;
}

.timeline-empty-icon {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	margin-bottom: 8px;
	border-radius: var(--radius-full);
	background: var(--surface-gray-2);
	color: var(--ink-gray-5);
}

.timeline-empty-icon .icon {
	width: 20px;
	height: 20px;
}

.timeline-empty p {
	margin: 0;
}

.timeline-empty-title {
	color: var(--ink-gray-8);
	font-weight: 500;
}

/* The dashboard timeline's rail: a dot at each day, a line fading down past its cards. */
.team-day {
	position: relative;
	padding: 0 0 28px 24px;
}

.team-day::before {
	content: "";
	position: absolute;
	top: 7px;
	left: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--surface-gray-4);
}

.team-day::after {
	content: "";
	position: absolute;
	top: 21px;
	bottom: 0;
	left: 3.5px;
	width: 1px;
	background: linear-gradient(to bottom, var(--outline-gray-2) 75%, transparent);
}

.team-day-heading {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin-bottom: 12px;
	color: var(--ink-gray-8);
	font-size: 15px;
	font-weight: 600;
}

.team-day-heading span {
	color: var(--ink-gray-5);
	font-weight: 400;
}

.team-day-events {
	display: grid;
	gap: 12px;
}

.team-aside {
	position: sticky;
	top: 76px;
	align-self: start;
}

.team-about {
	padding: 16px;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface);
}

.team-about .label {
	margin-top: 0;
}

.team-tagline {
	margin-bottom: 12px;
	color: var(--ink-strong);
}

.team-about .prose {
	font-size: 14px;
}

.team-links {
	gap: 2px;
	margin-top: 16px;
}

@media (max-width: 900px) {
	.team-columns {
		grid-template-columns: 1fr;
	}

	.team-aside {
		position: static;
		order: -1;
	}
}

@media (max-width: 760px) {
	[data-card-layout="cover"] [data-panel]:not([hidden]) {
		grid-template-columns: minmax(0, 1fr);
	}
}
