:root {
	--sonocast-paper: linear-gradient(180deg, #fffdf8 0%, #fff 100%);
	--sonocast-ink: #18232f;
	--sonocast-muted: #5f6d7b;
	--sonocast-border: #d8dee6;
	--sonocast-accent: #b84b2f;
	--sonocast-accent-deep: #7d2d1a;
	--sonocast-accent-soft: #f7e6de;
	--sonocast-shadow: 0 1.25rem 2.5rem rgba(24, 35, 47, 0.08);
}

.sonocast-page-shell {
	display: grid;
	gap: 1.5rem;
}

.sonocast-stack {
	display: grid;
	gap: 1.5rem;
}

.sonocast-surface {
	background: var(--sonocast-paper);
	border: 1px solid var(--sonocast-border);
	border-radius: 1.25rem;
	box-shadow: var(--sonocast-shadow);
	color: var(--sonocast-ink);
}

.sonocast-surface-body {
	padding: 1.5rem;
}

.sonocast-post-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
}

.sonocast-post-toolbar-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
}

.sonocast-post-card {
	background: var(--sonocast-paper);
	border: 1px solid var(--sonocast-border);
	border-radius: 1.5rem;
	box-shadow: var(--sonocast-shadow);
	color: var(--sonocast-ink);
	overflow: hidden;
}

.sonocast-post-card-inner {
	padding: 1.5rem;
}

.sonocast-post-card-embed .sonocast-post-card-inner {
	padding: 1.25rem;
}

.sonocast-post-title {
	font-size: clamp(1.4rem, 2vw, 2rem);
	line-height: 1.2;
	margin-bottom: 0.5rem;
}

.sonocast-post-title a {
	color: inherit;
	text-decoration: none;
}

.sonocast-post-title a:hover,
.sonocast-post-title a:focus-visible {
	text-decoration: underline;
}

.sonocast-post-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--sonocast-muted);
	font-size: 0.95rem;
}

.sonocast-post-meta strong {
	color: var(--sonocast-ink);
	font-weight: 600;
}

.sonocast-post-meta-item {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.4rem 0.7rem;
	background: rgba(247, 230, 222, 0.55);
	border: 1px solid rgba(184, 75, 47, 0.12);
	border-radius: 999px;
}

.sonocast-post-description {
	margin-top: 1.25rem;
	font-size: 1rem;
	line-height: 1.75;
}

.sonocast-post-description > :last-child {
	margin-bottom: 0;
}

.sonocast-post-description p,
.sonocast-post-description ul,
.sonocast-post-description ol,
.sonocast-post-description blockquote {
	max-width: 72ch;
}

.sonocast-post-description code {
	font-size: 0.9em;
}

.sonocast-player-shell {
	margin-top: 1.5rem;
	padding: 1.25rem;
	border-radius: 1.25rem;
	background: linear-gradient(180deg, #fff 0%, #fbf6f2 100%);
	border: 1px solid var(--sonocast-border);
}

.sonocast-player-shell audio {
	width: 100%;
	margin-bottom: 1rem;
}

.sonocast-player-grid {
	display: grid;
	gap: 1rem;
}

.sonocast-player-button-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.sonocast-player-range-row {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.85rem;
	align-items: center;
}

.sonocast-player-time {
	font-variant-numeric: tabular-nums;
	font-size: 0.95rem;
	color: var(--sonocast-muted);
	white-space: nowrap;
}

.sonocast-player-volume-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.75rem;
	align-items: center;
}

.sonocast-audio-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
	margin-top: 1rem;
	color: var(--sonocast-muted);
}

.sonocast-audio-meta p {
	margin: 0;
}

.sonocast-inline-stat {
	padding: 0.4rem 0.75rem;
	border-radius: 999px;
	background: rgba(24, 35, 47, 0.05);
}

.sonocast-post-footer {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1rem;
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--sonocast-border);
}

.sonocast-post-actions,
.sonocast-post-social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
}

.sonocast-post-social .btn,
.sonocast-post-actions .btn {
	white-space: nowrap;
}

.sonocast-like-count {
	font-weight: 600;
}

.sonocast-share-panel {
	margin-top: 1rem;
	padding: 1rem;
	border-radius: 1rem;
	background: rgba(247, 230, 222, 0.4);
	border: 1px solid rgba(184, 75, 47, 0.16);
}

.sonocast-share-panel p {
	margin-bottom: 0.75rem;
}

