@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap");

/* ==========================================================================
   Design tokens
   ========================================================================== */

:root {
	--bg-app: #16171a;
	--bg-app-gradient: radial-gradient(1100px 600px at 15% -10%, rgba(104, 67, 206, 0.14), transparent 60%),
		radial-gradient(900px 500px at 100% 0%, rgba(104, 67, 206, 0.08), transparent 55%),
		#16171a;
	--bg-panel: #1e1f23;
	--bg-panel-raised: #26272c;
	--bg-inset: #1a1b1e;
	--bg-hover: rgba(255, 255, 255, 0.035);
	--bg-hover-strong: rgba(104, 67, 206, 0.09);

	--border-subtle: rgba(255, 255, 255, 0.06);
	--border-strong: rgba(255, 255, 255, 0.1);

	--text-primary: #f2f3f5;
	--text-secondary: #b7b9c2;
	--text-muted: #83858e;
	--text-faint: #5b5d66;

	--accent: #6843ce;
	--accent-hover: #7d5ce0;
	--accent-soft: rgba(104, 67, 206, 0.14);
	--accent-soft-border: rgba(104, 67, 206, 0.3);

	--success: #23a55a;
	--success-soft: rgba(35, 165, 90, 0.16);
	--danger: #ed4245;
	--danger-soft: rgba(237, 66, 69, 0.16);
	--warning: #e8912d;
	--warning-soft: rgba(232, 145, 45, 0.16);

	--radius-sm: 6px;
	--radius-md: 10px;
	--radius-lg: 16px;
	--radius-pill: 999px;

	--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.25);
	--shadow-md: 0 8px 24px rgba(0, 0, 0, 0.28);
	--shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.4);

	--font-body: "Poppins", sans-serif;
	--font-display: "Poppins", sans-serif;
	--font-mono: "Poppins", sans-serif;

	color-scheme: dark;
}

/* ==========================================================================
   General
   ========================================================================== */

* {
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	box-sizing: border-box;
}

@font-face {
	font-family: Whitney;
	font-style: light;
	font-weight: 300;
	src: url('../fonts/whitney-light.woff') format('woff');
}

@font-face {
	font-family: Whitney;
	font-style: normal;
	font-weight: 500;
	src: url('../fonts/whitney-normal.woff') format('woff');
}

@font-face {
	font-family: Whitney;
	font-style: medium;
	font-weight: 600;
	src: url('../fonts/whitney.woff') format('woff');
}

@font-face {
	font-family: WhitneyMedium;
	font-style: medium;
	font-weight: 600;
	src: url('../fonts/whitney-medium.woff') format('woff');
}

@font-face {
	font-family: Whitney;
	font-style: bold;
	font-weight: 700;
	src: url('../fonts/whitney-bold.woff') format('woff');
}

body {
	background-color: var(--bg-app);
	background-image: radial-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
		radial-gradient(1100px 600px at 15% -10%, rgba(104, 67, 206, 0.14), transparent 60%),
		radial-gradient(900px 500px at 100% 0%, rgba(104, 67, 206, 0.08), transparent 55%);
	background-size: 26px 26px, auto, auto;
	background-attachment: fixed;
	color: var(--text-primary);
}

a {
	text-decoration: none;
	color: #a78bfa;
	transition: color .15s ease;
}

a:hover {
	color: #c4b5fd;
}

img {
	object-fit: contain;
}

::selection {
	background: var(--accent-soft-border);
}

/* scrollbar */
::-webkit-scrollbar {
	width: 10px;
	height: 10px;
}

::-webkit-scrollbar-track {
	background: transparent;
}

::-webkit-scrollbar-thumb {
	background: #3a3b41;
	border-radius: var(--radius-pill);
	border: 2px solid transparent;
	background-clip: content-box;
}

::-webkit-scrollbar-thumb:hover {
	background: #4a4b53;
	background-clip: content-box;
}

.pre {
	font-family: var(--font-mono);
	white-space: pre-wrap;
	background-color: var(--bg-inset);
}

/* === Badges / tags === */

.mod-tag,
.red-tag,
.system-tag,
.internal-tag {
	display: inline-flex;
	align-items: center;
	font-family: var(--font-body);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .04em;
	color: rgba(255, 255, 255, 0.92) !important;
	margin-left: 7px;
	padding: 2px 7px;
	border-radius: var(--radius-pill);
	text-transform: uppercase;
	vertical-align: middle;
	line-height: 18px;
	flex-shrink: 0;
}

.mod-tag {
	background: var(--success-soft);
	color: #4fd889 !important;
	border: 1px solid rgba(35, 165, 90, 0.35);
}

.red-tag {
	background: var(--danger-soft);
	color: #ff6b6e !important;
	border: 1px solid rgba(237, 66, 69, 0.35);
}

.system-tag {
	background: var(--accent-soft);
	color: #b8a4f7 !important;
	border: 1px solid var(--accent-soft-border);
}

.internal-tag {
	background: var(--warning-soft);
	color: #f2ac5c !important;
	border: 1px solid rgba(232, 145, 45, 0.35);
}

