/**
 * FSWEB Comments Core — admin styles.
 *
 * Visual language shared with the other FSWEB plugins: purple gradient hero,
 * white cards with soft shadows, pill badges and the red PRO tag used on the
 * premium options.
 */

.fsweb-cc-wrap,
.fsweb-cc-hero {
	--fsweb-cc-brand: #7b61ff;
	--fsweb-cc-brand-dark: #5b3fd4;
	--fsweb-cc-heading: #1d2327;
	--fsweb-cc-muted: #646970;
	--fsweb-cc-line: #e2e4e7;
	--fsweb-cc-soft: #f6f7f7;
	--fsweb-cc-radius: 8px;
	--fsweb-cc-radius-sm: 6px;
	--fsweb-cc-green: #1e7e34;
	--fsweb-cc-green-bg: #edfaef;
	--fsweb-cc-green-line: #b7e1c1;
	--fsweb-cc-neutral: #646970;
	--fsweb-cc-neutral-bg: #f0f0f1;
	--fsweb-cc-neutral-line: #dcdcde;
	max-width: none;
}

.fsweb-cc-wrap * {
	box-sizing: border-box;
}

/* ------------------------------------------------------------------ */
/*  Hero header
/* ------------------------------------------------------------------ */
.fsweb-cc-hero {
	position: relative;
	overflow: hidden;
	margin: 16px 0 20px;
	padding: 30px 36px;
	border-radius: var(--fsweb-cc-radius);
	background: linear-gradient(120deg, var(--fsweb-cc-brand) 0%, var(--fsweb-cc-brand-dark) 100%);
	color: #fff;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.fsweb-cc-hero h1 {
	margin: 0 0 8px;
	padding: 0;
	color: #fff;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.25;
}

.fsweb-cc-hero p {
	margin: 0;
	max-width: 760px;
	color: rgba(255, 255, 255, 0.92);
	font-size: 14.5px;
	line-height: 1.6;
}

.fsweb-cc-hero--split {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}

.fsweb-cc-hero__text {
	min-width: 0;
}

.fsweb-cc-hero__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	flex-shrink: 0;
}

.fsweb-cc-wrap .fsweb-cc-hero .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 38px;
	padding: 0 16px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: var(--fsweb-cc-radius-sm);
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	box-shadow: none;
}

.fsweb-cc-wrap .fsweb-cc-hero .button:hover,
.fsweb-cc-wrap .fsweb-cc-hero .button:focus {
	background: rgba(255, 255, 255, 0.22);
	border-color: rgba(255, 255, 255, 0.55);
	color: #fff;
}

/* White icons by default; purple when the button is highlighted. */
.fsweb-cc-wrap .fsweb-cc-hero .button .dashicons {
	width: 18px;
	height: 18px;
	font-size: 18px;
	line-height: 1;
	vertical-align: middle;
}

.fsweb-cc-wrap .fsweb-cc-hero .button .dashicons,
.fsweb-cc-wrap .fsweb-cc-hero .button .dashicons:before {
	color: #fff;
	-webkit-text-fill-color: #fff;
}

.fsweb-cc-wrap .fsweb-cc-hero .button.button-primary,
.fsweb-cc-wrap .fsweb-cc-hero .button[aria-current="page"] {
	background: #fff;
	border-color: #fff;
	color: var(--fsweb-cc-brand-dark);
}

.fsweb-cc-wrap .fsweb-cc-hero .button[aria-current="page"] {
	cursor: default;
}

.fsweb-cc-wrap .fsweb-cc-hero .button.button-primary .dashicons,
.fsweb-cc-wrap .fsweb-cc-hero .button.button-primary .dashicons:before,
.fsweb-cc-wrap .fsweb-cc-hero .button[aria-current="page"] .dashicons,
.fsweb-cc-wrap .fsweb-cc-hero .button[aria-current="page"] .dashicons:before {
	color: var(--fsweb-cc-brand-dark);
	-webkit-text-fill-color: var(--fsweb-cc-brand-dark);
}

/* Keep admin notices readable inside the plugin pages. */
.fsweb-cc-wrap .notice,
.fsweb-cc-wrap .notice p {
	color: #3c434a;
}

/* ------------------------------------------------------------------ */
/*  Buttons with icons
/*
/*  WordPress gives .dashicons a 20px box, a larger line box and
/*  `vertical-align: top`, which drops the glyph below the label. Making
/*  every plugin button a flex row and pinning the icon box keeps icon and
/*  text on the same centre line — in the hero and in card actions alike.
/* ------------------------------------------------------------------ */
.fsweb-cc-wrap .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
}

