﻿/*--
    Admin section & Login page styles
    Shares design tokens (fonts, colours) with the main site's main.css,
    but kept separate since none of this applies to public-facing pages.
--*/

/*--
    Top bar (Admin.Master)
--*/
.admin-top-bar
{
	background: #E9E9E9;
	border-bottom: 1px solid #E9E9E9;
}

.admin-top-bar-home-link
{
	color: #FF4F02;
	font-weight: 600;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 1px;
}

	.admin-top-bar-home-link:hover
	{
		color: #ff530a;
	}

.admin-page-title
{
	font-family: var(--font-heading);
	font-size: 22px;
	font-weight: 600;
	color: #2E2E2E;
	margin: 0;
}

.admin-logged-in-as
{
	font-size: 13px;
	color: #3d3d3d;
	margin-right: 12px;
}

.admin-logout-link
{
	font-size: 13px;
	font-weight: 600;
	color: #FF4F02;
	text-transform: uppercase;
	letter-spacing: 1px;
}

/*--
    Success/error/denied banners (Admin.Master's pnlAlert)
--*/
.admin-alert
{
	border-radius: 6px;
	padding: 14px 18px;
	font-size: 15px;
	font-weight: 600;
	margin-bottom: 1.5rem;
	border-left-width: 5px;
	border-left-style: solid;
}

.admin-alert-success
{
	background: #d6f0dd;
	color: #114f20;
	border-left-color: #166b2c;
}

.admin-alert-error
{
	background: #f8d7d7;
	color: #6e1717;
	border-left-color: #A32626;
}

/*--
    Login page card
--*/
.login-card
{
	background: #ffffff;
	border-radius: 8px;
	box-shadow: 0 6px 30px rgba(0,0,0,0.08);
	padding: 2.5rem 2rem;
}

.login-title
{
	font-size: 24px;
	font-weight: 600;
	color: #2E2E2E;
	text-align: center;
	margin: 0 0 4px;
}

	.login-title span
	{
		color: #ff530a;
	}

.login-subtitle
{
	text-align: center;
	font-size: 13px;
	color: #3d3d3d;
	margin: 0 0 24px;
}

.btn-login
{
	width: 100%;
	height: 46px;
	background: #FF4F02;
	color: #fff;
	border: none;
	border-radius: 4px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 14px;
}

	.btn-login:hover
	{
		background: #ff530a;
		color: #fff;
	}

.login-footnote
{
	text-align: center;
	font-size: 11px;
	color: #3d3d3d;
	margin-top: 20px;
}

/*--
    Dashboard stat cards
--*/
.dashboard-stat-card
{
	background: #ffffff;
	border: 1px solid #E9E9E9;
	border-radius: 8px;
	padding: 1.75rem 1.5rem;
	text-align: center;
	height: 100%;
}

.dashboard-stat-icon
{
	font-size: 28px;
	margin-bottom: 12px;
	display: block;
}

/* Colours verified at 4.5:1+ contrast against a white card background (WCAG AA) */
.dashboard-stat-icon-approved
{
	color: #166b2c;
}

.dashboard-stat-icon-pending
{
	color: #8a5a0a;
}

.dashboard-stat-icon-users
{
	color: #2C5F8A;
}

.dashboard-stat-number
{
	font-family: var(--font-heading);
	font-size: 32px;
	font-weight: 700;
	color: #2E2E2E;
	margin: 0;
}

.dashboard-stat-label
{
	font-size: 14px;
	color: #3d3d3d;
	margin: 4px 0 0;
}

.dashboard-stat-desc
{
	font-size: 12px;
	color: #3d3d3d;
	margin: 2px 0 0;
}

