.nb2-content {
	--nb2-border: #d9dee5;
	--nb2-muted: #5d6672;
	--nb2-accent: #18cbd1;
	--nb2-accent-dark: #087d83;
	--nb2-surface: #fff;
	--nb2-soft-surface: #f4f8f9;
	--nb2-good: #18794e;
	--nb2-bad: #a43c42;
	color: inherit;
}

.nb2-review-details,
.nb2-list-item {
	border: 1px solid var(--nb2-border);
	border-radius: .75rem;
	margin: 1.25rem 0;
	padding: 1rem;
}

.nb2-review-details {
	margin: 2.5rem 0 1.5rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	border-color: #cbd8df;
	border-radius: 1rem;
	background: linear-gradient(145deg, #fff 0%, #f5fafb 100%);
	box-shadow: 0 12px 34px rgb(25 48 60 / 9%);
}

.nb2-review-details__header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem 1rem;
	margin-bottom: 1.25rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--nb2-border);
}

.nb2-review-details__header h2 {
	flex: 1 1 100%;
	margin: 0 0 .25rem;
	font-size: 1.25rem;
}

.nb2-review-score,
.nb2-review-platform {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	margin: 0;
	font-size: .95rem;
}

.nb2-review-score {
	padding: .55rem .85rem;
	border-radius: .7rem;
	background: var(--nb2-accent-dark);
	color: #fff;
}

.nb2-review-score span,
.nb2-review-platform span { opacity: .82; }
.nb2-review-score strong { font-size: 1.25rem; line-height: 1; }

.nb2-review-platform {
	padding: .55rem .85rem;
	border: 1px solid var(--nb2-border);
	border-radius: .7rem;
	background: #fff;
}

.nb2-review-summary {
	margin: 0 0 1.25rem;
	padding: 1rem 1.1rem;
	border-left: 4px solid var(--nb2-accent-dark);
	border-radius: 0 .65rem .65rem 0;
	background: #eaf5f6;
}

.nb2-review-summary h3 { margin: 0 0 .45rem; font-size: 1rem; }
.nb2-review-summary p { margin: 0; line-height: 1.7; }

.nb2-review-points-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.nb2-review-points {
	min-width: 0;
	padding: 1rem 1.1rem;
	border: 1px solid var(--nb2-border);
	border-radius: .75rem;
	background: #fff;
}

.nb2-review-points h3 { margin: 0 0 .65rem; font-size: 1.05rem; }
.nb2-review-points--good { border-top: 3px solid var(--nb2-good); }
.nb2-review-points--good h3 { color: var(--nb2-good); }
.nb2-review-points--bad { border-top: 3px solid var(--nb2-bad); }
.nb2-review-points--bad h3 { color: var(--nb2-bad); }
.nb2-review-points ul { margin: 0; padding-inline-start: 1.2rem; }
.nb2-review-points li { padding-inline-start: .15rem; line-height: 1.55; }
.nb2-review-points li + li { margin-top: .35rem; }

.nb2-list-item__image { display: block; max-width: min(100%, 32rem); height: auto; margin: .75rem 0; }
.nb2-list-item__votes,
.nb2-list-item__replies span { color: var(--nb2-muted); font-size: .9em; }
.nb2-list-item__replies { border-top: 1px solid var(--nb2-border); margin-top: 1rem; padding-top: .75rem; }

/* Self-contained controls for the name generator, independent of the active theme. */
.nb2-name-generator {
	box-sizing: border-box;
	clear: both;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: end;
	gap: 1rem;
	max-width: 54rem;
	margin: 2rem auto;
	padding: clamp(1.1rem, 3vw, 2rem);
	border: 1px solid var(--nb2-border);
	border-radius: 1rem;
	background: var(--nb2-surface);
	box-shadow: 0 8px 26px rgb(16 35 45 / 9%);
}

.nb2-name-generator *,
.nb2-name-generator *::before,
.nb2-name-generator *::after { box-sizing: border-box; }

