/* =========================================================================
   StratoBliss Software Hub — Frontend Styles
   A clean, modern, card-based directory UI.
   Theme color is controlled by --pth-accent (set in Settings).
   ========================================================================= */

:root {
	--pth-accent: #d32f2f;
	--pth-ink: #11131a;
	--pth-ink-soft: #525868;
	--pth-line: #e7e9f0;
	--pth-bg-soft: #f7f8fc;
	--pth-card: #ffffff;
	--pth-radius: 16px;
	--pth-radius-sm: 10px;
	--pth-shadow: 0 1px 2px rgba(17, 19, 26, .04), 0 8px 24px rgba(17, 19, 26, .06);
	--pth-shadow-hover: 0 4px 12px rgba(17, 19, 26, .08), 0 18px 48px rgba(17, 19, 26, .12);
	--pth-green: #14a05a;
	--pth-red: #e0464a;
}

/* Accent helpers */
.pth-wrap {
	--pth-accent-soft: color-mix(in srgb, var(--pth-accent) 12%, white);
	--pth-accent-ink: color-mix(in srgb, var(--pth-accent) 72%, black);
}

.pth-wrap,
.pth-wrap * {
	box-sizing: border-box;
}

.pth-wrap {
	max-width: 1140px;
	margin: 0 auto;
	padding: 8px 16px 48px;
	color: var(--pth-ink);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	line-height: 1.55;
}

/* ---------------- Buttons ---------------- */
.pth-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 10px 18px;
	border-radius: 999px;
	font-weight: 600;
	font-size: 14px;
	line-height: 1;
	text-decoration: none;
	border: 1.5px solid transparent;
	cursor: pointer;
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
	white-space: nowrap;
}
.pth-btn--primary {
	background: var(--pth-accent);
	color: #fff;
	box-shadow: 0 6px 16px color-mix(in srgb, var(--pth-accent) 28%, transparent);
}
.pth-btn--primary:hover {
	transform: translateY(-1px);
	box-shadow: 0 10px 24px color-mix(in srgb, var(--pth-accent) 38%, transparent);
	color: #fff;
}
.pth-btn--ghost {
	background: #fff;
	border-color: var(--pth-line);
	color: var(--pth-ink);
}
.pth-btn--ghost:hover {
	border-color: var(--pth-accent);
	color: var(--pth-accent-ink);
}
.pth-btn--lg { padding: 14px 26px; font-size: 15px; }
.pth-btn--sm { padding: 7px 14px; font-size: 13px; }
.pth-btn--block { display: flex; width: 100%; margin-top: 10px; }

/* ---------------- Toolbar (search + filters) ---------------- */
.pth-toolbar {
	display: flex;
	gap: 14px;
	align-items: center;
	flex-wrap: wrap;
	background: var(--pth-card);
	border: 1px solid var(--pth-line);
	border-radius: var(--pth-radius);
	padding: 14px;
	box-shadow: var(--pth-shadow);
	margin-bottom: 26px;
}
.pth-search {
	position: relative;
	flex: 1 1 280px;
}
.pth-search-icon {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 18px;
	color: var(--pth-ink-soft);
}
.pth-search input {
	width: 100%;
	padding: 12px 14px 12px 40px;
	border: 1.5px solid var(--pth-line);
	border-radius: var(--pth-radius-sm);
	font-size: 15px;
	background: var(--pth-bg-soft);
	transition: border .15s ease, background .15s ease;
}
.pth-search input:focus {
	outline: none;
	border-color: var(--pth-accent);
	background: #fff;
}
.pth-filters {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}
.pth-filters select {
	padding: 11px 14px;
	border: 1.5px solid var(--pth-line);
	border-radius: var(--pth-radius-sm);
	font-size: 14px;
	background: #fff;
	cursor: pointer;
	color: var(--pth-ink);
}
.pth-filters select:focus { outline: none; border-color: var(--pth-accent); }