#wpbody .fsweb-cc-wrap .button .dashicons {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	margin: 0;
	padding: 0;
	font-size: 18px;
	line-height: 1;
	vertical-align: middle;
}

#wpbody .fsweb-cc-wrap .button .dashicons:before {
	display: block;
	margin: 0;
	font-size: inherit;
	line-height: 1;
	vertical-align: middle;
}

/* The Woodmart admin skin forces line-height 1.2/1.9 on button icons,
   which shifts the glyph inside the box. Re-assert the tight line box. */
#wpbody .fsweb-cc-wrap .fsweb-cc-hero .button .dashicons,
#wpbody .fsweb-cc-wrap .fsweb-cc-hero .button .dashicons:before {
	font-size: 18px;
	line-height: 1;
}

/* ------------------------------------------------------------------ */
/*  Stat cards
/* ------------------------------------------------------------------ */
.fsweb-cc-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: 16px;
	margin: 0 0 20px;
}

.fsweb-cc-stat-card {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 18px 20px;
	background: #fff;
	border: 1px solid var(--fsweb-cc-line);
	border-radius: var(--fsweb-cc-radius);
	box-shadow: 0 1px 2px rgba(16, 16, 16, 0.06);
}

.fsweb-cc-stat-label {
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.2px;
	text-transform: uppercase;
	color: var(--fsweb-cc-muted);
}

.fsweb-cc-stat-value {
	font-size: 28px;
	font-weight: 700;
	line-height: 1.1;
	color: var(--fsweb-cc-heading);
}

/* ------------------------------------------------------------------ */
/*  Status pills
/* ------------------------------------------------------------------ */
.fsweb-cc-pill {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	align-self: flex-start;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.8;
	white-space: nowrap;
	background: var(--fsweb-cc-neutral-bg);
	color: var(--fsweb-cc-neutral);
	border: 1px solid var(--fsweb-cc-neutral-line);
}

.fsweb-cc-pill::before {
	display: inline-block;
	font-family: dashicons;
	font-size: 15px;
	line-height: 1;
}

.fsweb-cc-pill.is-on::before {
	content: "\f12a";
}

.fsweb-cc-pill.is-off::before {
	content: "\f530";
}

.fsweb-cc-pill.is-on {
	background: var(--fsweb-cc-green-bg);
	color: var(--fsweb-cc-green);
	border-color: var(--fsweb-cc-green-line);
}

/* ------------------------------------------------------------------ */
/*  Cards and grid
/* ------------------------------------------------------------------ */
.fsweb-cc-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
	gap: 20px;
	align-items: start;
}

.fsweb-cc-card {
	background: #fff;
	border: 1px solid var(--fsweb-cc-line);
	border-radius: var(--fsweb-cc-radius);
	box-shadow: 0 1px 2px rgba(16, 16, 16, 0.06);
	overflow: hidden;
}

