/**
 * AFGE Member Access - front end.
 *
 * @version 1.1.0
 * @author  20 Miles North
 * @link    https://20milesnorth.com
 *
 * Deliberately low-specificity and variable driven so a theme (The7,
 * Elementor, anything) can restyle it without !important wars.
 */

.afge-ma {
	--afge-navy: #12263f;
	--afge-gold: #c8a227;
	--afge-border: #e2e6ec;
	--afge-muted: #5b6673;
	--afge-bg-soft: #f6f8fa;
	--afge-radius: 6px;

	color: inherit;
	font-size: 1rem;
	line-height: 1.5;
}

/* Buttons ---------------------------------------------------------------- */

.afge-ma .afge-ma-button,
.afge-ma-notice .afge-ma-button {
	display: inline-block;
	padding: 0.55em 1.1em;
	border: 1px solid var(--afge-navy, #12263f);
	border-radius: var(--afge-radius, 6px);
	background: var(--afge-navy, #12263f);
	color: #fff;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.afge-ma .afge-ma-button:hover,
.afge-ma .afge-ma-button:focus,
.afge-ma-notice .afge-ma-button:hover {
	background: var(--afge-gold, #c8a227);
	border-color: var(--afge-gold, #c8a227);
	color: var(--afge-navy, #12263f);
}

.afge-ma .afge-ma-button--ghost {
	background: transparent;
	color: var(--afge-navy, #12263f);
}

/* Notices ---------------------------------------------------------------- */

.afge-ma-notice {
	margin: 0 0 1.25rem;
	padding: 1rem 1.25rem;
	border-left: 4px solid #999;
	border-radius: 0 var(--afge-radius, 6px) var(--afge-radius, 6px) 0;
	background: #f6f8fa;
}

.afge-ma-notice p:last-child {
	margin-bottom: 0;
}

.afge-ma-notice--success {
	border-left-color: #2e7d4f;
	background: #eef7f1;
}

.afge-ma-notice--error {
	border-left-color: #b32d2e;
	background: #fbeeee;
}

.afge-ma-notice--locked {
	border-left-color: #c8a227;
	background: #fdf8e8;
}

/* Toolbar ---------------------------------------------------------------- */

.afge-ma-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1.25rem;
}

.afge-ma-toolbar input[type="search"],
.afge-ma-toolbar select {
	flex: 1 1 180px;
	min-width: 0;
	padding: 0.5em 0.7em;
	border: 1px solid var(--afge-border, #e2e6ec);
	border-radius: var(--afge-radius, 6px);
	font-size: 0.9375rem;
}

/* Document library ------------------------------------------------------- */

.afge-ma-doc-list {
	margin: 0;
	padding: 0;
	list-style: none;
	border: 1px solid var(--afge-border, #e2e6ec);
	border-radius: var(--afge-radius, 6px);
	overflow: hidden;
}

.afge-ma-doc {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin: 0;
	padding: 1rem 1.1rem;
	border-bottom: 1px solid var(--afge-border, #e2e6ec);
	background: #fff;
}

.afge-ma-doc:last-child {
	border-bottom: 0;
}

.afge-ma-doc:nth-child(even) {
	background: var(--afge-bg-soft, #f6f8fa);
}

.afge-ma-doc__type {
	flex: 0 0 52px;
	padding: 0.45em 0;
	border-radius: 4px;
	background: var(--afge-navy, #12263f);
	color: #fff;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-align: center;
}

.afge-ma-doc__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
}

.afge-ma-doc__title {
	font-weight: 600;
	line-height: 1.3;
}

.afge-ma-doc__desc {
	color: var(--afge-muted, #5b6673);
	font-size: 0.875rem;
}

.afge-ma-doc__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	color: var(--afge-muted, #5b6673);
	font-size: 0.8125rem;
}

.afge-ma-doc__cat {
	font-weight: 600;
}

.afge-ma-doc__actions {
	display: flex;
	flex: 0 0 auto;
	gap: 0.4rem;
}

.afge-ma-doc__missing {
	color: #b32d2e;
	font-size: 0.8125rem;
}

@media (max-width: 640px) {

	.afge-ma-doc {
		flex-wrap: wrap;
	}

	.afge-ma-doc__actions {
		flex: 1 1 100%;
		padding-left: 68px;
	}
}

/* Pagination ------------------------------------------------------------- */

.afge-ma-pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
}

.afge-ma-pagination a,
.afge-ma-pagination span {
	display: block;
	padding: 0.35em 0.7em;
	border: 1px solid var(--afge-border, #e2e6ec);
	border-radius: 4px;
	font-size: 0.875rem;
	text-decoration: none;
}

.afge-ma-pagination .current {
	background: var(--afge-navy, #12263f);
	border-color: var(--afge-navy, #12263f);
	color: #fff;
}

/* Upload form ------------------------------------------------------------ */

.afge-ma-form {
	max-width: 620px;
	padding: 1.5rem;
	border: 1px solid var(--afge-border, #e2e6ec);
	border-radius: var(--afge-radius, 6px);
	background: var(--afge-bg-soft, #f6f8fa);
}

.afge-ma-field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin: 0 0 1.1rem;
}

.afge-ma-field label {
	font-size: 0.875rem;
	font-weight: 600;
}

.afge-ma-field input[type="text"],
.afge-ma-field input[type="file"],
.afge-ma-field select,
.afge-ma-field textarea {
	padding: 0.55em 0.7em;
	border: 1px solid var(--afge-border, #e2e6ec);
	border-radius: var(--afge-radius, 6px);
	background: #fff;
	font-size: 0.9375rem;
}

.afge-ma-help {
	color: var(--afge-muted, #5b6673);
	font-size: 0.8125rem;
}

.afge-ma-required {
	color: #b32d2e;
}

/* Announcements ---------------------------------------------------------- */

.afge-ma-announce-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.afge-ma-announce {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	padding: 0.9rem 0;
	border-bottom: 1px solid var(--afge-border, #e2e6ec);
}

.afge-ma-announce__date {
	color: var(--afge-muted, #5b6673);
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.afge-ma-announce__title {
	font-weight: 600;
	text-decoration: none;
}

.afge-ma-announce__excerpt {
	color: var(--afge-muted, #5b6673);
	font-size: 0.9375rem;
}

/* Directory -------------------------------------------------------------- */

.afge-ma-directory-list {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}

.afge-ma-member {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 1rem;
	border: 1px solid var(--afge-border, #e2e6ec);
	border-radius: var(--afge-radius, 6px);
	background: #fff;
}

.afge-ma-member__avatar {
	flex: 0 0 48px;
	border-radius: 50%;
}

.afge-ma-member__body {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	min-width: 0;
}

.afge-ma-member__name {
	font-weight: 600;
}

.afge-ma-member__title,
.afge-ma-member__facility,
.afge-ma-member__contact {
	color: var(--afge-muted, #5b6673);
	font-size: 0.875rem;
	overflow-wrap: anywhere;
}

.afge-ma-member__role {
	align-self: flex-start;
	margin-left: auto;
	padding: 0.2em 0.55em;
	border-radius: 999px;
	background: var(--afge-bg-soft, #f6f8fa);
	color: var(--afge-muted, #5b6673);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	white-space: nowrap;
}

/* Member info ------------------------------------------------------------ */

.afge-ma-member-info__greeting {
	margin: 0 0 0.15rem;
	font-weight: 600;
}

.afge-ma-member-info__level {
	margin: 0 0 0.75rem;
	color: var(--afge-muted, #5b6673);
	font-size: 0.875rem;
}

.afge-ma-empty {
	padding: 1.5rem;
	border: 1px dashed var(--afge-border, #e2e6ec);
	border-radius: var(--afge-radius, 6px);
	color: var(--afge-muted, #5b6673);
	text-align: center;
}

/* Restricted pages and posts ---------------------------------------------- */

.afge-ma-restricted {
	max-width: 620px;
	margin: 2rem auto;
	padding: 2rem;
	border: 1px solid var(--afge-border, #e2e6ec);
	border-top: 4px solid var(--afge-gold, #c8a227);
	border-radius: var(--afge-radius, 6px);
	background: #fff;
}

.afge-ma-restricted__message {
	margin-bottom: 1.5rem;
	font-size: 1.0625rem;
	line-height: 1.6;
}

.afge-ma-restricted__message p:last-child {
	margin-bottom: 0;
}

.afge-ma-restricted__login {
	padding-top: 1.5rem;
	border-top: 1px solid var(--afge-border, #e2e6ec);
}

.afge-ma-restricted__login-title {
	margin: 0 0 1rem;
	font-size: 1rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.afge-ma-restricted__login .login-username,
.afge-ma-restricted__login .login-password {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin: 0 0 1rem;
}

.afge-ma-restricted__login label {
	font-size: 0.875rem;
	font-weight: 600;
}

.afge-ma-restricted__login input[type="text"],
.afge-ma-restricted__login input[type="password"] {
	width: 100%;
	padding: 0.6em 0.75em;
	border: 1px solid var(--afge-border, #e2e6ec);
	border-radius: var(--afge-radius, 6px);
	font-size: 1rem;
}

.afge-ma-restricted__login .login-remember {
	margin: 0 0 1rem;
	font-size: 0.875rem;
}

.afge-ma-restricted__login .login-submit input[type="submit"] {
	padding: 0.6em 1.4em;
	border: 1px solid var(--afge-navy, #12263f);
	border-radius: var(--afge-radius, 6px);
	background: var(--afge-navy, #12263f);
	color: #fff;
	font-size: 0.9375rem;
	font-weight: 600;
	cursor: pointer;
}

.afge-ma-restricted__login .login-submit input[type="submit"]:hover {
	background: var(--afge-gold, #c8a227);
	border-color: var(--afge-gold, #c8a227);
	color: var(--afge-navy, #12263f);
}

.afge-ma-restricted__reset,
.afge-ma-restricted__whoami {
	margin: 1rem 0 0;
	color: var(--afge-muted, #5b6673);
	font-size: 0.875rem;
}

.afge-ma-restricted-page {
	padding: 2rem 1rem 4rem;
}

.afge-ma-restricted-page__title {
	max-width: 620px;
	margin: 0 auto;
	text-align: center;
}

/* Announcement composer --------------------------------------------------- */

.afge-ma-announce-form .afge-ma-form textarea {
	min-height: 140px;
	font-family: inherit;
	line-height: 1.5;
}

.afge-ma-announce-mine {
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--afge-border, #e2e6ec);
}

.afge-ma-announce-mine__title {
	margin: 0 0 0.75rem;
	font-size: 0.8125rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--afge-muted, #5b6673);
}

.afge-ma-announce-mine__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.afge-ma-announce-mine__item {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.5rem;
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--afge-border, #e2e6ec);
}

.afge-ma-announce-mine__item:last-child {
	border-bottom: 0;
}

.afge-ma-announce-mine__headline {
	font-weight: 600;
}

.afge-ma-announce-mine__meta {
	flex: 1 1 100%;
	color: var(--afge-muted, #5b6673);
	font-size: 0.8125rem;
}

.afge-ma-state {
	flex: 0 0 auto;
	padding: 0.15em 0.6em;
	border-radius: 999px;
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.afge-ma-state--live {
	background: #eef7f1;
	color: #2e7d4f;
}

.afge-ma-state--pending {
	background: #fdf8e8;
	color: #8a6d0b;
}

.afge-ma-state--draft {
	background: #f1f2f4;
	color: #5b6673;
}

/* Delete with confirmation ------------------------------------------------ */

.afge-ma-delete-link {
	align-self: center;
	margin-left: 0.25rem;
	color: #b32d2e;
	font-size: 0.8125rem;
	text-decoration: none;
	border-bottom: 1px solid transparent;
}

.afge-ma-delete-link:hover,
.afge-ma-delete-link:focus {
	border-bottom-color: currentColor;
}

.afge-ma .afge-ma-button--danger {
	background: #b32d2e;
	border-color: #b32d2e;
	color: #fff;
}

.afge-ma .afge-ma-button--danger:hover,
.afge-ma .afge-ma-button--danger:focus {
	background: #8f2324;
	border-color: #8f2324;
	color: #fff;
}

.afge-ma-confirm {
	margin: 0 0 1.5rem;
	padding: 1.25rem 1.5rem;
	border: 1px solid #e6c4c4;
	border-left: 4px solid #b32d2e;
	border-radius: var(--afge-radius, 6px);
	background: #fbeeee;
}

.afge-ma-confirm__title {
	margin: 0 0 0.5rem;
	font-size: 1.0625rem;
}

.afge-ma-confirm__item {
	margin: 0 0 0.5rem;
}

.afge-ma-confirm__detail {
	display: block;
	color: var(--afge-muted, #5b6673);
	font-size: 0.8125rem;
}

.afge-ma-confirm__consequence {
	margin: 0 0 1rem;
	font-size: 0.9375rem;
}

.afge-ma-confirm__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	margin: 0;
}

/* Portal sign-in card ----------------------------------------------------- */

.afge-ma-login__card {
	max-width: 420px;
	margin: 2rem auto;
	padding: 2rem;
	border: 1px solid var(--afge-border, #e2e6ec);
	border-top: 4px solid var(--afge-navy, #12263f);
	border-radius: var(--afge-radius, 6px);
	background: #fff;
}

.afge-ma-login__title {
	margin: 0 0 .5rem;
	font-size: 1.25rem;
	line-height: 1.25;
}

.afge-ma-login__intro {
	margin: 0 0 1.5rem;
	color: var(--afge-muted, #5b6673);
	font-size: .9375rem;
}

.afge-ma-login__card .login-username,
.afge-ma-login__card .login-password {
	display: flex;
	flex-direction: column;
	gap: .35rem;
	margin: 0 0 1rem;
}

.afge-ma-login__card label {
	font-size: .875rem;
	font-weight: 600;
}

.afge-ma-login__card input[type="text"],
.afge-ma-login__card input[type="password"] {
	width: 100%;
	padding: .65em .75em;
	border: 1px solid var(--afge-border, #e2e6ec);
	border-radius: var(--afge-radius, 6px);
	font-size: 1rem;
}

.afge-ma-login__card .login-remember {
	margin: 0 0 1.25rem;
	font-size: .875rem;
}

.afge-ma-login__card .login-submit input[type="submit"] {
	width: 100%;
	padding: .7em 1.4em;
	border: 1px solid var(--afge-navy, #12263f);
	border-radius: var(--afge-radius, 6px);
	background: var(--afge-navy, #12263f);
	color: #fff;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
}

.afge-ma-login__card .login-submit input[type="submit"]:hover {
	background: var(--afge-gold, #c8a227);
	border-color: var(--afge-gold, #c8a227);
	color: var(--afge-navy, #12263f);
}

.afge-ma-login__reset {
	margin: 1.25rem 0 0;
	font-size: .875rem;
	text-align: center;
}

/* Password reset steps, drawn inside the same card. */
.afge-ma-login__card .afge-ma-login__notice {
	margin: 0 0 1.25rem;
}

.afge-ma-login__hint {
	margin: -.5rem 0 1.25rem;
	color: var(--afge-muted, #5b6673);
	font-size: .8125rem;
}