.log-button {
	display: inline-flex;
	align-items: center;
	background: var(--accent-soft);
	border: 1px solid var(--accent-soft-border);
	font-family: var(--font-mono);
	font-size: 12px;
	font-weight: 600;
	color: #b8a4f7 !important;
	padding: 3px 9px;
	border-radius: var(--radius-sm);
	letter-spacing: .01em;
	line-height: 22px;
	flex-shrink: 0;
	transition: background .15s ease, border-color .15s ease, transform .1s ease;
}

.log-button:hover {
	background: var(--accent);
	border-color: var(--accent);
	color: #fff !important;
	transform: translateY(-1px);
}

.button {
	align-content: right;
	background-color: var(--accent);
	color: #fff;
	border: transparent;
	border-radius: var(--radius-sm);
	outline: transparent;
}

.pre--multiline {
	font-family: var(--font-mono);
	font-size: 13.5px;
	margin-top: 6px;
	padding: 12px 14px;
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-md);
	background-color: var(--bg-inset) !important;
	color: #c3c6cf;
}

.pre--inline {
	font-family: var(--font-mono);
	font-size: 13px;
	line-height: 17px;
	padding: 2px 5px;
	border-radius: var(--radius-sm);
	background: rgba(255, 255, 255, 0.06);
}

.emoji {
	width: 24px;
	height: 24px;
	margin: 0 1px;
	vertical-align: middle;
}

.emoji--small {
	width: 16px;
	height: 16px;
}

.emoji--large {
	width: 32px;
	height: 32px;
}

.mention {
	font-weight: 600;
	background-color: rgba(104, 67, 206, 0.14);
	color: #a78bfa;
	border-radius: 4px;
	padding: 0 2px;
}

/* ==========================================================================
   Layout shell
   ========================================================================== */

.entry {
	color: var(--text-secondary);
	font-family: var(--font-body);
	font-size: 15.5px;
	max-width: 1000px;
	margin: 0 auto;
	padding: 28px 20px 60px;
}

@media (min-width: 800px) {
	.entry {
		padding-left: 20px;
		padding-right: 20px;
	}
}

@media (max-width: 800px) {
	.entry {
		font-size: 15.5px;
		padding: 16px 12px 40px;
	}

	.pre--inline {
		font-size: 13px;
	}
}

/* === INFO header card === */

.info {
	position: relative;
	display: flex;
	align-items: center;
	max-width: 100%;
	margin: 0 0 18px 0;
	padding: 20px;
	background: linear-gradient(180deg, var(--bg-panel-raised), var(--bg-panel));
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-md);
	overflow: hidden;
}

.info::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(420px 160px at 0% 0%, var(--accent-soft), transparent 65%);
	pointer-events: none;
}

.info__guild-icon-container {
	flex: 0;
}

.info__guild-icon {
	max-width: 84px;
	max-height: 84px;
	border-radius: 50%;
	border: 2px solid var(--border-strong);
	box-shadow: var(--shadow-sm);
}

.info__metadata {
	flex: 1;
	margin-left: 18px;
	min-width: 0;
}

.info__guild-name {
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 21px;
	letter-spacing: -0.01em;
	color: var(--text-primary) !important;
}

.info__channel-name {
	font-size: 1.1em;
}

.info__channel-topic {
	margin-top: 4px;
	font-size: 14.5px;
	color: var(--text-secondary) !important;
}

.stat-chip {
	display: inline-flex;
	align-items: center;
	margin-right: 6px;
	padding: 2px 9px;
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-pill);
	color: var(--text-secondary);
	font-size: 13px;
}

.stat-chip b {
	color: var(--text-primary);
	font-weight: 700;
	margin: 0 2px;
}

.info__sort-note {
	color: var(--text-faint);
	font-size: 13px;
}

.info__channel-message-count {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	margin-top: 10px;
	font-size: 13.5px;
	color: var(--text-muted);
}

.info__channel-message-count a {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	color: var(--text-secondary) !important;
}

.info__channel-message-count a:hover {
	color: #c4b5fd !important;
}

.info__channel-message-count a i.material-icons.tiny {
	font-size: 15px;
	color: #a78bfa;
}

.info__channel-date-range {
	margin-top: 2px;
}

.info__channel-message-count {
	align-items: center;
}

/* internal toggle row */
.internal-toggle-row {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-left: auto;
}

.internal-label {
	margin-right: 5px;
	font-size: 13px;
	font-weight: 500;
	color: var(--text-muted);
	vertical-align: middle;
}

/* ==========================================================================
   CHATLOG
   ========================================================================== */

.chatlog {
	position: relative;
	max-width: 100%;
	background: var(--bg-panel);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-md);
	overflow: hidden;
	padding: 6px 0;
}

.chatlog::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--accent), transparent);
	opacity: .55;
}

.chatlog__message-group {
	display: flex;
	position: relative;
	margin: 0;
	padding: 12px 20px;
	border-bottom: 1px solid var(--border-subtle);
	border-radius: 0;
	transition: background-color .12s ease;
}