.fsweb-cc-card__header {
	padding: 16px 20px;
	border-bottom: 1px solid var(--fsweb-cc-line);
	background: linear-gradient(180deg, #fff 0%, var(--fsweb-cc-soft) 100%);
}

.fsweb-cc-card__header h2 {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: 15px;
	line-height: 1.4;
	color: var(--fsweb-cc-heading);
}

.fsweb-cc-card__header h2 .dashicons {
	color: var(--fsweb-cc-brand);
	font-size: 19px;
	width: 19px;
	height: 19px;
}

.fsweb-cc-card__body {
	padding: 20px;
}

.fsweb-cc-card__body > *:first-child {
	margin-top: 0;
}

.fsweb-cc-card__body > *:last-child {
	margin-bottom: 0;
}

.fsweb-cc-code {
	display: block;
	margin: 8px 0 16px;
	padding: 10px 14px;
	background: var(--fsweb-cc-soft);
	border: 1px solid var(--fsweb-cc-line);
	border-radius: var(--fsweb-cc-radius-sm);
	font-size: 13px;
	overflow-x: auto;
	white-space: nowrap;
}

.fsweb-cc-list {
	margin: 0 0 16px 20px;
	list-style: disc;
	line-height: 1.75;
	color: #50575e;
}

.fsweb-cc-list:last-child {
	margin-bottom: 0;
}

.fsweb-cc-list--ordered {
	list-style: decimal;
}

.fsweb-cc-table th {
	font-weight: 600;
	color: var(--fsweb-cc-heading);
}

.fsweb-cc-table td {
	vertical-align: middle;
}

.fsweb-cc-locked-row th {
	font-weight: 600;
	color: var(--fsweb-cc-heading);
}

.fsweb-cc-locked {
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	border: 1px dashed var(--fsweb-cc-line);
	border-radius: var(--fsweb-cc-radius-sm);
	background: var(--fsweb-cc-soft);
	color: var(--fsweb-cc-muted);
	font-size: 13px;
	font-style: italic;
}

/* ------------------------------------------------------------------ */
/*  Review list columns
/* ------------------------------------------------------------------ */
.fsweb-cc-muted {
	color: #c3c4c7;
}

.fsweb-cc-stars {
	color: #f0c040;
	font-size: 16px;
	letter-spacing: 1px;
}

/* ------------------------------------------------------------------ */
/*  PRO tag and invitation card
/* ------------------------------------------------------------------ */
.fsweb-cc-pro-tag {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 7px;
	border-radius: 999px;
	background: #d63638;
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.4px;
	line-height: 1.7;
	text-decoration: none;
	vertical-align: middle;
}

.fsweb-cc-pro-tag:hover,
.fsweb-cc-pro-tag:focus {
	background: #b32d2e;
	color: #fff;
}

.fsweb-cc-menu-pro {
	color: #d63638;
	font-weight: 600;
}

.fsweb-cc-card--pro {
	border: 1px solid rgba(214, 54, 56, 0.35);
	background:
		radial-gradient(120% 140% at 100% 0%, rgba(214, 54, 56, 0.1) 0%, rgba(214, 54, 56, 0) 55%),
		linear-gradient(135deg, #ffffff 0%, #fff7f7 100%);
	box-shadow: 0 12px 30px rgba(214, 54, 56, 0.08);
}

.fsweb-cc-pro-card {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	padding: 24px;
}

.fsweb-cc-pro-card__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border-radius: 15px;
	background: #d63638;
	color: #fff;
	font-size: 26px;
	line-height: 1;
	box-shadow: 0 8px 18px rgba(214, 54, 56, 0.25);
}

.fsweb-cc-pro-card__text {
	flex: 1 1 auto;
	min-width: 0;
}

.fsweb-cc-pro-card__text h2 {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0 0 6px;
	font-size: 19px;
	line-height: 1.3;
	color: var(--fsweb-cc-heading);
}

.fsweb-cc-pro-card__text > p {
	margin: 0 0 10px;
	max-width: 720px;
	color: #50575e;
}

.fsweb-cc-pro-card__text .button .dashicons {
	font-size: 17px;
	width: 17px;
	height: 17px;
}

.fsweb-cc-pro-card__text .button.button-primary {
	background: var(--fsweb-cc-brand);
	border-color: var(--fsweb-cc-brand);
	color: #fff;
	box-shadow: 0 4px 12px rgba(123, 97, 255, 0.25);
}

.fsweb-cc-pro-card__text .button.button-primary:hover,
.fsweb-cc-pro-card__text .button.button-primary:focus {
	background: var(--fsweb-cc-brand-dark);
	border-color: var(--fsweb-cc-brand-dark);
	color: #fff;
}

.fsweb-cc-pro-card__text .button.button-primary .dashicons,
.fsweb-cc-pro-card__text .button.button-primary .dashicons:before {
	color: #fff;
	-webkit-text-fill-color: #fff;
}

/* ------------------------------------------------------------------ */
/*  Review editor
/* ------------------------------------------------------------------ */
.fsweb-review-editor-fields {
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: 8px 0;
}

.fsweb-review-editor-field {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 16px;
	align-items: start;
}

.fsweb-review-editor-label {
	font-weight: 600;
	padding-top: 6px;
}

.fsweb-review-editor-required {
	color: #d63638;
}

.fsweb-review-editor-input input,
.fsweb-review-editor-input textarea,
.fsweb-review-editor-input select {
	width: 100%;
	max-width: 480px;
}

.fsweb-review-editor-stars {
	display: inline-flex;
	align-items: center;
	flex-direction: row-reverse;
	gap: 2px;
	justify-content: flex-end;
}

.fsweb-review-editor-stars input[type="radio"] {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.fsweb-review-editor-stars label {
	font-size: 26px;
	line-height: 1;
	color: #c3c4c7;
	cursor: pointer;
}

.fsweb-review-editor-stars label:hover,
.fsweb-review-editor-stars label:hover ~ label,
.fsweb-review-editor-stars input:checked ~ label {
	color: #f0c040;
}

.fsweb-review-editor-rating-badge {
	font-size: 13px;
	color: #646970;
	margin-right: 10px;
	order: 6;
}

@media (max-width: 782px) {
	.fsweb-cc-hero {
		padding: 24px;
	}

	.fsweb-cc-hero__actions,
	.fsweb-cc-hero__actions .button {
		width: 100%;
		justify-content: center;
	}

	.fsweb-cc-pro-card {
		flex-direction: column;
	}

	.fsweb-review-editor-field {
		grid-template-columns: 1fr;
		gap: 6px;
	}
}