.nb2-name-generator > label {
	display: grid;
	gap: .45rem;
	min-width: 0;
	margin: 0;
	font-size: .95rem;
	font-weight: 650;
}

.nb2-content .nb2-name-generator select,
.nb2-content .nb2-name-generator input:not([type="hidden"]),
.nb2-content .nb2-name-generator textarea,
.nb2-content .nb2-name-generator__fields select,
.nb2-content .nb2-name-generator__fields input:not([type="hidden"]),
.nb2-content .nb2-name-generator__fields textarea {
	width: 100%;
	min-height: 2.9rem;
	padding: .7rem .8rem;
	border: 1px solid #aeb8c2;
	border-radius: .5rem;
	background: var(--nb2-surface);
	color: inherit;
	font: inherit;
}

.nb2-content .nb2-name-generator select:focus,
.nb2-content .nb2-name-generator input:focus,
.nb2-content .nb2-name-generator textarea:focus {
	border-color: var(--nb2-accent-dark);
	outline-color: var(--nb2-accent);
	outline-style: solid;
	outline-width: 3px;
	outline-offset: 1px;
}

.nb2-content .nb2-name-generator .nb2-name-generator__button {
	grid-column: 1 / -1;
	justify-self: start;
	min-height: 2.9rem;
	padding: .7rem 1.25rem;
	border: 0;
	border-radius: .55rem;
	background: var(--nb2-accent-dark);
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-weight: 700;
	transition: background-color .15s ease, transform .15s ease;
}

.nb2-content .nb2-name-generator .nb2-name-generator__button:hover { background: #055e63; color: #fff; transform: translateY(-1px); }
.nb2-content .nb2-name-generator .nb2-name-generator__button:focus-visible { outline: 3px solid var(--nb2-accent); outline-offset: 3px; }
.nb2-content .nb2-name-generator .nb2-name-generator__button:disabled { cursor: wait; opacity: .7; transform: none; }

.nb2-name-generator__fields {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .85rem;
	width: 100%;
}

.nb2-name-generator__fields label { display: grid; gap: .4rem; margin: 0; font-weight: 600; }
.nb2-name-generator__fields textarea { min-height: 6rem; }

.nb2-name-generator__result {
	grid-column: 1 / -1;
	min-width: 0;
	min-height: 3.25rem;
	margin: 0;
	padding: 1rem 1.1rem;
	border: 1px solid #c8e4e5;
	border-radius: .7rem;
	background: var(--nb2-soft-surface);
	line-height: 1.55;
}

.nb2-name-generator__result:empty { display: none; }
.nb2-name-generator__result.is-loading { color: var(--nb2-muted); }
.nb2-name-generator__result.is-error { border-color: #d79a9a; background: #fff6f6; color: #8d2424; }
.nb2-name-generator__result h2 { margin: 0 0 .5rem; font-size: clamp(1.35rem, 3vw, 1.8rem); line-height: 1.2; }
.nb2-name-generator__result strong { display: block; margin-top: .75rem; }
.nb2-name-generator__result ul { margin: .4rem 0 0; padding-inline-start: 1.25rem; }
.nb2-name-generator__result li + li { margin-top: .25rem; }
.nb2-name-generator__history { grid-column: 1 / -1; color: var(--nb2-muted); font-size: .9em; }

@media (max-width: 600px) {
	.nb2-review-points-grid { grid-template-columns: minmax(0, 1fr); }
	.nb2-review-details__header { align-items: flex-start; }
	.nb2-review-score,
	.nb2-review-platform { flex-wrap: wrap; }
	.nb2-name-generator { grid-template-columns: minmax(0, 1fr); gap: .85rem; }
	.nb2-name-generator__button,
	.nb2-name-generator__fields,
	.nb2-name-generator__result,
	.nb2-name-generator__history { grid-column: 1; }
	.nb2-name-generator__button { width: 100%; }
	.nb2-name-generator__fields { grid-template-columns: minmax(0, 1fr); }
}
