/* NDLink Forum — front-end styles
   Brand: NDLink green + navy. Adjust the variables below to match
   your exact brand hex if different. Dark mode follows the visitor's
   OS/browser preference automatically. */

:root{
	--ndlf-green: #8DC63F;
	--ndlf-green-dark: #6FA82F;
	--ndlf-green-light: #E6F5D3;
	--ndlf-navy: #0B2A4A;
	--ndlf-navy-light: #123A63;
	--ndlf-gray-100: #F5F7F6;
	--ndlf-gray-200: #EBEFED;
	--ndlf-gray-300: #DDE3E0;
	--ndlf-gray-600: #5B6660;
	--ndlf-white: #FFFFFF;
	--ndlf-surface: var(--ndlf-white);
	--ndlf-radius: 14px;
	--ndlf-radius-sm: 8px;
	--ndlf-shadow: 0 2px 10px rgba(11,42,74,0.06);
	--ndlf-shadow-hover: 0 12px 28px rgba(11,42,74,0.14);
	--ndlf-ease: cubic-bezier(.22,.9,.32,1.2);
	--ndlf-text: #182A25;

	/* Secondary accents — same hues as the forum-icon color palette
	   (ndlf_get_forum_color() in PHP), reused here so decorative color
	   stays consistent instead of defaulting everything to green. */
	--ndlf-accent-blue: #1D63B4;
	--ndlf-accent-purple: #8E44AD;
	--ndlf-accent-amber: #B48B00;
}

@media (prefers-color-scheme: dark){
	:root{
		--ndlf-green: #9ED852;
		--ndlf-green-dark: #B9EC72;
		--ndlf-green-light: #1E3320;
		--ndlf-navy: #E9F1FA;
		--ndlf-navy-light: #C6DEF7;
		--ndlf-gray-100: #1A2027;
		--ndlf-gray-200: #222A33;
		--ndlf-gray-300: #333D48;
		--ndlf-gray-600: #97A3AD;
		--ndlf-white: #12161C;
		--ndlf-surface: #171D25;
		--ndlf-shadow: 0 2px 10px rgba(0,0,0,0.35);
		--ndlf-shadow-hover: 0 14px 32px rgba(0,0,0,0.5);
		--ndlf-text: #E7ECEF;
	}
}

/* Forced scheme from Forum Settings > Appearance. Higher specificity
   than :root (even inside the media query above) so it always wins,
   regardless of the visitor's actual OS/browser preference. */
body.ndlf-force-light{
	--ndlf-green: #8DC63F;
	--ndlf-green-dark: #6FA82F;
	--ndlf-green-light: #E6F5D3;
	--ndlf-navy: #0B2A4A;
	--ndlf-navy-light: #123A63;
	--ndlf-gray-100: #F5F7F6;
	--ndlf-gray-200: #EBEFED;
	--ndlf-gray-300: #DDE3E0;
	--ndlf-gray-600: #5B6660;
	--ndlf-white: #FFFFFF;
	--ndlf-surface: #FFFFFF;
	--ndlf-shadow: 0 2px 10px rgba(11,42,74,0.06);
	--ndlf-shadow-hover: 0 12px 28px rgba(11,42,74,0.14);
	--ndlf-text: #182A25;
}
body.ndlf-force-dark{
	--ndlf-green: #9ED852;
	--ndlf-green-dark: #B9EC72;
	--ndlf-green-light: #1E3320;
	--ndlf-navy: #E9F1FA;
	--ndlf-navy-light: #C6DEF7;
	--ndlf-gray-100: #1A2027;
	--ndlf-gray-200: #222A33;
	--ndlf-gray-300: #333D48;
	--ndlf-gray-600: #97A3AD;
	--ndlf-white: #12161C;
	--ndlf-surface: #171D25;
	--ndlf-shadow: 0 2px 10px rgba(0,0,0,0.35);
	--ndlf-shadow-hover: 0 14px 32px rgba(0,0,0,0.5);
	--ndlf-text: #E7ECEF;
}

.ndlf-empty{ color: var(--ndlf-gray-600) !important; font-style: italic; padding: 10px 2px; }

*[class^="ndlf-"], *[class*=" ndlf-"]{ box-sizing: border-box; }