.sonocast-embed-shell {
	min-height: 100vh;
	margin: 0;
	padding: 1rem;
	background:
		radial-gradient(circle at top left, rgba(184, 75, 47, 0.1), transparent 32rem),
		linear-gradient(180deg, #f7efe7 0%, #f4f6f8 100%);
	color: var(--sonocast-ink);
}

.sonocast-embed-container {
	max-width: 34rem;
	margin: 0 auto;
	display: grid;
	gap: 1rem;
}

.sonocast-embed-link {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-weight: 600;
	color: var(--sonocast-accent-deep);
	text-decoration: none;
}

.sonocast-embed-link:hover,
.sonocast-embed-link:focus-visible {
	text-decoration: underline;
}

.sonocast-collection-card {
	height: 100%;
	display: grid;
	gap: 1rem;
	padding: 1.4rem;
	background: var(--sonocast-paper);
	border: 1px solid var(--sonocast-border);
	border-radius: 1.25rem;
	box-shadow: var(--sonocast-shadow);
	color: var(--sonocast-ink);
}

.sonocast-collection-card h3 {
	margin: 0;
	font-size: 1.3rem;
	line-height: 1.3;
}

.sonocast-collection-card h3 a {
	color: inherit;
	text-decoration: none;
}

.sonocast-collection-card h3 a:hover,
.sonocast-collection-card h3 a:focus-visible {
	text-decoration: underline;
}

.sonocast-card-copy {
	color: var(--sonocast-muted);
	line-height: 1.7;
	margin: 0;
}

.sonocast-list-grid {
	display: grid;
	gap: 1rem;
}

.sonocast-search-card {
	display: grid;
	gap: 1rem;
}

.sonocast-search-form .form-group {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.75rem;
}

.sonocast-section-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.sonocast-section-heading h3,
.sonocast-section-heading h4 {
	margin: 0;
}

.sonocast-comment-panel {
	display: grid;
	gap: 1rem;
}

.sonocast-comment-controls {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: end;
}

.sonocast-comment-controls .form-label {
	margin-bottom: 0.35rem;
}

.sonocast-comment-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1rem;
}

.sonocast-comment-item {
	padding: 1rem;
	border: 1px solid var(--sonocast-border);
	border-radius: 1rem;
	background: #fff;
}

.sonocast-comment-header {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.75rem;
	align-items: baseline;
	margin-bottom: 0.65rem;
}

.sonocast-comment-author {
	margin: 0;
	font-size: 1rem;
}

.sonocast-comment-author a {
	color: inherit;
	text-decoration: none;
}

.sonocast-comment-author a:hover,
.sonocast-comment-author a:focus-visible {
	text-decoration: underline;
}

.sonocast-comment-time {
	color: var(--sonocast-muted);
	font-size: 0.9rem;
}

.sonocast-comment-body {
	margin-bottom: 0.9rem;
	white-space: pre-wrap;
	word-break: break-word;
}

.sonocast-comment-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
}

.sonocast-comment-upvotes {
	color: var(--sonocast-muted);
	font-size: 0.92rem;
}

.sonocast-comment-replies {
	margin-top: 1rem;
	padding-left: 1rem;
	border-left: 3px solid rgba(184, 75, 47, 0.14);
}

.sonocast-form-panel textarea {
	display: block;
	width: 100%;
	min-height: 8rem;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--sonocast-border);
	border-radius: 0.9rem;
	background: #fff;
}

.sonocast-reply-preview {
	padding: 0.85rem;
	border-radius: 0.9rem;
	background: rgba(24, 35, 47, 0.05);
	border: 1px solid rgba(24, 35, 47, 0.08);
}

.sonocast-reply-preview p,
.sonocast-reply-preview textarea {
	margin: 0;
}

.sonocast-reply-preview textarea {
	width: 100%;
	margin-top: 0.5rem;
	padding: 0.65rem;
	border: 1px solid var(--sonocast-border);
	border-radius: 0.75rem;
	background: #fff;
	resize: vertical;
}

.sonocast-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.75rem;
}

.sonocast-replay-card .card-header {
	background: linear-gradient(135deg, var(--sonocast-accent-deep), var(--sonocast-accent));
}

.sonocast-replay-chat {
	height: 20rem;
	overflow-y: auto;
	background: #fff;
}

.sonocast-replay-placeholder {
	padding-top: 4rem;
}

.sonocast-moderation-panel,
.sonocast-status-panel {
	padding: 1.5rem;
	border-radius: 1.25rem;
	border: 1px solid var(--sonocast-border);
	background: var(--sonocast-paper);
	box-shadow: var(--sonocast-shadow);
}

.sonocast-empty-state {
	padding: 2rem 1.25rem;
	text-align: center;
	border: 1px dashed var(--sonocast-border);
	border-radius: 1rem;
	color: var(--sonocast-muted);
	background: rgba(255, 255, 255, 0.7);
}

@media (max-width: 767.98px) {
	.sonocast-post-card-inner,
	.sonocast-surface-body,
	.sonocast-moderation-panel,
	.sonocast-status-panel {
		padding: 1.1rem;
	}

	.sonocast-player-range-row,
	.sonocast-player-volume-row,
	.sonocast-search-form .form-group {
		grid-template-columns: 1fr;
	}

	.sonocast-post-footer,
	.sonocast-comment-header,
	.sonocast-section-heading {
		flex-direction: column;
		align-items: stretch;
	}

	.sonocast-comment-controls {
		display: grid;
		grid-template-columns: 1fr;
	}
}