.chatlog__message-group:last-child {
	border-bottom: none;
}

.chatlog__message-group.internal {
	display: none;
	background: rgba(232, 145, 45, 0.045);
}

.chatlog__message-group.close {
	border-bottom: none;
	background: transparent;
}

.chatlog__message-group:hover,
.chatlog__message-group.perma_hover {
	background-color: var(--bg-hover);
}

.chatlog__message-group.perma_hover {
	background-color: var(--bg-hover-strong);
	box-shadow: inset 3px 0 0 var(--accent);
}

.chatlog__author-avatar-container {
	flex: 0;
	width: 40px;
	height: 40px;
}

.chatlog__author-avatar {
	border-radius: 50%;
	height: 40px;
	width: 40px;
	box-shadow: 0 0 0 2px var(--bg-panel);
	transition: box-shadow .15s ease;
}

.chatlog__message-group:hover .chatlog__author-avatar,
.chatlog__message-group.perma_hover .chatlog__author-avatar {
	box-shadow: 0 0 0 2px var(--accent-soft-border);
}

.chatlog__messages {
	flex: 1;
	min-width: 50%;
	margin-left: 16px;
}

.chatlog__author-name {
	font-weight: 600;
	font-size: 15.5px;
	color: var(--text-primary);
}

.chatlog__timestamp {
	margin-left: 7px;
	font-size: 12px;
	color: var(--text-faint);
}

.chatlog__content {
	padding-top: 4px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--text-secondary);
	word-wrap: break-word;
}

.chatlog__edited-timestamp {
	margin-left: 5px;
	font-size: 11px;
	color: var(--text-faint);
}

.chatlog__attachment {
	margin: 8px 0;
}

.chatlog__attachment-thumbnail {
	max-width: 50%;
	max-height: 500px;
	border-radius: var(--radius-md);
	border: 1px solid var(--border-subtle);
}

.chatlog__embed {
	display: flex;
	max-width: 520px;
	margin-top: 6px;
	border-radius: var(--radius-md);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
}

.chatlog__embed-color-pill {
	flex-shrink: 0;
	width: 4px;
}

.chatlog__embed-content-container {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 10px 14px;
	background-color: rgba(255, 255, 255, 0.03);
	border: 1px solid var(--border-subtle);
	border-left: none;
}

.chatlog__embed-content {
	width: 100%;
	display: flex;
}

.chatlog__embed-text {
	flex: 1;
}

.chatlog__embed-author {
	display: flex;
	align-items: center;
	margin-bottom: 6px;
}

.chatlog__embed-author-icon {
	width: 20px;
	height: 20px;
	margin-right: 9px;
	border-radius: 50%;
}

.chatlog__embed-author-name {
	font-size: .875em;
	font-weight: 600;
	color: var(--text-primary);
}

.chatlog__embed-author-name-link {
	color: var(--text-primary);
}

.chatlog__embed-title {
	margin-bottom: 5px;
	font-size: .9em;
	font-weight: 700;
	color: var(--text-primary);
}

.chatlog__embed-description {
	font-weight: 400;
	font-size: 13.5px;
	color: var(--text-secondary);
}

.chatlog__embed-fields {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
}

.chatlog__embed-field {
	flex: 0;
	min-width: 100%;
	max-width: 506px;
	padding-top: 10px;
}

.chatlog__embed-field--inline {
	flex: 1;
	flex-basis: auto;
	min-width: 150px;
}

.chatlog__embed-field-name {
	margin-bottom: 4px;
	font-size: .875em;
	font-weight: 700;
	color: var(--text-primary);
}

.chatlog__embed-field-value {
	font-size: .875em;
	font-weight: 400;
	color: var(--text-secondary);
}

.chatlog__embed-thumbnail {
	flex: 0;
	margin-left: 20px;
	max-width: 80px;
	max-height: 80px;
	border-radius: var(--radius-sm);
}

.chatlog__embed-image-container {
	margin-top: 10px;
}

.chatlog__embed-image {
	max-width: 500px;
	max-height: 400px;
	border-radius: var(--radius-sm);
}

.chatlog__embed-footer {
	margin-top: 10px;
	color: var(--text-muted);
}

.chatlog__embed-footer-icon {
	margin-right: 4px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	vertical-align: middle;
}

.chatlog__embed-footer-text {
	font-weight: 500;
	font-size: .75em;
}

.chatlog__reactions {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 6px;
}

.thread-id {
	text-transform: uppercase;
}

.chatlog__reaction {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 3px 8px 3px 6px;
	border-radius: var(--radius-pill);
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid var(--border-subtle);
}

.chatlog__reaction-emoji {
	margin-left: 3px;
	vertical-align: middle;
}

.chatlog__reaction-count {
	font-size: .8em;
	vertical-align: middle;
	color: var(--text-muted);
	margin-left: 4px;
}

a {
	color: #a78bfa;
}

.mention {
	background-color: rgba(104, 67, 206, 0.14);
	color: #a78bfa;
}

