/* Federation portal -- builds on the entry form's palette and card. */

.icf-portal__head {
	margin-bottom: 1.5rem;
}

.icf-portal__login {
	max-width: 30rem;
	margin: 0 auto;
}

.icf-portal__login select {
	display: block;
	width: 100%;
	padding: 0.7rem 0.85rem;
	border: 1px solid var(--icf-line-strong);
	border-radius: 8px;
	background: var(--icf-field);
	color: var(--icf-ink);
	font: inherit;
}

.icf-portal__login select:focus {
	outline: none;
	border-color: var(--icf-accent);
	box-shadow: 0 0 0 3px var(--icf-accent-soft);
}

/* ------------------------------------------------------------ Status bar */

.icf-portal__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.25rem;
	margin-bottom: 1.25rem;
	border: 1px solid var(--icf-line);
	border-radius: 10px;
	background: var(--icf-field);
}

.icf-portal__count {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	flex-wrap: wrap;
}

.icf-portal__count strong {
	font-size: 1.6rem;
	line-height: 1;
	color: var(--icf-accent);
}

.icf-portal__count span {
	color: var(--icf-muted);
}

.icf-portal__meter {
	display: block;
	width: 9rem;
	height: 6px;
	border-radius: 999px;
	background: var(--icf-line);
	overflow: hidden;
}

.icf-portal__meter > span {
	display: block;
	height: 100%;
	background: var(--icf-accent);
	transition: width 0.3s ease;
}

.icf-portal__deadline,
.icf-portal__empty,
.icf-portal__muted {
	color: var(--icf-muted);
	font-size: 0.92rem;
}

.icf-portal__empty {
	padding: 2rem 1rem;
	text-align: center;
	border: 1px dashed var(--icf-line-strong);
	border-radius: 10px;
}

/* ---------------------------------------------------------------- Table */

.icf-portal__tablewrap {
	overflow-x: auto;
	margin-bottom: 1.5rem;
}

.icf-portal__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.94rem;
}

.icf-portal__table th,
.icf-portal__table td {
	padding: 0.7rem 0.75rem;
	text-align: left;
	border-bottom: 1px solid var(--icf-line);
	white-space: nowrap;
}

.icf-portal__table th {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--icf-muted);
	border-bottom-color: var(--icf-line-strong);
}

.icf-portal__name {
	font-weight: 600;
	white-space: normal;
}

.icf-portal__rowaction a {
	color: var(--icf-accent);
	font-weight: 600;
}

/* Pills are shared with the admin screens. */
.icf-pill {
	display: inline-block;
	padding: 0.15rem 0.6rem;
	border-radius: 999px;
	font-size: 0.8em;
	line-height: 1.7;
	white-space: nowrap;
}

.icf-pill--ok,
.icf-pill--approved {
	background: #e3f2e5;
	color: #1e5c26;
}

.icf-pill--warn,
.icf-pill--pending {
	background: #fcf3e3;
	color: #7a5410;
}

.icf-pill--rejected {
	background: #fbe6e4;
	color: #7a1e17;
}

/* --------------------------------------------------------------- Actions */

.icf-portal__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.85rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--icf-line);
}

.icf-portal__inline {
	display: inline;
}

.icf-portal__btn {
	display: inline-block;
	width: auto;
	padding: 0.7rem 1.4rem;
	border: 0;
	border-radius: 8px;
	background: var(--icf-accent);
	color: #fff;
	font: inherit;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
}

.icf-portal__btn:hover {
	background: #85210f;
	color: #fff;
}

.icf-portal__btn--ghost {
	background: transparent;
	color: var(--icf-accent);
	border: 1px solid var(--icf-accent);
}

.icf-portal__btn--ghost:hover {
	background: var(--icf-accent-soft);
	color: var(--icf-accent);
}

.icf-portal__notice {
	margin: 0 0 1.5rem;
	padding: 0.9rem 1.2rem;
	border: 1px solid #2e7d32;
	border-left-width: 4px;
	border-radius: 8px;
	background: #f1f8f2;
	color: #1e5c26;
}

.icf-portal__logout {
	margin-top: 1.5rem;
	text-align: right;
}

.icf-portal__logout button {
	padding: 0;
	border: 0;
	background: none;
	color: var(--icf-muted);
	font: inherit;
	font-size: 0.9rem;
	text-decoration: underline;
	cursor: pointer;
}

@media (prefers-color-scheme: dark) {
	.icf-ef-wrap .icf-portal__notice {
		background: #14261a;
		color: #a8dcb6;
	}

	.icf-ef-wrap .icf-pill--ok,
	.icf-ef-wrap .icf-pill--approved {
		background: #1b3320;
		color: #9fd6ac;
	}

	.icf-ef-wrap .icf-pill--warn,
	.icf-ef-wrap .icf-pill--pending {
		background: #33290f;
		color: #e0c07a;
	}

	.icf-ef-wrap .icf-pill--rejected {
		background: #33160f;
		color: #eaa79c;
	}
}

/* --------------------------------------------------- Actions above the roster */

.icf-portal__actions--top {
	padding-top: 0;
	margin-bottom: 1.25rem;
	border-top: 0;
}

.icf-portal__link {
	color: var(--icf-accent);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid transparent;
}

.icf-portal__link:hover {
	border-bottom-color: currentColor;
}

.icf-portal__rowaction {
	display: flex;
	gap: 0.75rem;
	align-items: center;
}

/* -------------------------------------------------------- Player detail view */

.icf-view__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
	padding-bottom: 1.1rem;
	margin-bottom: 0.5rem;
	border-bottom: 1px solid var(--icf-line);
}

.icf-view__list {
	margin: 0;
}

.icf-view__row {
	display: grid;
	grid-template-columns: 16rem minmax(0, 1fr);
	gap: 0 1.25rem;
	padding: 0.6rem 0;
	border-bottom: 1px solid var(--icf-line);
}

.icf-view__row:last-child {
	border-bottom: 0;
}

.icf-view__row dt {
	margin: 0;
	font-weight: 600;
	color: var(--icf-muted);
}

.icf-view__row dd {
	margin: 0;
}

@media (max-width: 640px) {
	.icf-view__row {
		grid-template-columns: 1fr;
		gap: 0.15rem;
	}
}

.icf-view__subhead {
	margin: 1.4rem 0 0.5rem;
	font-size: 0.95rem;
	font-weight: 600;
}

.icf-view__text {
	padding: 0.9rem 1.1rem;
	border-left: 3px solid var(--icf-accent);
	background: var(--icf-field);
	white-space: pre-wrap;
	line-height: 1.6;
}

.icf-view__docs {
	margin: 0;
	padding: 0;
	list-style: none;
}

.icf-view__docs li {
	padding: 0.55rem 0;
	border-bottom: 1px solid var(--icf-line);
}

.icf-view__docs li:last-child {
	border-bottom: 0;
}

/* Sign out sits at the right-hand end of the top action row. */
.icf-portal__logout--inline {
	margin-top: 0;
	margin-left: auto;
}

@media (max-width: 520px) {
	.icf-portal__logout--inline {
		margin-left: 0;
		width: 100%;
		text-align: left;
	}
}