/* Buttons */
.ndlf-btn{
	display:inline-flex; align-items:center; gap:8px; background: linear-gradient(135deg, var(--ndlf-green), var(--ndlf-green-dark));
	color:#0B2A11 !important; border:none; padding: 11px 22px; border-radius: 100px; font-weight:700; cursor:pointer; font-size:0.92rem;
	text-decoration:none; transition: transform .15s var(--ndlf-ease), box-shadow .15s ease, background .2s ease;
	box-shadow: 0 4px 14px rgba(111,168,47,0.28); position:relative;
}
.ndlf-btn svg{ fill:currentColor; stroke:currentColor; stroke-width:2; flex-shrink:0; }
.ndlf-btn:hover{ transform: translateY(-2px); box-shadow: 0 8px 22px rgba(111,168,47,0.38); color:#0B2A11 !important; }
.ndlf-btn:active{ transform: translateY(0); }
.ndlf-btn-solid{ background: linear-gradient(135deg, var(--ndlf-navy-light), var(--ndlf-navy)); color:#fff !important; box-shadow: 0 4px 14px rgba(11,42,74,0.3); }
.ndlf-btn-solid:hover{ color:#fff !important; box-shadow: 0 8px 22px rgba(11,42,74,0.4); }
.ndlf-btn-suggest{ white-space:nowrap; }

.ndlf-btn-spinner{
	display:none; width:14px; height:14px; border-radius:50%; border:2px solid rgba(255,255,255,0.4);
	border-top-color:#fff; animation: ndlf-spin .7s linear infinite;
}
.ndlf-btn.is-loading .ndlf-btn-label{ opacity:.5; }
.ndlf-btn.is-loading .ndlf-btn-spinner{ display:inline-block; }
@keyframes ndlf-spin{ to{ transform: rotate(360deg); } }

/* Forum list */
.ndlf-forum-list{ display:flex; flex-direction:column; gap: 14px; margin: 20px 0; }
.ndlf-forum-main h3{ margin: 0 0 6px; }
.ndlf-forum-main h3 a{ color: var(--ndlf-navy) !important; text-decoration:none; }
.ndlf-forum-main h3 a:hover{ color: var(--ndlf-green-dark) !important; }
.ndlf-forum-desc{ margin:0; color: var(--ndlf-gray-600) !important; font-size: 0.92rem; }
.ndlf-forum-stats{ display:flex; gap: 20px; font-size: 0.85rem; color: var(--ndlf-gray-600) !important; white-space:nowrap; }
.ndlf-forum-stats strong{ color: var(--ndlf-navy) !important; }

/* Topics list */
.ndlf-topics-wrap{ margin: 20px 0; }
.ndlf-topics-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom: 16px; flex-wrap:wrap; gap:10px; }
.ndlf-topics-head h2{ color: var(--ndlf-navy) !important; }
/* Dense Discourse-style topic table, shared by [ndlink_forum_topics]
   and [ndlink_recent_topics] via ndlf_dtable_head()/ndlf_dtable_row(). */
.ndlf-dtable-wrap{ overflow-x:auto; border-radius: var(--ndlf-radius); box-shadow: var(--ndlf-shadow); }
.ndlf-dtable-wrap .ndlf-dtable{ box-shadow:none; }
.ndlf-dtable{ width:100%; border-collapse: collapse; background: var(--ndlf-surface); border-radius: var(--ndlf-radius); overflow:hidden; box-shadow: var(--ndlf-shadow); font-size: 0.88rem; }
.ndlf-dtable th{
	text-align:left; font-size: 0.72rem; text-transform: uppercase; letter-spacing:0.06em;
	color: var(--ndlf-gray-600) !important; padding: 12px 16px; border-bottom: 2px solid var(--ndlf-gray-300); background: var(--ndlf-gray-100);
}
.ndlf-dtable th svg{ vertical-align:middle; margin-right:4px; opacity:.7; position:relative; top:-1px; }
.ndlf-dtable th.ndlf-dtable-num-col, .ndlf-dtable th.ndlf-dtable-users-col{ text-align:center; }
.ndlf-dtable th.ndlf-dtable-activity-col{ text-align:right; }
.ndlf-dtable td{ padding: 11px 16px; border-bottom: 1px solid var(--ndlf-gray-200); color: var(--ndlf-text) !important; vertical-align:middle; }
.ndlf-dtable tbody tr{ transition: background .15s ease; }
.ndlf-dtable tbody tr:nth-child(even){ background: var(--ndlf-gray-100); }
.ndlf-dtable tbody tr:hover{ background: var(--ndlf-green-light); }
.ndlf-dtable tbody tr:last-child td{ border-bottom:none; }
.ndlf-dtable-row-pinned, .ndlf-dtable-row-pinned:nth-child(even){ background: #FFF3D6; }
.ndlf-dtable-row-pinned:hover{ background: #FCE9B8; }

.ndlf-dtable-title-line{ display:flex; align-items:center; gap:7px; }
.ndlf-dtable-link{ color: var(--ndlf-navy) !important; font-weight:700; text-decoration:none; }
.ndlf-dtable-link:hover{ color: var(--ndlf-green-dark) !important; }
.ndlf-dtable-icon{ flex-shrink:0; }
.ndlf-dtable-pin{ color:#A6740B !important; }
.ndlf-dtable-lock{ color:#A31E29 !important; }
.ndlf-dtable-category{ display:flex; align-items:center; gap:6px; margin-top:4px; font-size:0.78rem; }
.ndlf-dtable-category a{ color: var(--ndlf-gray-600) !important; text-decoration:none; }
.ndlf-dtable-category a:hover{ color: var(--ndlf-green-dark) !important; }
.ndlf-dtable-dot{ width:8px; height:8px; border-radius:50%; flex-shrink:0; }

.ndlf-dtable-users{ text-align:center; }
.ndlf-avatar-stack{ display:inline-flex; align-items:center; }
.ndlf-avatar-stack .ndlf-init-avatar{ margin-right:0; border:2px solid var(--ndlf-surface); }
.ndlf-avatar-stack .ndlf-init-avatar + .ndlf-init-avatar{ margin-left:-10px; }

/* Colorful "initials" avatar — used everywhere instead of get_avatar() */
.ndlf-init-avatar{
	display:inline-flex; align-items:center; justify-content:center; border-radius:50%; flex-shrink:0;
	color:#fff !important; font-weight:700; letter-spacing:0.02em; font-family: inherit;
}

.ndlf-dtable-num{ text-align:center; font-weight:700; color: var(--ndlf-navy) !important; }
.ndlf-dtable-metric{ display:inline-flex; align-items:center; gap:5px; }
.ndlf-dtable-metric svg{ color: var(--ndlf-gray-600) !important; flex-shrink:0; }
.ndlf-dtable-activity{ text-align:right; color: var(--ndlf-gray-600) !important; font-size:0.82rem; white-space:nowrap; }

/* Modal (Suggest Topic dialog) */
.ndlf-modal{ position:fixed; inset:0; z-index:9999; display:none; align-items:flex-start; justify-content:center; padding: 6vh 16px; overflow-y:auto; }
.ndlf-modal.is-open{ display:flex; }
.ndlf-modal-backdrop{
	position:fixed; inset:0; background: rgba(6,16,28,0.55); backdrop-filter: blur(3px);
	animation: ndlf-fade-in .18s ease both;
}
.ndlf-modal-panel{
	position:relative; background: var(--ndlf-surface); color: var(--ndlf-text) !important; border-radius: var(--ndlf-radius);
	max-width: 520px; width:100%; padding: 30px 28px; box-shadow: 0 24px 60px rgba(0,0,0,0.35);
	animation: ndlf-modal-in .22s var(--ndlf-ease) both;
}
.ndlf-modal-title{ margin: 0 0 4px; color: var(--ndlf-navy) !important; font-size:1.3rem; }
.ndlf-modal-close{
	position:absolute; top:14px; right:14px; width:32px; height:32px; border-radius:50%; border:none;
	background: var(--ndlf-gray-100); color: var(--ndlf-gray-600) !important; font-size:1.3rem; line-height:1; cursor:pointer;
	transition: background .15s ease, color .15s ease, transform .15s ease;
}
.ndlf-modal-close:hover{ background: var(--ndlf-gray-200); color: var(--ndlf-navy) !important; transform: rotate(90deg); }
body.ndlf-modal-open{ overflow:hidden; }

@keyframes ndlf-fade-in{ from{ opacity:0; } to{ opacity:1; } }
@keyframes ndlf-modal-in{ from{ opacity:0; transform: translateY(18px) scale(.97); } to{ opacity:1; transform:none; } }

/* New topic / register / login / profile forms — shared field styling */
.ndlf-new-topic-form label, .ndlf-profile-card label{ display:block; font-weight:700; margin: 14px 0 6px; color: var(--ndlf-navy) !important; font-size:0.85rem; }
.ndlf-new-topic-form input[type=text], .ndlf-new-topic-form input[type=email], .ndlf-new-topic-form input[type=password], .ndlf-new-topic-form textarea,
.ndlf-profile-card input[type=text], .ndlf-profile-card input[type=email], .ndlf-profile-card input[type=password], .ndlf-profile-card textarea{
	width:100%; padding: 11px 14px; border: 1.5px solid var(--ndlf-gray-300); border-radius: var(--ndlf-radius-sm);
	font-family: inherit; font-size: 0.95rem; background: var(--ndlf-white); color: var(--ndlf-text) !important;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.ndlf-new-topic-form input:focus, .ndlf-new-topic-form textarea:focus,
.ndlf-profile-card input:focus, .ndlf-profile-card textarea:focus{
	outline:none; border-color: var(--ndlf-green); box-shadow: 0 0 0 4px rgba(141,198,63,0.2);
}
.ndlf-new-topic-form button{ margin-top: 18px; width:100%; justify-content:center; }
.ndlf-checkbox-label{ display:flex !important; align-items:center; gap:8px; font-weight:600 !important; }
.ndlf-checkbox-label input{ width:auto !important; }
.ndlf-form-note{ font-size: 0.8rem; color: var(--ndlf-gray-600) !important; margin-top: 12px; font-style: italic; }
.ndlf-login-note{ background: var(--ndlf-gray-100); padding: 14px 18px; border-radius: var(--ndlf-radius-sm); font-size: 0.9rem; color: var(--ndlf-text) !important; }
.ndlf-login-note a{ color: var(--ndlf-green-dark) !important; font-weight:700; }

/* Toasts */
.ndlf-toast-wrap{ position:fixed; top:20px; right:20px; z-index: 10050; display:flex; flex-direction:column; gap:10px; max-width: 340px; }
.ndlf-toast{
	background: var(--ndlf-navy); color:#fff !important; padding: 13px 18px; border-radius: 10px; font-size:0.88rem;
	box-shadow: 0 10px 26px rgba(0,0,0,0.25); opacity:0; transform: translateX(24px); transition: opacity .25s ease, transform .25s ease;
}
.ndlf-toast.is-visible{ opacity:1; transform:none; }
.ndlf-toast-success{ background: linear-gradient(135deg, var(--ndlf-green-dark), #4c8a1f); color:#fff !important; }
.ndlf-toast-error{ background: #A31E29; }

/* Single topic */
.ndlf-single-topic{ max-width: 820px; margin: 0 auto; display:flex; flex-direction:column; gap:22px; }
.ndlf-single-topic h1{ color: var(--ndlf-navy) !important; margin: 0 0 16px; }
.ndlf-breadcrumb a{ color: var(--ndlf-green-dark) !important; font-size: 0.88rem; text-decoration:none; }

.ndlf-topic-card, .ndlf-replies-card, .ndlf-reply-form-card{
	--ndlf-recent-accent: var(--ndlf-green);
	background: var(--ndlf-surface); border:1px solid var(--ndlf-gray-200); border-radius: var(--ndlf-radius);
	padding: 26px 28px; box-shadow: var(--ndlf-shadow);
}
.ndlf-topic-card{ border-left: 5px solid var(--ndlf-recent-accent); }

.ndlf-topic-badges{ margin: 0 0 12px; }
.ndlf-badge svg{ vertical-align:middle; margin-right:3px; position:relative; top:-1px; }

.ndlf-topic-header-meta{
	display:flex; flex-wrap:wrap; gap:18px; margin: 14px 0 22px; padding-bottom:18px; border-bottom:1px solid var(--ndlf-gray-200);
}
.ndlf-topic-meta-item{ display:inline-flex; align-items:center; gap:6px; color: var(--ndlf-gray-600) !important; font-size:0.85rem; }
.ndlf-topic-meta-item strong{ color: var(--ndlf-navy) !important; }
.ndlf-topic-meta-item .ndlf-avatar-sm{ border:2px solid var(--ndlf-green-light); }
.ndlf-topic-meta-item svg{ flex-shrink:0; color: var(--ndlf-green-dark) !important; }

.ndlf-topic-content{ line-height: 1.7; color: var(--ndlf-text) !important; }

.ndlf-replies-card h3{ display:flex; align-items:center; gap:8px; color: var(--ndlf-navy) !important; margin:0 0 20px; }

.ndlf-reply-list, .ndlf-reply-list ul.children{ list-style:none; margin:0; padding:0; }
.ndlf-reply-list ul.children{ margin-top: 12px; padding-left: 26px; border-left: 2px solid var(--ndlf-gray-200); }

.ndlf-reply-list li.comment{ margin-bottom: 14px; }
.ndlf-comment-body{
	display:flex; gap: 14px; align-items:flex-start; background: var(--ndlf-gray-100); border-radius: var(--ndlf-radius-sm);
	border-left: 4px solid transparent; padding: 16px 18px; transition: box-shadow .15s ease;
}
.ndlf-comment-body:hover{ box-shadow: var(--ndlf-shadow); }
.ndlf-avatar-img{ border:2px solid var(--ndlf-surface); box-shadow: 0 0 0 1px var(--ndlf-gray-200); }
.ndlf-comment-main{ flex:1; min-width:0; }
.ndlf-comment-meta{ font-size: 0.82rem; color: var(--ndlf-gray-600) !important; margin-bottom: 6px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.ndlf-comment-author{ color: var(--ndlf-navy) !important; }
.ndlf-comment-text p{ margin: 0 0 8px; color: var(--ndlf-text) !important; }
.ndlf-comment-text p:last-child{ margin-bottom:0; }
.ndlf-comment-actions{ display:flex; align-items:center; gap: 16px; margin-top: 10px; }

/* Like button */
.ndlf-like-btn{
	display:inline-flex; align-items:center; gap:6px; background:none; border:none; cursor:pointer;
	color: var(--ndlf-gray-600) !important; font-size: 0.85rem; font-weight:600; padding: 4px 6px; border-radius: 100px;
	transition: color .15s ease, transform .1s ease;
}
.ndlf-like-btn:hover{ color: #D6455B !important; }
.ndlf-like-icon{ fill:none; stroke: currentColor; stroke-width:1.8; transition: fill .15s ease, stroke .15s ease, transform .2s var(--ndlf-ease); }
.ndlf-like-btn.is-liked{ color:#D6455B !important; }
.ndlf-like-btn.is-liked .ndlf-like-icon{ fill:#D6455B; stroke:#D6455B; }
.ndlf-like-btn.is-loading{ opacity:.6; pointer-events:none; }
.ndlf-like-btn.ndlf-like-pop .ndlf-like-icon{ animation: ndlf-like-pop .35s var(--ndlf-ease); }
@keyframes ndlf-like-pop{ 0%{ transform:scale(1); } 40%{ transform:scale(1.45); } 100%{ transform:scale(1); } }

/* Reply-to-comment link */
.ndlf-reply-link a{
	display:inline-flex; align-items:center; gap:5px; color: var(--ndlf-gray-600) !important; font-size:0.85rem; font-weight:600;
	text-decoration:none; transition: color .15s ease;
}
.ndlf-reply-link a:hover{ color: var(--ndlf-green-dark) !important; }
.ndlf-reply-icon{ fill:currentColor; }
#cancel-comment-reply-link{ margin-left:10px; color:#A31E29 !important; font-size:0.85rem; text-decoration:none; font-weight:600; }

.ndlf-reply-form-card #respond{ margin:0; }
.ndlf-reply-form-card .comment-reply-title{ margin-top:0; color: var(--ndlf-navy) !important; font-size:1.1rem; }
.ndlf-reply-form-card textarea{
	width:100%; padding: 12px 14px; border: 1.5px solid var(--ndlf-gray-300); border-radius: var(--ndlf-radius-sm);
	font-family: inherit; background: var(--ndlf-white); color: var(--ndlf-text) !important; transition: border-color .15s ease, box-shadow .15s ease;
}
.ndlf-reply-form-card textarea:focus{ outline:none; border-color: var(--ndlf-green); box-shadow: 0 0 0 4px rgba(141,198,63,0.2); }
.ndlf-reply-form-card input[type=submit]{
	background: linear-gradient(135deg, var(--ndlf-navy-light), var(--ndlf-navy)); color:#fff !important; border:none; padding: 11px 24px; border-radius: 100px;
	font-weight:700; cursor:pointer; margin-top: 12px; transition: transform .15s var(--ndlf-ease), box-shadow .15s ease;
}
.ndlf-reply-form-card input[type=submit]:hover{ transform: translateY(-2px); box-shadow: 0 8px 20px rgba(11,42,74,0.3); }

/* Posts grid ([ndlink_posts]) */
.ndlf-posts-grid{
	display:grid; grid-template-columns: repeat(var(--ndlf-cols, 3), 1fr); gap: 22px; margin: 20px 0;
}
.ndlf-post-card{ background: var(--ndlf-surface); border: 1px solid var(--ndlf-gray-200); border-radius: var(--ndlf-radius); overflow:hidden; box-shadow: var(--ndlf-shadow); transition: transform .18s var(--ndlf-ease), box-shadow .18s ease; }
.ndlf-post-card:hover{ transform: translateY(-4px); box-shadow: var(--ndlf-shadow-hover); }
.ndlf-post-thumb img{ width:100%; height:auto; display:block; transition: transform .3s ease; }
.ndlf-post-card:hover .ndlf-post-thumb img{ transform: scale(1.04); }
.ndlf-post-thumb{ display:block; overflow:hidden; }
.ndlf-post-body{ padding: 18px 20px; }
.ndlf-post-meta{ font-size: 0.75rem; color: var(--ndlf-green-dark) !important; text-transform:uppercase; letter-spacing:0.05em; margin: 0 0 6px; }
.ndlf-post-body h3{ margin: 0 0 8px; font-size: 1.05rem; }
.ndlf-post-body h3 a{ color: var(--ndlf-navy) !important; text-decoration:none; }
.ndlf-post-body h3 a:hover{ color: var(--ndlf-green-dark) !important; }
.ndlf-post-body p{ color: var(--ndlf-gray-600) !important; font-size: 0.9rem; }
.ndlf-read-more{ color: var(--ndlf-green-dark) !important; font-weight:700; font-size: 0.88rem; text-decoration:none; }

/* Board index / categories */
.ndlf-category{ margin-bottom: 34px; }
.ndlf-category-title{
	color: var(--ndlf-navy) !important; font-size: 1.2rem; margin: 0 0 14px;
	border-bottom: 3px solid var(--ndlf-green); padding-bottom: 10px;
}
.ndlf-forum-list-standalone{ margin-bottom: 20px; }

.ndlf-forum-row{
	display:grid; grid-template-columns: 56px 1fr 200px 170px; gap: 18px; align-items:center;
	background: var(--ndlf-surface); border: 1px solid var(--ndlf-gray-200); border-left: 5px solid var(--ndlf-green);
	border-radius: var(--ndlf-radius); padding: 18px 22px; box-shadow: var(--ndlf-shadow);
	transition: transform .18s var(--ndlf-ease), box-shadow .18s ease, border-left-width .18s ease;
}
.ndlf-forum-row:hover{ transform: translateY(-3px); box-shadow: var(--ndlf-shadow-hover); border-left-width: 8px; }

.ndlf-forum-icon-img{ border-radius: 12px; width:56px; height:56px; object-fit:cover; display:block; }
.ndlf-forum-icon-letter{
	display:block; border-radius: 12px; text-align:center; color:#fff !important; font-family: var(--ndlf-font, inherit);
	font-weight:700; font-size: 1.4rem; box-shadow: inset 0 -3px 8px rgba(0,0,0,0.15);
}

.ndlf-forum-main h3{ margin: 0 0 6px; font-size: 1.05rem; }
.ndlf-forum-main h3 a{ color: var(--ndlf-navy) !important; text-decoration:none; }
.ndlf-forum-main h3 a:hover{ color: var(--ndlf-green-dark) !important; }
.ndlf-forum-desc{ margin:0; color: var(--ndlf-gray-600) !important; font-size: 0.88rem; }

.ndlf-forum-stats{ display:flex; flex-direction:column; gap: 6px; }
.ndlf-stat-pill{
	display:inline-flex; align-items:center; gap: 4px; font-size: 0.8rem; color: var(--ndlf-gray-600) !important;
	background: var(--ndlf-gray-100); border-radius: 100px; padding: 4px 12px; width: fit-content;
}
.ndlf-stat-pill strong{ color: var(--ndlf-navy) !important; }

.ndlf-forum-last{ display:flex; flex-direction:column; gap: 2px; font-size: 0.82rem; text-align:right; }
.ndlf-last-by{ color: var(--ndlf-navy) !important; font-weight:600; }
.ndlf-last-time{ color: var(--ndlf-gray-600) !important; }

.ndlf-subforums{ margin: 0 0 24px; display:flex; flex-direction:column; gap: 12px; }
.ndlf-breadcrumb{ font-size: 0.85rem; color: var(--ndlf-gray-600) !important; margin: 0 0 16px; }
.ndlf-breadcrumb a{ color: var(--ndlf-green-dark) !important; text-decoration:none; }

/* Notices (approval workflow) */
.ndlf-notice{ padding: 14px 18px; border-radius: var(--ndlf-radius-sm); margin-bottom: 18px; font-size: 0.9rem; animation: ndlf-fade-in .2s ease both; }
.ndlf-notice-pending{ background: #FFF3D6; color: #8A5F09 !important; border: 1px solid #F0DDA0; }
.ndlf-notice-error{ background: #F1D9DB; color: #A31E29 !important; border: 1px solid #E7BEC2; }
.ndlf-notice-mod{ background: #E8F2FF; color: #10467A !important; border: 1px solid #C6DEF7; }
.ndlf-notice-mod a{ font-weight:700; }

/* Badges */
.ndlf-badge{
	display:inline-block; font-size: 0.68rem; font-weight:700; text-transform:uppercase;
	letter-spacing:0.03em; padding: 3px 9px; border-radius: 100px; margin-right: 6px; vertical-align: middle;
}
.ndlf-badge-pin{ background: #FFF3D6; color: #A6740B !important; }
.ndlf-badge-closed{ background: #F1D9DB; color: #A31E29 !important; }

/* Avatars */
.ndlf-avatar-sm{ border-radius:50%; vertical-align:middle; margin-right: 6px; }

/* Pagination */
.ndlf-pagination{ display:flex; gap: 6px; margin-top: 18px; flex-wrap:wrap; }
.ndlf-pagination a{
	display:inline-block; min-width: 36px; text-align:center; padding: 8px 10px;
	border: 1px solid var(--ndlf-gray-300); border-radius: var(--ndlf-radius-sm); color: var(--ndlf-navy) !important;
	text-decoration:none; font-size: 0.85rem; transition: all .15s ease;
}
.ndlf-pagination a:hover{ border-color: var(--ndlf-green); transform: translateY(-1px); }
.ndlf-pagination a.ndlf-page-active{ background: var(--ndlf-navy); border-color: var(--ndlf-navy); color:#fff !important; }

/* Sitewide stats bar */
.ndlf-stats-bar{
	display:grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--ndlf-gray-200);
	border: 1px solid var(--ndlf-gray-200); border-radius: var(--ndlf-radius); overflow:hidden; margin: 20px 0; box-shadow: var(--ndlf-shadow);
}
.ndlf-stat{ background: var(--ndlf-surface); padding: 20px; text-align:center; transition: background .15s ease; }
.ndlf-stat:hover{ background: var(--ndlf-gray-100); }
.ndlf-stat svg{ display:inline-block; margin-bottom:6px; color: var(--ndlf-green-dark) !important; }
.ndlf-stat strong{ display:block; font-size: 1.5rem; color: var(--ndlf-navy) !important; background: linear-gradient(135deg, var(--ndlf-navy), var(--ndlf-green-dark)); -webkit-background-clip:text; background-clip:text; }
.ndlf-stat span{ font-size: 0.78rem; color: var(--ndlf-gray-600) !important; text-transform:uppercase; letter-spacing:0.04em; }

/* User stats card */
.ndlf-user-card{ display:flex; gap: 16px; align-items:center; background: var(--ndlf-surface); border: 1px solid var(--ndlf-gray-200); border-radius: var(--ndlf-radius); padding: 20px; max-width: 420px; box-shadow: var(--ndlf-shadow); }
.ndlf-user-avatar .ndlf-init-avatar{ border: 3px solid var(--ndlf-green-light); }
.ndlf-user-info h3{ margin: 0 0 4px; color: var(--ndlf-navy) !important; }
.ndlf-user-stat-row span{ display:inline-flex; align-items:center; gap:5px; }
.ndlf-user-joined{ margin: 0 0 8px; font-size: 0.82rem; color: var(--ndlf-gray-600) !important; }
.ndlf-user-stat-row{ display:flex; gap: 18px; font-size: 0.88rem; }
.ndlf-user-stat-row strong{ color: var(--ndlf-navy) !important; }

@media (max-width: 720px){
	.ndlf-posts-grid{ grid-template-columns: 1fr; }
	.ndlf-forum-row{ grid-template-columns: 44px 1fr; grid-template-areas: "icon main" "stats stats" "last last"; text-align:left; row-gap: 10px; }
	.ndlf-forum-row .ndlf-forum-icon{ grid-area: icon; }
	.ndlf-forum-row .ndlf-forum-main{ grid-area: main; }
	.ndlf-forum-row .ndlf-forum-stats{ grid-area: stats; flex-direction:row; }
	.ndlf-forum-row .ndlf-forum-last{ grid-area: last; text-align:left; }
	.ndlf-forum-icon-img, .ndlf-forum-icon-letter{ width: 44px !important; height: 44px !important; line-height: 44px !important; }
	.ndlf-forum-last{ text-align:left; }
	.ndlf-stats-bar{ grid-template-columns: repeat(2, 1fr); }
	.ndlf-reply-list ul.children{ padding-left: 14px; }
	.ndlf-toast-wrap{ left:16px; right:16px; max-width:none; }

	.ndlf-dtable{ font-size: 0.82rem; }
	.ndlf-dtable-views-col{ display:none; }
}

@media (max-width: 520px){
	.ndlf-dtable-users-col, .ndlf-dtable-users{ display:none; }
}

/* ==========================================================
   [ndlink_dashboard] — full forum homepage layout
   ========================================================== */
html{ scroll-behavior: smooth; }
.ndlf-dash{ display:flex; flex-direction:column; gap: 26px; }
.ndlf-dash-topic-page{ margin-top: 24px; }
#ndlf-dash-feed{ scroll-margin-top: 90px; }

.ndlf-dash-account-bar{ display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; }

/* Account menu — used in the dashboard account bar and [ndlink_account_menu] anywhere else */
.ndlf-account-menu{ position:relative; display:flex; align-items:center; gap:10px; }
.ndlf-account-guest{ gap:10px; }
.ndlf-account-trigger{
	display:flex; align-items:center; gap:10px; background: var(--ndlf-surface); border:1px solid var(--ndlf-gray-200);
	border-radius:100px; padding:6px 14px 6px 6px; cursor:pointer; box-shadow: var(--ndlf-shadow); transition: box-shadow .15s ease;
}
.ndlf-account-trigger:hover{ box-shadow: var(--ndlf-shadow-hover); }
.ndlf-account-name{ font-weight:700; color: var(--ndlf-navy) !important; font-size:0.88rem; }
.ndlf-account-chevron{ color: var(--ndlf-gray-600); flex-shrink:0; }
.ndlf-account-dropdown{
	display:none; position:absolute; top: calc(100% + 8px); right:0; min-width:180px; background: var(--ndlf-surface);
	border:1px solid var(--ndlf-gray-200); border-radius: var(--ndlf-radius-sm); box-shadow: var(--ndlf-shadow-hover);
	padding:6px; z-index:20; flex-direction:column; gap:2px;
}
.ndlf-account-dropdown.is-open{ display:flex; }
.ndlf-account-dropdown a{
	padding:9px 12px; border-radius:6px; color: var(--ndlf-text) !important; text-decoration:none; font-size:0.88rem; font-weight:600;
	transition: background .15s ease;
}
.ndlf-account-dropdown a:hover{ background: var(--ndlf-gray-100); }

.ndlf-avatar-photo{ border-radius:50%; object-fit:cover; display:block; flex-shrink:0; }

/* [ndlink_profile] */
.ndlf-profile-card{
	max-width:560px; margin:0 auto; background: var(--ndlf-surface); border:1px solid var(--ndlf-gray-200);
	border-radius: var(--ndlf-radius); padding:28px 30px; box-shadow: var(--ndlf-shadow);
}
.ndlf-profile-card h2{ margin:0 0 6px; color: var(--ndlf-navy) !important; }
.ndlf-profile-card hr{ border:none; border-top:1px solid var(--ndlf-gray-200); margin:22px 0 6px; }
.ndlf-profile-avatar-row{ display:flex; align-items:center; gap:18px; margin-top:10px; }
.ndlf-profile-avatar-row > div{ flex:1; min-width:0; }
.ndlf-profile-avatar-row label{ margin-top:0 !important; }

.ndlf-dash-hero{
	background: linear-gradient(120deg, var(--ndlf-navy), var(--ndlf-navy-light) 55%, var(--ndlf-green-dark) 140%);
	border-radius: var(--ndlf-radius); padding: 46px 40px; color:#fff !important; position:relative; overflow:hidden;
}
.ndlf-dash-hero::before{
	content:''; position:absolute; inset:0; pointer-events:none;
	background: radial-gradient(circle at 85% 15%, rgba(255,255,255,0.14), transparent 55%);
}
.ndlf-dash-hero-inner{ max-width: 620px; position:relative; z-index:1; }
.ndlf-dash-hero h1{ color:#fff !important; margin: 0 0 10px; font-size: 2rem; text-shadow: 0 1px 4px rgba(0,0,0,0.2); }
.ndlf-dash-hero p{ margin: 0 0 22px; color: rgba(255,255,255,0.92) !important; line-height:1.6; text-shadow: 0 1px 3px rgba(0,0,0,0.15); }
.ndlf-dash-hero-actions{ display:flex; gap:12px; flex-wrap:wrap; }
.ndlf-btn-outline{ background:transparent; color:#fff !important; border:1.5px solid rgba(255,255,255,0.55); box-shadow:none; }
.ndlf-btn-outline:hover{ background:rgba(255,255,255,0.15); color:#fff !important; transform:translateY(-2px); box-shadow:none; }

.ndlf-dash-stats{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ndlf-dash-stat{
	display:flex; align-items:center; gap:12px; background: var(--ndlf-surface); border:1px solid var(--ndlf-gray-200);
	border-top:3px solid var(--ndlf-gray-200); border-radius: var(--ndlf-radius); padding: 16px 18px; box-shadow: var(--ndlf-shadow);
	transition: transform .18s var(--ndlf-ease), box-shadow .18s ease;
}
.ndlf-dash-stat:hover{ transform: translateY(-3px); box-shadow: var(--ndlf-shadow-hover); }
.ndlf-dash-stat:has(.ndlf-dash-stat-icon-blue){ border-top-color: var(--ndlf-accent-blue); }
.ndlf-dash-stat:has(.ndlf-dash-stat-icon-green){ border-top-color: var(--ndlf-green); }
.ndlf-dash-stat:has(.ndlf-dash-stat-icon-purple){ border-top-color: var(--ndlf-accent-purple); }
.ndlf-dash-stat:has(.ndlf-dash-stat-icon-amber){ border-top-color: var(--ndlf-accent-amber); }
.ndlf-dash-stat-icon{ width:42px; height:42px; border-radius:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.ndlf-dash-stat-icon-blue{ background: rgba(29,99,180,0.12); color: var(--ndlf-accent-blue) !important; }
.ndlf-dash-stat-icon-green{ background: rgba(141,198,63,0.16); color: var(--ndlf-green-dark) !important; }
.ndlf-dash-stat-icon-purple{ background: rgba(142,68,173,0.12); color: var(--ndlf-accent-purple) !important; }
.ndlf-dash-stat-icon-amber{ background: rgba(180,139,0,0.12); color: var(--ndlf-accent-amber) !important; }
.ndlf-dash-stat strong{ display:block; font-size:1.3rem; color: var(--ndlf-navy) !important; }
.ndlf-dash-stat span{ font-size:0.74rem; color: var(--ndlf-gray-600) !important; text-transform:uppercase; letter-spacing:0.04em; }

.ndlf-dash-body{ display:grid; grid-template-columns: 210px 1fr 270px; grid-template-areas: "side main right"; gap:24px; align-items:start; }
.ndlf-dash-sidebar{ grid-area:side; position:sticky; top:20px; }
.ndlf-dash-nav{ display:flex; flex-direction:column; gap:2px; background: var(--ndlf-surface); border:1px solid var(--ndlf-gray-200); border-radius: var(--ndlf-radius); padding:10px; box-shadow: var(--ndlf-shadow); }
.ndlf-dash-nav a{
	display:flex; align-items:center; gap:10px; padding:10px 14px; border-radius: var(--ndlf-radius-sm);
	color: var(--ndlf-text) !important; text-decoration:none; font-size:0.88rem; font-weight:600; transition: background .15s ease, color .15s ease;
}
.ndlf-dash-nav a svg{ flex-shrink:0; color: var(--ndlf-gray-600) !important; transition: color .15s ease; }
.ndlf-dash-nav a:hover{ background: var(--ndlf-gray-100); }
.ndlf-dash-nav a.is-active{ background: var(--ndlf-green-light); color: var(--ndlf-green-dark) !important; }
.ndlf-dash-nav a.is-active svg{ color: var(--ndlf-green-dark) !important; }

.ndlf-dash-main{ grid-area:main; min-width:0; display:flex; flex-direction:column; gap:30px; }
.ndlf-dash-feed-head{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; margin-bottom:16px; }
.ndlf-dash-feed-head h2{ margin:0; color: var(--ndlf-navy) !important; }
.ndlf-dash-tabs{ display:flex; gap:20px; flex-wrap:wrap; width:100%; border-bottom: 2px solid var(--ndlf-gray-200); }
.ndlf-dash-tabs a{
	padding:8px 1px; margin-bottom:-2px; font-size:0.85rem; font-weight:600; color: var(--ndlf-gray-600) !important;
	text-decoration:none; background:none; border-bottom: 2px solid transparent; transition: color .15s ease, border-color .15s ease;
}
.ndlf-dash-tabs a:hover{ color: var(--ndlf-navy) !important; }
.ndlf-dash-tabs a.is-active{ color: var(--ndlf-green-dark) !important; border-bottom-color: var(--ndlf-green-dark); font-weight:700; }

.ndlf-dash-right{ grid-area:right; display:flex; flex-direction:column; gap:20px; }
.ndlf-dash-widget{ background: var(--ndlf-surface); border:1px solid var(--ndlf-gray-200); border-radius: var(--ndlf-radius); padding:18px 20px; box-shadow: var(--ndlf-shadow); }
.ndlf-dash-widget h3{ margin:0 0 12px; color: var(--ndlf-navy) !important; font-size:0.92rem; display:flex; align-items:center; gap:8px; }
.ndlf-dash-widget-dot{ width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.ndlf-dash-widget-dot-amber{ background: var(--ndlf-accent-amber); }
.ndlf-dash-widget-dot-blue{ background: var(--ndlf-accent-blue); }

.ndlf-dash-trending-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.ndlf-dash-trending-list li{ display:flex; align-items:center; gap:8px; }
.ndlf-dash-dot{ width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.ndlf-dash-trending-list a{ color: var(--ndlf-navy) !important; font-weight:600; text-decoration:none; font-size:0.85rem; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ndlf-dash-trending-list a:hover{ color: var(--ndlf-green-dark) !important; }
.ndlf-dash-trending-count{ color: var(--ndlf-gray-600) !important; font-size:0.74rem; white-space:nowrap; flex-shrink:0; }

.ndlf-dash-snapshot-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.ndlf-dash-snapshot-list li{ display:flex; justify-content:space-between; align-items:center; font-size:0.84rem; color: var(--ndlf-gray-600) !important; }
.ndlf-dash-snapshot-list li span{ display:inline-flex; align-items:center; gap:6px; }
.ndlf-dash-snapshot-list strong{ color: var(--ndlf-navy) !important; }

/* Footer: online-members pill + "Join Forum" CTA */
.ndlf-dash-cta{
	background: linear-gradient(135deg, var(--ndlf-green-light), var(--ndlf-surface) 65%);
	border: 1px solid var(--ndlf-gray-200); border-radius: var(--ndlf-radius); box-shadow: var(--ndlf-shadow);
	padding: 34px 32px; text-align:center;
}
.ndlf-dash-online{
	display:inline-flex; align-items:center; gap:9px; background: var(--ndlf-surface); border:1px solid var(--ndlf-gray-200);
	border-radius:100px; padding:7px 16px; font-size:0.82rem; font-weight:700; color: var(--ndlf-navy) !important; margin-bottom: 18px;
}
.ndlf-online-dot{ position:relative; width:9px; height:9px; border-radius:50%; background: var(--ndlf-green); flex-shrink:0; }
.ndlf-online-dot::after{
	content:''; position:absolute; inset:-4px; border-radius:50%; border:2px solid var(--ndlf-green);
	animation: ndlf-pulse-ring 2s ease-out infinite;
}
@keyframes ndlf-pulse-ring{
	0%{ transform:scale(0.6); opacity:0.8; }
	100%{ transform:scale(1.8); opacity:0; }
}
.ndlf-dash-cta h2{ color: var(--ndlf-navy) !important; margin: 0 0 8px; }
.ndlf-dash-cta p{ color: var(--ndlf-gray-600) !important; margin: 0 0 20px; max-width:460px; margin-left:auto; margin-right:auto; }

@media (max-width: 960px){
	.ndlf-dash-body{ grid-template-columns: 1fr; grid-template-areas: "main" "side" "right"; }
	.ndlf-dash-sidebar{ position:static; }
	.ndlf-dash-nav{ flex-direction:row; overflow-x:auto; gap:6px; }
	.ndlf-dash-nav a{ white-space:nowrap; }
}

@media (max-width: 600px){
	.ndlf-dash-hero{ padding:32px 22px; }
	.ndlf-dash-hero h1{ font-size:1.5rem; }
	.ndlf-dash-stats{ grid-template-columns: repeat(2, 1fr); }
	.ndlf-dash-cta{ padding:26px 20px; }
}

@media (prefers-reduced-motion: reduce){
	*[class^="ndlf-"], *[class*=" ndlf-"]{ transition:none !important; animation:none !important; }
	.ndlf-online-dot::after{ animation:none !important; opacity:.5; }
}