/* ==========================================================================
   Tooltip
   ========================================================================== */

.tooltip {
	position: relative;
	display: inline-block;
}

.tooltip .tooltiptext {
	display: none;
	padding: 4px 9px;
	background-color: #0d0e10;
	border: 1px solid var(--border-strong);
	color: var(--text-primary);
	font-size: 12px;
	text-align: center;
	border-radius: var(--radius-sm);
	position: relative;
	box-shadow: var(--shadow-sm);
}

.tooltip:hover .tooltiptext {
	display: inline-block;
}

/* ==========================================================================
   Toggle switch
   ========================================================================== */

.switch {
	position: relative;
	display: inline-block;
	width: 38px;
	height: 21px;
}

.switch input {
	opacity: 0;
	width: 0;
	height: 0;
}

.lever {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #45464e;
	transition: .2s ease;
}

.lever:before {
	position: absolute;
	content: "";
	height: 15px;
	width: 15px;
	left: 3px;
	bottom: 3px;
	background-color: white;
	box-shadow: var(--shadow-sm);
	transition: .2s ease;
}

input:checked+.lever {
	background-color: var(--accent);
}

input:focus+.lever {
	box-shadow: 0 0 0 3px var(--accent-soft);
}

input:checked+.lever:before {
	transform: translateX(17px);
}

.lever.round {
	border-radius: var(--radius-pill);
}

.lever.round:before {
	border-radius: 50%;
}

/* ==========================================================================
   Log list page — extra elements
   ========================================================================== */

.info__guild-name {
	color: var(--text-primary);
}

.info__channel-name {
	color: var(--text-secondary);
}

.info__channel-topic {
	color: var(--text-secondary);
}

/* thread meta row — chip-style summary instead of a key/value table */
.thread-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 6px;
}

.thread-meta .log-button {
	gap: 5px;
}

.thread-meta .log-button i.material-icons.tiny {
	color: inherit;
}

.thread-meta__item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--text-secondary);
	white-space: nowrap;
}

.thread-meta__item--muted {
	color: var(--text-faint);
}

.thread-meta__item i.material-icons.tiny {
	font-size: 15px;
	color: var(--text-faint);
}

.material-icons.tiny {
	font-size: 15px;
	vertical-align: middle;
}

/* empty state (no search results) */
.empty-state {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 48px 24px;
	gap: 4px;
}

.empty-state__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin-bottom: 14px;
	background: var(--bg-inset);
	border: 1px solid var(--border-subtle);
	border-radius: 50%;
	box-shadow: 0 0 0 3px var(--bg-inset);
}

.empty-state__icon i.material-icons {
	font-size: 30px;
	color: var(--text-faint);
}

.empty-state__title {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 16px;
	color: var(--text-primary);
}

.empty-state__subtitle {
	font-size: 13px;
	color: var(--text-faint);
}

.empty-state__text {
	margin: 10px 0 0;
	max-width: 320px;
	font-size: 14px;
	color: var(--text-muted);
}

/* compact bottom pagination — page nav only, no filters/search duplication */
.pagination--compact {
	justify-content: space-between;
}

.pagination__back-to-top {
	margin-left: auto;
}

/* ==========================================================================
   Pagination / search toolbar
   ========================================================================== */

.pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 14px 0;
	padding: 10px;
	background: linear-gradient(180deg, var(--bg-panel-raised), var(--bg-panel));
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
}

.pagination__group {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	gap: 4px;
	padding: 4px;
	background: var(--bg-inset);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-pill);
}

.pagination__nav {
	border-radius: var(--radius-md);
}

.pagination__search {
	flex: 1;
	min-width: 220px;
	background: transparent;
	border: none;
	padding: 0;
	gap: 8px;
}

/* Base button reset — !important guards against Materialize's
   `div.pagination a.btn` / `.btn` defaults (white bg, teal text,
   uppercase) leaking through and breaking the toggle look. */
.pagination .btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	height: 34px !important;
	padding: 0 14px !important;
	margin: 0 !important;
	background-color: transparent !important;
	color: var(--text-secondary) !important;
	border: 1px solid transparent !important;
	border-radius: var(--radius-pill) !important;
	box-shadow: none !important;
	text-transform: none !important;
	font-family: var(--font-body);
	font-weight: 600;
	font-size: 13.5px;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .1s ease, box-shadow .15s ease;
}

.pagination__nav .btn {
	border-radius: var(--radius-sm) !important;
	width: 34px;
	padding: 0 !important;
}

.pagination .btn:hover {
	background-color: var(--bg-hover-strong) !important;
	color: var(--text-primary) !important;
}

.pagination .btn:active {
	transform: scale(.96);
}

.pagination .btn i.material-icons {
	font-size: 19px;
	color: inherit;
}

.pagination__nav-btn.is-disabled {
	opacity: .3;
	pointer-events: none;
	cursor: default;
}

.pagination__nav-btn.is-disabled:hover {
	background-color: transparent !important;
}