a.dashboard-stat-card
{
	display: block;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

	a.dashboard-stat-card:hover,
	a.dashboard-stat-card:focus
	{
		box-shadow: 0 4px 16px rgba(0,0,0,0.08);
		border-color: #FF4F02;
		color: inherit;
	}

.dashboard-stat-icon-roles
{
	color: #6A4C93;
}

/*--
    Admin section nav bar
--*/
.admin-nav
{
	background: #2E2E2E;
}

.admin-nav-list
{
	display: flex;
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

	.admin-nav-list a
	{
		display: block;
		padding: 12px 0;
		color: #ffffff;
		font-size: 13px;
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 1px;
		text-decoration: none !important;
	}

		.admin-nav-list a:hover
		{
			color: #ff9d6e;
		}

.admin-top-bar-links > *
{
	margin-right: 16px;
}

	.admin-top-bar-links > *:last-child
	{
		margin-right: 0;
	}

.admin-action-link
{
	margin-right: 12px;
}

	.admin-action-link:last-child
	{
		margin-right: 0;
	}

/*--
    Review detail page
--*/
.admin-back-link
{
	display: inline-block;
	font-size: 13px;
	color: #3d3d3d;
	margin-bottom: 12px;
}

	.admin-back-link:hover
	{
		color: #ff530a;
	}

.admin-detail-card
{
	background: #ffffff;
	border: 1px solid #E9E9E9;
	border-radius: 8px;
	padding: 1.75rem;
}

.admin-detail-title
{
	font-family: var(--font-heading);
	font-size: 18px;
	font-weight: 600;
	color: #2E2E2E;
	margin: 0;
}

.admin-detail-subtitle
{
	font-family: var(--font-heading);
	font-size: 16px;
	font-weight: 600;
	color: #2E2E2E;
	margin: 0;
}

.admin-detail-rating
{
	font-size: 14px;
	font-weight: 600;
	color: #cc4300;
}

.admin-detail-text
{
	font-size: 14px;
	color: #2E2E2E;
	line-height: 1.6;
	margin: 0 0 1.25rem;
}

.admin-detail-meta
{
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 4px 16px;
	font-size: 13px;
	margin-bottom: 1.25rem;
}

	.admin-detail-meta dt
	{
		color: #3d3d3d;
		font-weight: 600;
	}

	.admin-detail-meta dd
	{
		color: #2E2E2E;
		margin: 0;
	}

.admin-detail-actions .btn
{
	margin-right: 8px;
}

/*--
    Admin status badges — text-labelled, never colour-only (WCAG),
    and each colour verified at 4.5:1+ against its own pill background
--*/
.admin-badge
{
	display: inline-block;
	padding: 4px 10px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 600;
}

.badge-status-approved
{
	background: #E3F3E8;
	color: #166b2c;
}

.badge-status-pending
{
	background: #FCF1DD;
	color: #8a5a0a;
}

.badge-status-rejected
{
	background: #FBE4E4;
	color: #A32626;
}

/*--
    Admin action buttons — each background colour verified to give white
    text at least 4.5:1 contrast (WCAG AA)
--*/
.admin-btn-approve
{
	background: #166b2c;
	color: #fff;
}

.admin-btn-reject
{
	background: #8a5a0a;
	color: #fff;
}

.admin-btn-delete
{
	background: #A32626;
	color: #fff;
}

.admin-btn-save
{
	background: #FF4F02;
	color: #fff;
}

.admin-btn-approve:hover
{
	background-color: #114f20;
	color: #fff;
}

.admin-btn-reject:hover
{
	background-color: #6b4507;
	color: #fff;
}

.admin-btn-delete:hover
{
	background-color: #8a2020;
	color: #fff;
}

.admin-btn-save:hover
{
	background-color: #e64600;
	color: #fff;
}

/*--
    Users page search box
--*/
.admin-search-box
{
	display: flex;
	gap: 8px;
	max-width: 400px;
}

	.admin-search-box .form-control
	{
		flex: 1;
	}

.admin-btn-search
{
	background: #2E2E2E;
	color: #fff;
}

	.admin-btn-search:hover
	{
		background-color: #454545;
		color: #fff;
	}

/*--
    Role badge (neutral, distinct from status badges)
--*/
.badge-status-role
{
	background: #F3EDE5;
	color: #5c4a34;
}

/*--
    Multi-role checkbox list (UserDetail.aspx)
--*/
.admin-role-checklist label
{
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-right: 20px;
	font-size: 14px;
	color: #2E2E2E;
	font-weight: 400;
}

/*--
    Password field show/hide toggle
--*/
.password-field-wrap
{
	position: relative;
}

	.password-field-wrap .form-control
	{
		padding-right: 60px;
	}

.password-toggle-btn
{
	position: absolute;
	top: 50%;
	right: 10px;
	transform: translateY(-50%);
	background: none;
	border: none;
	color: #3d3d3d;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	cursor: pointer;
	padding: 4px 6px;
}

	.password-toggle-btn:hover
	{
		color: #ff530a;
	}
