/**
 * WP Koumbit Membership — front-end portal styles.
 */

/* ---- Portal card ---- */

.wkm-portal {
	max-width: 560px;
	padding: 24px;
	background: #fff;
	border: 1px solid #dcdcde;
	border-radius: 4px;
	font-family: inherit;
	line-height: 1.5;
}

.wkm-portal h2 {
	margin-top: 0;
	margin-bottom: 16px;
	font-size: 1.25em;
}

/* ---- Info table ---- */

.wkm-portal table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 20px;
}

.wkm-portal table th,
.wkm-portal table td {
	text-align: left;
	padding: 8px 12px;
	border-bottom: 1px solid #f0f0f1;
	vertical-align: middle;
}

.wkm-portal table th {
	width: 35%;
	color: #646970;
	font-weight: normal;
}

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

.wkm-portal-actions {
	margin-top: 16px;
}

.wkm-portal button,
.wkm-portal .wkm-button {
	display: inline-block;
	padding: 8px 18px;
	background: #2271b1;
	color: #fff;
	border: none;
	border-radius: 3px;
	cursor: pointer;
	text-decoration: none;
	font-size: 14px;
	line-height: 1.4;
}

.wkm-portal button:hover,
.wkm-portal .wkm-button:hover {
	background: #135e96;
}

/* ---- Inline notices ---- */

.wkm-notice {
	padding: 10px 14px;
	border-radius: 3px;
	margin-bottom: 16px;
	font-size: 0.95em;
}

.wkm-notice--success {
	background: #d1fae5;
	border: 1px solid #6ee7b7;
	color: #065f46;
}

.wkm-notice--error {
	background: #fee2e2;
	border: 1px solid #fca5a5;
	color: #991b1b;
}

.wkm-renewal-pending {
	color: #92400e;
	background: #fef3c7;
	border: 1px solid #fcd34d;
	padding: 10px 14px;
	border-radius: 3px;
	margin-top: 12px;
	font-size: 0.95em;
}

/* ---- Members-only gating notice ---- */

.wkm-members-only-notice {
	padding: 14px 18px;
	background: #f6f7f7;
	border-left: 4px solid #2271b1;
	margin: 16px 0;
	color: #3c434a;
}

.wkm-members-only-notice a {
	color: #2271b1;
}

/* ---- Status badges (front-end) ---- */

.wkm-status {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 3px;
	font-size: 0.8em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.wkm-status--active   { background: #d1fae5; color: #065f46; }
.wkm-status--pending  { background: #fef3c7; color: #92400e; }
.wkm-status--expired  { background: #fee2e2; color: #991b1b; }
.wkm-status--honorary { background: #ede9fe; color: #4c1d95; }

/* ---- Good standing ---- */

.wkm-good-standing {
	display: inline-block;
	font-size: 0.85em;
	font-weight: 600;
}

.wkm-good-standing--yes { color: #065f46; }
.wkm-good-standing--no  { color: #991b1b; }

/* ---- Member directory ---- */

.wkm-directory {
	margin: 1.5em 0;
}

.wkm-directory-search {
	display: flex;
	align-items: center;
	gap: 0.5em;
	margin-bottom: 1em;
	flex-wrap: wrap;
}

.wkm-directory-search input[type="search"] {
	padding: 0.4em 0.75em;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 0.95em;
	min-width: 200px;
}

.wkm-directory-search button {
	padding: 0.4em 1em;
	border: 1px solid #999;
	border-radius: 4px;
	background: #f6f6f6;
	cursor: pointer;
	font-size: 0.95em;
}

.wkm-directory-search button:hover { background: #e8e8e8; }

.wkm-dir-clear {
	color: #666;
	font-size: 0.85em;
	text-decoration: underline;
}

.wkm-directory-count {
	color: #666;
	font-size: 0.85em;
	margin: 0 0 0.75em;
}

.wkm-directory-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95em;
}

.wkm-directory-table th,
.wkm-directory-table td {
	padding: 0.5em 0.75em;
	text-align: left;
	border-bottom: 1px solid #e5e5e5;
}

.wkm-directory-table thead th {
	background: #f9f9f9;
	font-weight: 600;
	font-size: 0.8em;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: #555;
}

.wkm-directory-table tbody tr:hover { background: #f9f9f9; }

.wkm-directory-table a { color: inherit; }

.wkm-directory-empty {
	color: #666;
	font-style: italic;
}

.wkm-directory-pagination {
	display: flex;
	align-items: center;
	gap: 1em;
	margin-top: 1em;
	font-size: 0.9em;
	color: #444;
}

.wkm-directory-pagination a {
	color: #2563eb;
	text-decoration: none;
}

.wkm-directory-pagination a:hover { text-decoration: underline; }

/* ---- Application form ---- */

.wkm-apply-form {
	max-width: 480px;
}

.wkm-apply-form p { margin-bottom: 0.75em; }

.wkm-apply-form label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.25em;
	font-size: 0.9em;
}

.wkm-apply-form input[type="text"],
.wkm-apply-form input[type="email"] {
	width: 100%;
	padding: 0.45em 0.75em;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 0.95em;
	box-sizing: border-box;
}

.wkm-apply-form button[type="submit"] {
	padding: 0.5em 1.5em;
	background: #2563eb;
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 0.95em;
}

.wkm-apply-form button[type="submit"]:hover { background: #1d4ed8; }

/* ---- Voting ballot ---- */

.wkm-vote {
	margin: 1.5em 0;
	max-width: 520px;
}

.wkm-vote__title {
	margin: 0 0 0.5em;
	font-size: 1.1em;
	font-weight: 700;
}

.wkm-vote__description {
	margin-bottom: 1em;
	color: #444;
	font-size: 0.95em;
}

.wkm-vote__deadline {
	font-size: 0.85em;
	color: #888;
	margin-bottom: 0.75em;
}

.wkm-vote--unavailable,
.wkm-vote--login,
.wkm-vote--denied {
	color: #666;
	font-style: italic;
}

.wkm-vote__form fieldset {
	border: none;
	padding: 0;
	margin: 0 0 1em;
}

.wkm-vote__choice {
	display: flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.4em 0;
	cursor: pointer;
	font-size: 0.95em;
}

.wkm-vote__choice input[type="radio"] { accent-color: #2563eb; }

.wkm-vote__submit {
	padding: 0.5em 1.5em;
	background: #2563eb;
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 0.95em;
}

.wkm-vote__submit:hover { background: #1d4ed8; }

.wkm-vote--voted p { color: #444; }

.wkm-vote--closed .wkm-vote__results {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95em;
	margin: 0.75em 0;
}

.wkm-vote--closed .wkm-vote__results th,
.wkm-vote--closed .wkm-vote__results td {
	padding: 0.4em 0.75em;
	border-bottom: 1px solid #e5e5e5;
	text-align: left;
}

.wkm-vote--closed .wkm-vote__results thead th {
	font-size: 0.8em;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	color: #555;
	background: #f9f9f9;
}

.wkm-vote__quorum {
	margin-top: 0.75em;
	font-size: 0.9em;
}

.wkm-vote-error { color: #991b1b; font-style: italic; }