.pagination__page-indicator {
	padding: 0 6px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--text-muted);
	white-space: nowrap;
}

/* Open/Closed segmented toggle — solid accent fill on the active
   side so the current filter reads unambiguously at a glance. */
.pagination__filters .btn {
	color: var(--text-muted) !important;
}

.pagination__filters .btn:hover {
	color: var(--text-primary) !important;
}

.pagination__filters .btn.is-active {
	background: linear-gradient(135deg, var(--accent-hover), var(--accent)) !important;
	color: #ffffff !important;
	box-shadow: 0 2px 10px rgba(104, 67, 206, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
}

.pagination__filters .btn.is-active:hover {
	background: linear-gradient(135deg, #8b6ce8, var(--accent-hover)) !important;
	color: #ffffff !important;
}

.pagination__filters .btn.is-active i.material-icons {
	color: #ffffff;
}

.pagination__search-btn {
	flex-shrink: 0;
	width: 34px;
	background: var(--accent) !important;
	color: #fff !important;
	border-radius: var(--radius-md) !important;
}

.pagination__search-btn:hover {
	background: var(--accent-hover) !important;
	color: #fff !important;
	box-shadow: 0 4px 14px rgba(104, 67, 206, 0.4) !important;
}

.pagination .searchbar {
	flex: 1;
	min-width: 120px;
	height: 36px;
	margin: 0;
	padding: 0 12px !important;
	background: transparent;
	border: none !important;
	border-radius: var(--radius-md);
	color: var(--text-primary);
	font-family: var(--font-body);
	font-size: 14px;
	box-shadow: none !important;
	transition: background-color .15s ease;
}

.pagination__search:focus-within {
	background: var(--bg-inset);
	border-radius: var(--radius-md);
}

.pagination .searchbar:focus {
	box-shadow: none !important;
}

.pagination .searchbar {
	user-select: text;
	-webkit-user-select: text;
	-webkit-touch-callout: default;
}

.pagination .searchbar::placeholder {
	color: var(--text-faint);
}

@media (max-width: 640px) {
	.pagination {
		flex-direction: column;
		align-items: stretch;
	}

	.pagination__group,
	.pagination__search {
		width: 100%;
		justify-content: space-between;
	}

	.pagination__nav {
		justify-content: center;
	}
}

/* ========================================================================== 
   2026 visual refinement — denser, calmer transcript experience
   ========================================================================== */
.entry { max-width:1120px; padding:30px 24px 72px; }
.info { margin-bottom:14px; padding:22px 24px; background:linear-gradient(145deg,rgba(40,40,46,.96),rgba(29,29,34,.96)); border-color:rgba(255,255,255,.08); box-shadow:0 16px 48px rgba(0,0,0,.22); }
.info::before { background:radial-gradient(500px 180px at 0 0,rgba(104,67,206,.12),transparent 70%); }
.info__guild-icon { width:64px; height:64px; border:1px solid rgba(255,255,255,.12); box-shadow:0 8px 22px rgba(0,0,0,.25); }
.info__metadata { margin-left:17px; }
.info__guild-name { font-size:20px; letter-spacing:-.025em; }
.stat-chip { padding:3px 9px; background:rgba(255,255,255,.035); }
.pagination { margin:12px 0; padding:8px; background:rgba(29,29,34,.9); border-color:rgba(255,255,255,.075); box-shadow:0 8px 28px rgba(0,0,0,.15); }
.pagination__group { background:rgba(12,12,15,.35); }
.chatlog { padding:0; background:rgba(29,29,34,.94); border-color:rgba(255,255,255,.075); box-shadow:0 18px 54px rgba(0,0,0,.22); }
.chatlog::before { height:1px; opacity:.35; }
.chatlog__message-group { padding:15px 22px; border-bottom-color:rgba(255,255,255,.055); }
.chatlog__message-group:hover { background:rgba(255,255,255,.025); }
.chatlog__message-group.perma_hover { background:rgba(104,67,206,.075); box-shadow:inset 2px 0 0 #805ee0; }
.chatlog__author-avatar-container,.chatlog__author-avatar { width:38px; height:38px; }
.chatlog__messages { margin-left:14px; }
.chatlog__author-name { font-size:14.5px; letter-spacing:-.01em; }
.chatlog__timestamp { font-size:11.5px; }
.chatlog__content { font-size:14.5px; line-height:1.58; }
.thread-meta { gap:7px 12px; margin-top:7px; }
.thread-meta__item { font-size:12.5px; }
.log-button { padding:2px 8px; font-size:11.5px; background:rgba(104,67,206,.1); }
.mod-tag,.red-tag,.system-tag,.internal-tag { font-size:9px; line-height:16px; padding:1px 6px; letter-spacing:.055em; }
.pre--multiline { background:#151519!important; border-color:rgba(255,255,255,.07); }
.chatlog__attachment-thumbnail { box-shadow:0 10px 30px rgba(0,0,0,.2); }
@media(max-width:800px){.entry{padding:18px 12px 48px}.info{padding:17px}.info__guild-icon{width:52px;height:52px}.chatlog__message-group{padding:13px 14px}.chatlog__messages{margin-left:11px}.info__sort-note{display:block;margin-top:5px}}

/* Thread list vertical positioning */
.entry.entry--list {
    margin-top: 38px;
}

@media (max-width: 800px) {
    .entry.entry--list {
        margin-top: 22px;
    }
}

/* Thread list polish — restrained, keeps the original layout */
.entry--list .info {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.085);
    background: linear-gradient(145deg, rgba(35,35,41,.96), rgba(27,27,32,.96));
}
.entry--list .info::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, transparent 4%, rgba(139,92,246,.55) 35%, rgba(139,92,246,.12) 72%, transparent 96%);
}
.entry--list .info__guild-icon-container {
    position: relative;
    flex: 0 0 auto;
}
.entry--list .info__guild-icon-container::before {
    content: "";
    position: absolute;
    inset: -3px;
    border-radius: 50%;
    background: linear-gradient(145deg, rgba(139,92,246,.8), rgba(104,67,206,.08) 55%, rgba(255,255,255,.14));
    opacity: .65;
}
.entry--list .info__guild-icon { position: relative; display:block; border:3px solid #222329; }
.entry--list .info__guild-name { font-weight: 700; }
.entry--list .info__channel-topic { margin-top: 5px; }
.entry--list .info__channel-message-count { margin-top: 10px; gap: 18px; }
.entry--list .info__channel-message-count a { color: var(--text-secondary); }
.entry--list .info__channel-message-count a:hover { color: #c4b5fd; }
.entry--list .info__channel-message-count i { color: #9b7cf0; margin-right: 5px; }
.entry--list .stat-chip { border:1px solid rgba(255,255,255,.055); }

.entry--list > .pagination {
    border: 1px solid rgba(255,255,255,.08);
    backdrop-filter: blur(10px);
}
.entry--list .pagination__search { transition: border-color .16s ease, box-shadow .16s ease, background .16s ease; }
.entry--list .pagination__search:focus-within {
    box-shadow: inset 0 0 0 1px rgba(126,87,224,.38), 0 0 0 3px rgba(104,67,206,.06);
}

.entry--list .chatlog {
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
}
.entry--list .chatlog__message-group {
    position: relative;
    transition: background .16s ease, transform .16s ease, box-shadow .16s ease;
}
.entry--list .chatlog__message-group::before {
    content:"";
    position:absolute;
    left:0; top:10px; bottom:10px;
    width:2px;
    border-radius:0 3px 3px 0;
    background:#7d5ce0;
    opacity:0;
    transform:scaleY(.55);
    transition:opacity .16s ease, transform .16s ease;
}
.entry--list .chatlog__message-group:hover::before,
.entry--list .chatlog__message-group.perma_hover::before { opacity:.8; transform:scaleY(1); }
.entry--list .chatlog__message-group:hover { background:rgba(255,255,255,.028); }
.entry--list .chatlog__author-avatar { border:1px solid rgba(255,255,255,.1); background:#141519; }
.entry--list .chatlog__author-name b { font-weight:650; }
.entry--list .thread-meta { align-items:center; }
.entry--list .thread-meta__item { color:#a2a4ad; }
.entry--list .thread-meta__item--muted { color:#696b74; }
.entry--list .thread-meta__item i { opacity:.75; }
.entry--list .log-button {
    border:1px solid rgba(126,87,224,.34);
    background:rgba(104,67,206,.12);
    color:#b9a5f5;
    border-radius:7px;
    transition:background .15s ease, border-color .15s ease, color .15s ease;
}
.entry--list .log-button:hover { background:rgba(104,67,206,.2); border-color:rgba(139,92,246,.55); color:#d2c5fb; }
.entry--list .mod-tag, .entry--list .red-tag { box-shadow: inset 0 0 0 1px rgba(255,255,255,.045); }

@media (max-width: 800px) {
    .entry--list .info { align-items:flex-start; }
    .entry--list .info__channel-message-count { gap:10px 16px; flex-wrap:wrap; }
    .entry--list .chatlog__message-group::before { top:8px; bottom:8px; }
}

/* Thread list avatars: keep the PFP, remove the purple glow/ring */
.entry--list .chatlog__author-avatar,
.entry--list .chatlog__message-group:hover .chatlog__author-avatar,
.entry--list .chatlog__message-group.perma_hover .chatlog__author-avatar {
    box-shadow: none !important;
    border: 1px solid rgba(255,255,255,.10) !important;
}
/* Logviewer 2.0 */
.nav-permission{margin-left:7px;padding:2px 6px;border-radius:999px;background:rgba(104,67,206,.18);color:#bcaaf2;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.filter-shell{margin:12px 0}.advanced-toggle{height:36px;background:transparent!important;color:var(--text-secondary)!important}.advanced-filters{display:none;margin-top:8px;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(24,24,29,.96);grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.advanced-filters.is-open{display:grid}.advanced-filters label{color:var(--text-muted);font-size:11px}.advanced-filters input,.advanced-filters select{display:block!important;width:100%;height:36px!important;margin:5px 0 0!important;padding:0 10px!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:8px!important;background:#151519!important;color:#eee!important;box-sizing:border-box!important}.filter-checks{grid-column:1/-1;display:flex;gap:18px;align-items:center}.advanced-actions{grid-column:1/-1;display:flex;gap:8px}.btn-ghost{background:rgba(255,255,255,.06)!important}.saved-tag{display:inline-flex;align-items:center;gap:2px;font-size:9px;color:#cabaf6;margin-left:4px}.thread-row{cursor:pointer}.transcript-layout{max-width:1400px!important;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px}.transcript-header{display:flex}.thread-head-actions{margin-left:auto;display:flex;gap:7px}.icon-action{width:36px;height:36px;border:1px solid rgba(255,255,255,.08);border-radius:9px;background:rgba(255,255,255,.04);color:#aaa;display:flex;align-items:center;justify-content:center;cursor:pointer}.icon-action.is-active,.icon-action:hover{color:#fff;background:rgba(104,67,206,.22);border-color:rgba(126,87,224,.45)}.transcript-tools{display:flex;gap:8px;justify-content:space-between;margin:10px 0}.transcript-search{flex:1;display:flex;align-items:center;gap:6px;padding:0 9px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#1b1b20}.transcript-search input{height:38px!important;margin:0!important;border:0!important;box-shadow:none!important;color:#eee}.transcript-search span{font-size:11px;color:#777;white-space:nowrap}.transcript-search button{border:0;background:none;color:#777}.message-filters{display:flex;gap:5px}.message-filter{border:1px solid rgba(255,255,255,.07);background:#1b1b20;color:#888;border-radius:9px;padding:0 10px}.message-filter.is-active{background:rgba(104,67,206,.2);color:#d7ccf7;border-color:rgba(126,87,224,.4)}.search-match{background:rgba(104,67,206,.05)!important}.search-current{background:rgba(104,67,206,.13)!important;box-shadow:inset 2px 0 #805ee0}.permalink-btn{opacity:0;margin-left:6px;border:0;background:none;color:#777;vertical-align:middle}.chatlog__content:hover .permalink-btn{opacity:1}.permalink-btn i{font-size:14px}.thread-sidebar{position:sticky;top:82px;align-self:start;display:flex;flex-direction:column;gap:10px}.sidebar-card{padding:15px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(29,29,34,.96)}.sidebar-card h3{font:600 14px 'Space Grotesk';margin:0 0 12px;color:#eee}.sidebar-card dl{display:grid;grid-template-columns:1fr auto;gap:8px;margin:0}.sidebar-card dt{color:#777;font-size:12px}.sidebar-card dd{margin:0;color:#bbb;font-size:12px;text-align:right}.copy-value{border:0;background:none;color:#b8a7ef;cursor:pointer}.participant-list{display:flex;flex-direction:column;gap:7px}.participant-list a,.compact-person{display:flex;gap:9px;align-items:center;color:#ddd}.participant-list img,.compact-person img{width:30px;height:30px;border-radius:50%}.participant-list small,.compact-person small{display:block;color:#666;font-size:10px}.sidebar-card textarea{width:100%;min-height:76px;resize:vertical;padding:9px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#151519;color:#ddd;box-sizing:border-box}.note-submit{width:100%;margin-top:7px}.private-note{padding:9px 0;border-top:1px solid rgba(255,255,255,.06)}.private-note p{margin:4px 0;color:#aaa;font-size:12px;white-space:pre-wrap}.private-note small{color:#555}.privacy-card p{color:#888;font-size:12px}.btn-danger-soft{background:rgba(201,70,70,.15)!important;color:#efaaaa!important}.attachment-card{max-width:560px;border:1px solid rgba(255,255,255,.07);border-radius:10px;overflow:hidden;background:#17171b}.attachment-preview img,.attachment-preview video{display:block;max-width:100%;max-height:390px}.attachment-preview audio{width:100%;margin:12px 0}.attachment-preview.failed{min-height:80px}.attachment-meta{padding:10px;display:flex;flex-direction:column;gap:3px}.attachment-meta span{font-size:11px;color:#666}.attachment-meta a,.attachment-meta button{font-size:11px;color:#b9a5f5;background:none;border:0;padding:0;margin-right:9px;cursor:pointer}.dashboard-page{max-width:1180px;margin:0 auto;padding:110px 24px 70px}.page-heading{margin-bottom:24px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#8d71df}.page-heading h1,.profile-hero h1{margin:4px 0;font:700 32px 'Space Grotesk';color:#f3f3f5}.page-heading p,.profile-hero p{color:#777;margin:0}.profile-hero{display:flex;align-items:center;gap:16px;margin-bottom:24px}.profile-hero>img{width:72px;height:72px;border-radius:50%}.metric-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:16px}.metric-grid article{padding:16px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#1c1c21}.metric-grid span{display:block;color:#777;font-size:11px}.metric-grid b{display:block;margin-top:5px;font:600 24px 'Space Grotesk';color:#eee}.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:12px}.panel-card{padding:18px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#1c1c21}.panel-card h2{margin:0 0 14px;font:600 17px 'Space Grotesk';color:#eee}.compact-thread{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-top:1px solid rgba(255,255,255,.05);color:#ddd}.compact-thread small{display:block;color:#666}.status-open{color:#a9d5b6}.status-closed{color:#d78d8d}.bar-chart{height:260px;display:flex;align-items:end;gap:5px;padding-top:20px}.bar-chart__item{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px}.bar-chart__bar{width:100%;max-width:24px;background:linear-gradient(180deg,#805ee0,#5f3fbd);border-radius:4px 4px 1px 1px}.bar-chart__item span{font-size:9px;color:#555;transform:rotate(-50deg);transform-origin:center;white-space:nowrap}.audit-row{display:grid;grid-template-columns:140px 1.3fr 1.3fr 1fr;gap:12px;padding:10px;border-top:1px solid rgba(255,255,255,.05);font-size:12px;color:#aaa}.audit-row small{display:block;color:#555}.audit-head{color:#666;text-transform:uppercase;font-size:10px;letter-spacing:.06em}.muted-copy{color:#777}@media(max-width:1000px){.transcript-layout{grid-template-columns:1fr}.thread-sidebar{position:static}.metric-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.advanced-filters{grid-template-columns:1fr 1fr}.transcript-tools{flex-direction:column}.message-filters{overflow-x:auto}.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.audit-row{grid-template-columns:1fr 1fr}.thread-head-actions{margin-left:0}.transcript-header{flex-wrap:wrap}.thread-sidebar{width:auto}.dashboard-page{padding:90px 12px 50px}}

/* Logviewer 3 workflow + command palette */
.command-palette{position:fixed;inset:0;z-index:9999;display:none}.command-palette.is-open{display:block}.command-backdrop{position:absolute;inset:0;background:rgba(5,6,8,.72);backdrop-filter:blur(8px)}.command-box{position:relative;width:min(680px,calc(100% - 28px));margin:11vh auto 0;background:#17181c;border:1px solid rgba(255,255,255,.10);border-radius:18px;box-shadow:0 28px 80px rgba(0,0,0,.55);overflow:hidden}.command-input{height:64px;display:flex;align-items:center;gap:12px;padding:0 18px;border-bottom:1px solid rgba(255,255,255,.08)}.command-input input{margin:0!important;border:0!important;box-shadow:none!important;color:#fff!important;font-size:17px!important;height:auto!important}.command-input kbd{font:11px/1 Inter,sans-serif;color:#8e9098;background:#22242a;border:1px solid #333640;border-radius:6px;padding:6px 8px}.command-results{max-height:460px;overflow:auto;padding:8px}.command-results a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;color:#e7e7eb}.command-results a:hover{background:rgba(104,67,206,.14)}.command-results a span{display:flex;flex-direction:column;min-width:0;flex:1}.command-results a small{color:#8d8f98;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-results a em{font-style:normal;font-size:11px;color:#9b9da5}.command-section{padding:8px 12px 5px;color:#777a84;text-transform:uppercase;font-size:10px;font-weight:700;letter-spacing:.12em}.command-empty{padding:22px;color:#8c8f98;text-align:center}.sidebar-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.workflow-save-state{font-size:11px;color:#a995ff}.workflow-card label{display:block;color:#9a9ca5;font-size:11px;margin:12px 0 5px}.workflow-card input,.workflow-card select{width:100%;box-sizing:border-box!important;background:#121317!important;border:1px solid #2a2c33!important;border-radius:9px!important;color:#eee!important;height:38px!important;margin:5px 0!important;padding:0 10px!important}.workflow-card select{display:block}.workflow-card .review-toggle{display:flex;align-items:center;gap:8px;margin:12px 0;color:#d6d7dc}.workflow-save{width:100%;display:flex;align-items:center;justify-content:center;gap:6px}.workflow-updated{display:block;color:#747781;margin-top:9px}.related-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.06);color:#eee}.related-list a span{display:flex;flex-direction:column}.related-list small{color:#7f828c}.related-list em{font-style:normal;font-size:10px}.sidebar-text-link{display:flex;align-items:center;gap:5px;margin-top:12px;color:#a995ff;font-size:12px}.sidebar-text-link i{font-size:15px}.thread-head-actions{flex-wrap:wrap}.thread-head-actions .icon-action{flex:0 0 auto}@media(max-width:700px){.command-box{margin-top:7vh}.thread-head-actions{max-width:180px;justify-content:flex-end}}
.audit-filters{display:grid;grid-template-columns:1fr 1fr 1fr auto auto;gap:10px;margin-bottom:16px}.audit-filters input{margin:0!important;box-sizing:border-box!important;background:#121317!important;border:1px solid #2a2c33!important;border-radius:9px!important;color:#eee!important;height:40px!important;padding:0 10px!important}@media(max-width:800px){.audit-filters{grid-template-columns:1fr}}