/* ---------------- Grid + Cards ---------------- */
.pth-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 20px;
}
.pth-card {
	position: relative;
	background: var(--pth-card);
	border: 1px solid var(--pth-line);
	border-radius: var(--pth-radius);
	padding: 22px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	box-shadow: var(--pth-shadow);
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.pth-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--pth-shadow-hover);
	border-color: color-mix(in srgb, var(--pth-accent) 35%, var(--pth-line));
}
.pth-card--featured {
	border-color: color-mix(in srgb, var(--pth-accent) 45%, var(--pth-line));
	background: linear-gradient(180deg, var(--pth-accent-soft) 0%, #fff 60px);
}
.pth-badge {
	position: absolute;
	top: 14px;
	right: 14px;
	background: var(--pth-accent);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 999px;
}
.pth-card-head {
	display: flex;
	gap: 14px;
	align-items: center;
}
.pth-logo {
	width: 52px;
	height: 52px;
	border-radius: 14px;
	overflow: hidden;
	flex-shrink: 0;
	border: 1px solid var(--pth-line);
	background: var(--pth-bg-soft);
	display: flex;
	align-items: center;
	justify-content: center;
}
.pth-logo img { width: 100%; height: 100%; object-fit: cover; }
.pth-logo-fallback {
	font-size: 24px;
	font-weight: 800;
	color: var(--pth-accent);
}
.pth-logo-fallback--lg { font-size: 44px; }
.pth-card-title h3 {
	margin: 0 0 3px;
	font-size: 18px;
	line-height: 1.25;
}
.pth-card-title h3 a { color: var(--pth-ink); text-decoration: none; }
.pth-card-title h3 a:hover { color: var(--pth-accent-ink); }
.pth-card-cat {
	font-size: 12px;
	color: var(--pth-ink-soft);
	font-weight: 500;
}
.pth-card-excerpt {
	margin: 0;
	font-size: 14px;
	color: var(--pth-ink-soft);
	flex: 1;
}
.pth-card-meta {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.pth-meta-pill {
	background: var(--pth-bg-soft);
	border: 1px solid var(--pth-line);
	border-radius: 999px;
	padding: 4px 11px;
	font-size: 12px;
	font-weight: 500;
	color: var(--pth-ink);
}
.pth-card-actions { margin-top: 2px; }
.pth-card-actions .pth-btn { width: 100%; }

/* ---------------- Stars ---------------- */
.pth-stars {
	display: inline-flex;
	align-items: center;
	gap: 1px;
	font-size: 16px;
	line-height: 1;
}
.pth-star { color: #d9dce6; }
.pth-star--full { color: #f5a623; }
.pth-star--half {
	background: linear-gradient(90deg, #f5a623 50%, #d9dce6 50%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.pth-rating-num {
	margin-left: 7px;
	font-size: 13px;
	font-weight: 700;
	color: var(--pth-ink);
}
.pth-stars--empty {
	font-size: 12px;
	color: var(--pth-ink-soft);
	font-style: italic;
}

/* ---------------- Pagination ---------------- */
.pth-pagination {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin-top: 32px;
	flex-wrap: wrap;
}
.pth-page-link {
	min-width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	border: 1.5px solid var(--pth-line);
	background: #fff;
	color: var(--pth-ink);
	text-decoration: none;
	font-weight: 600;
	font-size: 14px;
	transition: all .15s ease;
}
.pth-page-link:hover { border-color: var(--pth-accent); color: var(--pth-accent-ink); }
.pth-page-link.is-active { background: var(--pth-accent); border-color: var(--pth-accent); color: #fff; }

/* ---------------- Empty + Notices ---------------- */
.pth-empty {
	text-align: center;
	padding: 60px 20px;
	background: var(--pth-bg-soft);
	border: 1px dashed var(--pth-line);
	border-radius: var(--pth-radius);
	color: var(--pth-ink-soft);
}
.pth-notice {
	padding: 14px 18px;
	border-radius: var(--pth-radius-sm);
	margin-bottom: 20px;
	font-size: 14px;
	font-weight: 500;
}
.pth-notice--success { background: #e7f8ee; border: 1px solid #b6e6cb; color: #0c6b3a; }
.pth-notice--error { background: #fdeced; border: 1px solid #f6c5c7; color: #a4282b; }

/* ---------------- Submit CTA strip ---------------- */
.pth-submit-cta {
	margin-top: 34px;
	background: linear-gradient(120deg, var(--pth-accent) 0%, var(--pth-accent-ink) 100%);
	border-radius: var(--pth-radius);
	padding: 26px 28px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	flex-wrap: wrap;
	color: #fff;
}
.pth-submit-cta h4 { margin: 0 0 4px; font-size: 19px; }
.pth-submit-cta p { margin: 0; opacity: .9; font-size: 14px; }
.pth-submit-cta .pth-btn--primary {
	background: #fff;
	color: var(--pth-accent-ink);
	box-shadow: none;
}
.pth-submit-cta .pth-btn--primary:hover { transform: translateY(-1px); color: var(--pth-accent-ink); }

/* =========================================================================
   Submission Form
   ========================================================================= */
.pth-submit-wrap { max-width: 760px; }
.pth-submit-card {
	background: var(--pth-card);
	border: 1px solid var(--pth-line);
	border-radius: var(--pth-radius);
	padding: 34px;
	box-shadow: var(--pth-shadow);
}
.pth-submit-heading { margin: 0 0 6px; font-size: 26px; }
.pth-submit-sub { margin: 0 0 26px; color: var(--pth-ink-soft); font-size: 15px; }
.pth-form-row { margin-bottom: 18px; }
.pth-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}
.pth-form-row label {
	display: block;
	font-weight: 600;
	font-size: 13px;
	margin-bottom: 7px;
	color: var(--pth-ink);
}
.pth-req { color: var(--pth-red); }
.pth-form input,
.pth-form textarea,
.pth-form select {
	width: 100%;
	padding: 12px 14px;
	border: 1.5px solid var(--pth-line);
	border-radius: var(--pth-radius-sm);
	font-size: 14px;
	font-family: inherit;
	background: var(--pth-bg-soft);
	transition: border .15s ease, background .15s ease;
}
.pth-form input:focus,
.pth-form textarea:focus,
.pth-form select:focus {
	outline: none;
	border-color: var(--pth-accent);
	background: #fff;
}
.pth-form-divider { border: none; border-top: 1px solid var(--pth-line); margin: 6px 0 22px; }
.pth-form-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 6px; }
.pth-form-note { font-size: 13px; color: var(--pth-ink-soft); }
/* Honeypot — insaano se chhupa hua */
.pth-hp { position: absolute; left: -9999px; top: -9999px; height: 0; overflow: hidden; }

/* =========================================================================
   Comparison Table
   ========================================================================= */
.pth-compare-wrap { max-width: 1140px; }
.pth-compare-scroll { overflow-x: auto; border-radius: var(--pth-radius); border: 1px solid var(--pth-line); box-shadow: var(--pth-shadow); }
.pth-compare {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	min-width: 640px;
}
.pth-compare th,
.pth-compare td {
	padding: 16px 18px;
	text-align: left;
	border-bottom: 1px solid var(--pth-line);
	vertical-align: top;
	font-size: 14px;
}
.pth-compare thead th {
	background: var(--pth-bg-soft);
	border-bottom: 2px solid var(--pth-line);
	position: sticky;
	top: 0;
}
.pth-compare-label {
	font-weight: 700;
	color: var(--pth-ink);
	background: var(--pth-bg-soft);
	white-space: nowrap;
}
.pth-compare-tool {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}
.pth-compare-tool img { width: 40px; height: 40px; border-radius: 10px; object-fit: cover; border: 1px solid var(--pth-line); }
.pth-compare-tool a { font-weight: 700; color: var(--pth-ink); text-decoration: none; font-size: 15px; }
.pth-compare-tool a:hover { color: var(--pth-accent-ink); }
.pth-compare tbody tr:nth-child(even) td:not(.pth-compare-label) { background: #fcfcfe; }
.pth-mini-list { margin: 0; padding-left: 18px; }
.pth-mini-list li { margin-bottom: 4px; }
.pth-mini-list--pro li { color: #0c6b3a; }
.pth-mini-list--con li { color: #a4282b; }

/* =========================================================================
   Single Tool Page
   ========================================================================= */
.pth-single { max-width: 1080px; }
.pth-breadcrumb {
	display: flex;
	gap: 8px;
	align-items: center;
	font-size: 13px;
	color: var(--pth-ink-soft);
	margin: 6px 0 22px;
	flex-wrap: wrap;
}
.pth-breadcrumb a { color: var(--pth-accent-ink); text-decoration: none; }
.pth-breadcrumb a:hover { text-decoration: underline; }
.pth-breadcrumb-current { color: var(--pth-ink); font-weight: 600; }

.pth-single-hero {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 26px;
	align-items: center;
	background: var(--pth-card);
	border: 1px solid var(--pth-line);
	border-radius: var(--pth-radius);
	padding: 30px;
	box-shadow: var(--pth-shadow);
	margin-bottom: 26px;
}
.pth-single-logo {
	width: 88px;
	height: 88px;
	border-radius: 20px;
	overflow: hidden;
	border: 1px solid var(--pth-line);
	background: var(--pth-bg-soft);
	display: flex;
	align-items: center;
	justify-content: center;
}
.pth-single-logo img { width: 100%; height: 100%; object-fit: cover; }
.pth-single-title { margin: 0 0 10px; font-size: 30px; line-height: 1.15; }
.pth-single-cats { display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 12px; }
.pth-chip {
	background: var(--pth-accent-soft);
	color: var(--pth-accent-ink);
	font-size: 12px;
	font-weight: 600;
	padding: 4px 12px;
	border-radius: 999px;
}
.pth-single-rating { margin-bottom: 16px; }
.pth-single-rating .pth-stars { font-size: 20px; }
.pth-rating-source {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	color: var(--pth-ink-soft);
	font-weight: 500;
}

.pth-single-facts {
	display: flex;
	flex-direction: column;
	gap: 14px;
	background: var(--pth-bg-soft);
	border-radius: var(--pth-radius-sm);
	padding: 18px 20px;
	min-width: 180px;
}
.pth-fact { display: flex; flex-direction: column; gap: 2px; }
.pth-fact-label { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--pth-ink-soft); font-weight: 600; }
.pth-fact-value { font-size: 16px; font-weight: 700; }
.pth-fact-note { font-size: 12px; color: var(--pth-green); font-weight: 500; }
.pth-fact-score { font-size: 24px; color: var(--pth-accent-ink); }
.pth-fact-score small { font-size: 14px; color: var(--pth-ink-soft); font-weight: 600; }

.pth-single-body {
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: 26px;
	align-items: start;
}
.pth-section {
	background: var(--pth-card);
	border: 1px solid var(--pth-line);
	border-radius: var(--pth-radius);
	padding: 26px 28px;
	box-shadow: var(--pth-shadow);
	margin-bottom: 22px;
}
.pth-section h2 { margin: 0 0 16px; font-size: 21px; }
.pth-content p { margin: 0 0 14px; color: var(--pth-ink); }
.pth-content :last-child { margin-bottom: 0; }

.pth-feature-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px 24px;
}
.pth-feature-list li { display: flex; gap: 9px; align-items: flex-start; font-size: 14px; }
.pth-tick {
	color: var(--pth-green);
	font-weight: 800;
	flex-shrink: 0;
}

.pth-proscons { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.pth-pros, .pth-cons {
	border-radius: var(--pth-radius-sm);
	padding: 18px 20px;
}
.pth-pros { background: #effaf3; border: 1px solid #c7ecd5; }
.pth-cons { background: #fdf0f0; border: 1px solid #f3cdce; }
.pth-pros h3, .pth-cons h3 { margin: 0 0 12px; font-size: 16px; }
.pth-pros ul, .pth-cons ul { margin: 0; padding-left: 20px; }
.pth-pros li, .pth-cons li { margin-bottom: 7px; font-size: 14px; }
.pth-muted { color: var(--pth-ink-soft); font-style: italic; }

.pth-verdict { background: linear-gradient(135deg, var(--pth-accent-soft), #fff); }
.pth-verdict p { margin: 0; font-size: 16px; line-height: 1.6; }

.pth-alts { display: flex; flex-direction: column; gap: 12px; }
.pth-alt { display: flex; align-items: center; gap: 12px; font-size: 15px; }
.pth-alt-dot {
	width: 8px; height: 8px;
	border-radius: 50%;
	background: var(--pth-accent);
	flex-shrink: 0;
}
.pth-alt a { color: var(--pth-accent-ink); text-decoration: none; font-weight: 600; }
.pth-alt a:hover { text-decoration: underline; }

.pth-single-side { position: sticky; top: 24px; }
.pth-cta-box {
	background: var(--pth-card);
	border: 1px solid var(--pth-line);
	border-radius: var(--pth-radius);
	padding: 24px;
	box-shadow: var(--pth-shadow);
	text-align: center;
}
.pth-cta-box h3 { margin: 0 0 10px; font-size: 19px; }
.pth-cta-box .pth-stars { justify-content: center; margin-bottom: 8px; }
.pth-cta-price { font-size: 22px; font-weight: 800; color: var(--pth-accent-ink); margin: 8px 0 14px; }

.pth-related { margin-top: 8px; }

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width: 880px) {
	.pth-single-hero { grid-template-columns: auto 1fr; }
	.pth-single-facts { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; }
	.pth-fact { flex: 1 1 30%; }
	.pth-single-body { grid-template-columns: 1fr; }
	.pth-single-side { position: static; }
}
@media (max-width: 600px) {
	.pth-form-grid { grid-template-columns: 1fr; }
	.pth-proscons { grid-template-columns: 1fr; }
	.pth-feature-list { grid-template-columns: 1fr; }
	.pth-single-hero { grid-template-columns: 1fr; text-align: center; }
	.pth-single-logo { margin: 0 auto; }
	.pth-single-cats, .pth-single-rating { justify-content: center; }
	.pth-toolbar { flex-direction: column; align-items: stretch; }
	.pth-filters { justify-content: stretch; }
	.pth-filters select { flex: 1; }
	.pth-submit-card { padding: 22px; }
}

/* =========================================================================
   Platform Ratings (single tool page)
   ========================================================================= */
.pth-platforms {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 14px;
}
/* Jab kam cards hon to unhe natural width do — full-width stretch na ho,
   taaki "yahaan aur bhi hai" wala bhram na ho. */
.pth-platforms--count-1 { grid-template-columns: minmax(200px, 280px); }
.pth-platforms--count-2 { grid-template-columns: repeat(2, minmax(180px, 260px)); }
.pth-platforms--count-3 { grid-template-columns: repeat(3, minmax(170px, 1fr)); }
.pth-platform-card {
	border: 1px solid var(--pth-line);
	border-radius: var(--pth-radius-sm);
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	background: var(--pth-bg-soft);
	transition: border-color .15s ease, transform .15s ease;
}
.pth-platform-card:hover {
	border-color: color-mix(in srgb, var(--pth-accent) 40%, var(--pth-line));
	transform: translateY(-2px);
}
.pth-platform-name {
	font-weight: 700;
	font-size: 14px;
	color: var(--pth-ink);
}
.pth-platform-score {
	font-size: 24px;
	font-weight: 800;
	color: var(--pth-accent-ink);
	line-height: 1;
}
.pth-platform-score small { font-size: 13px; color: var(--pth-ink-soft); font-weight: 600; }
.pth-platform-card .pth-stars { font-size: 15px; }
.pth-platform-link {
	font-size: 12px;
	font-weight: 600;
	color: var(--pth-accent-ink);
	text-decoration: none;
	margin-top: 2px;
}
.pth-platform-link:hover { text-decoration: underline; }

/* =========================================================================
   Pulse of Strategy Reviews
   ========================================================================= */
.pth-reviews-summary {
	display: flex;
	align-items: center;
	gap: 18px;
	padding-bottom: 18px;
	margin-bottom: 20px;
	border-bottom: 1px solid var(--pth-line);
}
.pth-reviews-avg {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}
.pth-reviews-avg-num {
	font-size: 40px;
	font-weight: 800;
	color: var(--pth-accent-ink);
	line-height: 1;
}
.pth-reviews-avg .pth-stars { font-size: 20px; }
.pth-reviews-count { color: var(--pth-ink-soft); font-size: 14px; font-weight: 500; }

.pth-reviews { display: flex; flex-direction: column; gap: 18px; margin-bottom: 30px; }
.pth-review {
	border: 1px solid var(--pth-line);
	border-radius: var(--pth-radius-sm);
	padding: 20px;
	background: #fff;
}
.pth-review-head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}
.pth-review-avatar {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--pth-accent), var(--pth-accent-ink));
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 18px;
	flex-shrink: 0;
}
.pth-review-meta { display: flex; flex-direction: column; }
.pth-review-author { font-weight: 700; font-size: 15px; }
.pth-review-date { font-size: 12px; color: var(--pth-ink-soft); }
.pth-review-head .pth-review-stars { margin-left: auto; }
.pth-review-head .pth-stars { font-size: 15px; }
.pth-review-title { margin: 8px 0 6px; font-size: 16px; }
.pth-review-text { color: var(--pth-ink); font-size: 14px; }
.pth-review-text p { margin: 0 0 10px; }
.pth-review-text :last-child { margin-bottom: 0; }
.pth-review-images {
	display: flex;
	gap: 10px;
	margin-top: 14px;
	flex-wrap: wrap;
}
.pth-review-img {
	display: block;
	width: 110px;
	height: 110px;
	border-radius: 10px;
	overflow: hidden;
	border: 1px solid var(--pth-line);
	transition: transform .15s ease;
}
.pth-review-img:hover { transform: scale(1.04); }
.pth-review-img img { width: 100%; height: 100%; object-fit: cover; }
.pth-reviews-empty {
	text-align: center;
	padding: 30px;
	color: var(--pth-ink-soft);
	background: var(--pth-bg-soft);
	border-radius: var(--pth-radius-sm);
	margin-bottom: 26px;
}

/* Review submission form */
.pth-review-form-card {
	margin-top: 10px;
	padding: 26px;
	border: 1px solid var(--pth-line);
	border-radius: var(--pth-radius);
	background: var(--pth-bg-soft);
}
.pth-review-form-title { margin: 0 0 6px; font-size: 20px; }
.pth-review-form-sub { margin: 0 0 20px; color: var(--pth-ink-soft); font-size: 14px; }
.pth-review-form input[type="text"],
.pth-review-form input[type="email"],
.pth-review-form input[type="file"],
.pth-review-form textarea {
	width: 100%;
	padding: 11px 13px;
	border: 1.5px solid var(--pth-line);
	border-radius: var(--pth-radius-sm);
	font-size: 14px;
	font-family: inherit;
	background: #fff;
}
.pth-review-form input:focus,
.pth-review-form textarea:focus { outline: none; border-color: var(--pth-accent); }
.pth-mini-note { display: block; margin-top: 5px; font-size: 12px; color: var(--pth-ink-soft); }

/* Star picker (interactive) */
.pth-star-picker {
	display: inline-flex;
	flex-direction: row-reverse;
	gap: 4px;
	font-size: 32px;
	line-height: 1;
}
.pth-star-picker input { position: absolute; opacity: 0; pointer-events: none; }
.pth-star-picker label {
	color: #d9dce6;
	cursor: pointer;
	transition: color .12s ease, transform .12s ease;
}
.pth-star-picker label:hover,
.pth-star-picker label:hover ~ label,
.pth-star-picker input:checked ~ label {
	color: #f5a623;
}
.pth-star-picker label:hover { transform: scale(1.15); }

/* Inline platform select+rating in submission form */
.pth-form-inline { display: flex; gap: 10px; flex-wrap: wrap; }
.pth-form-inline select { flex: 1; min-width: 140px; }
.pth-form-inline input { width: 140px; }

@media (max-width: 600px) {
	.pth-review-head .pth-review-stars { margin-left: 0; width: 100%; }
	.pth-review-head { flex-wrap: wrap; }
	.pth-reviews-avg-num { font-size: 32px; }
}

/* =========================================================================
   Review criteria — breakdown bars (summary) + pickers (form)
   ========================================================================= */
.pth-reviews-summary {
	display: flex;
	gap: 30px;
	align-items: center;
	flex-wrap: wrap;
}
.pth-reviews-avg-meta { display: flex; flex-direction: column; gap: 2px; }

/* Breakdown bars */
.pth-criteria-breakdown {
	flex: 1;
	min-width: 260px;
	display: grid;
	gap: 8px;
}
.pth-criteria-bar {
	display: grid;
	grid-template-columns: 120px 1fr 34px;
	align-items: center;
	gap: 10px;
	font-size: 13px;
}
.pth-criteria-bar-label { color: var(--pth-ink-soft); font-weight: 500; }
.pth-criteria-bar-track {
	height: 8px;
	background: var(--pth-line);
	border-radius: 999px;
	overflow: hidden;
}
.pth-criteria-bar-fill {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, var(--pth-accent), var(--pth-accent-ink));
	border-radius: 999px;
}
.pth-criteria-bar-num { font-weight: 700; text-align: right; color: var(--pth-ink); }

/* Criteria pickers in the form */
.pth-criteria-pickers {
	display: grid;
	gap: 10px;
	background: #fff;
	border: 1px solid var(--pth-line);
	border-radius: var(--pth-radius-sm);
	padding: 16px;
}
.pth-criteria-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}
.pth-criteria-row .pth-criteria-label { font-weight: 600; font-size: 14px; }
.pth-criteria-row .pth-star-picker { font-size: 26px; }

@media (max-width: 600px) {
	.pth-criteria-bar { grid-template-columns: 90px 1fr 30px; }
	.pth-criteria-row { justify-content: flex-start; }
}

/* Inline submission form inside the directory (show_form="yes") */
.pth-inline-submit { margin-top: 40px; }
.pth-inline-submit .pth-submit-wrap { padding-left: 0; padding-right: 0; }
