/* DragonFC Contributors - design system
 * Uses `dfc-` prefix on the new dashboard/account components.
 * Legacy `dragonfc-` classes kept for the signup/login forms.
 */

:root {
	--dfc-red: #c8102e;
	--dfc-red-dark: #a40c25;
	--dfc-ink: #16181d;            /* near-black: primary actions + active nav */
	--dfc-ink-soft: #2a2e35;
	--dfc-bg: #f6f7f9;
	--dfc-surface: #ffffff;
	--dfc-surface-2: #f7f8fa;      /* insets, message wells */
	--dfc-border: #edeef1;
	--dfc-border-strong: #e2e4e8;
	--dfc-text: #1a1d21;
	--dfc-text-2: #5b6472;
	--dfc-muted: #8a9099;
	--dfc-success: #16794a;
	--dfc-success-bg: #e7f6ee;
	--dfc-warning: #a35a00;
	--dfc-warning-bg: #fdf1e2;
	--dfc-info: #1e5fa8;
	--dfc-shadow: 0 1px 2px rgba(16,24,40,0.04), 0 8px 24px rgba(16,24,40,0.03);
	--dfc-shadow-hover: 0 4px 14px rgba(16,24,40,0.07);
	--dfc-radius: 14px;
	--dfc-radius-sm: 10px;
	--dfc-font: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;
}

/* ========== Shell ========== */
.dfc-shell {
	max-width: 960px;
	margin: 24px auto;
	font-family: var(--dfc-font);
	color: var(--dfc-text);
	-webkit-font-smoothing: antialiased;
	line-height: 1.5;
}
.dfc-shell button, .dfc-shell input, .dfc-shell select, .dfc-shell textarea { font-family: var(--dfc-font); }

.dfc-shell h2, .dfc-shell h3 {
	color: var(--dfc-text);
	margin: 0;
	letter-spacing: -0.02em;
}

/* ========== Header ========== */
.dfc-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 18px 22px;
	background: var(--dfc-surface);
	border: 1px solid var(--dfc-border);
	border-radius: var(--dfc-radius);
	box-shadow: var(--dfc-shadow);
	margin-bottom: 18px;
}
.dfc-header-left {
	display: flex;
	align-items: center;
	gap: 14px;
}
.dfc-header-right {
	display: flex;
	align-items: center;
	gap: 14px;
}
.dfc-avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	background: #eef0f3;
}
.dfc-avatar-fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	font-weight: 600;
	color: var(--dfc-muted);
}
.dfc-eyebrow {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--dfc-muted);
}
.dfc-greeting {
	font-size: 21px;
	font-weight: 600;
	letter-spacing: -0.02em;
	margin: 2px 0 0;
}
.dfc-small { font-size: 12px; }
.dfc-muted { color: var(--dfc-muted); }

/* ========== Buttons / links ========== */
.dfc-btn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 9px 16px;
	border-radius: var(--dfc-radius-sm);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	border: 0;
	cursor: pointer;
	line-height: 1.2;
	transition: background 0.15s, border-color 0.15s, box-shadow 0.15s, transform 0.05s;
}
.dfc-btn:active { transform: scale(0.985); }
.dfc-btn-primary { background: var(--dfc-ink); color: #fff; }
.dfc-btn-primary:hover { background: var(--dfc-ink-soft); color: #fff; }
.dfc-btn-accent { background: var(--dfc-red); color: #fff; }
.dfc-btn-accent:hover { background: var(--dfc-red-dark); color: #fff; }
.dfc-btn-ghost {
	background: var(--dfc-surface);
	color: var(--dfc-text);
	border: 1px solid var(--dfc-border-strong);
}
.dfc-btn-ghost:hover { background: var(--dfc-surface-2); color: var(--dfc-text); }
.dfc-link { color: var(--dfc-info); text-decoration: none; font-weight: 500; }
.dfc-link:hover { text-decoration: underline; }

/* ========== Ticker ========== */
.dfc-ticker {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #1d1f23;
	color: #fff;
	padding: 11px 18px;
	border-radius: var(--dfc-radius);
	margin-bottom: 18px;
	font-size: 14px;
	font-weight: 500;
	box-shadow: var(--dfc-shadow);
}
.dfc-ticker-icon { font-size: 16px; flex-shrink: 0; }
.dfc-ticker-stage {
	position: relative;
	flex: 1;
	height: 22px;
	overflow: hidden;
}
.dfc-ticker-msg {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	opacity: 0;
	transform: translateY(100%);
	transition: opacity 0.45s, transform 0.45s;
}
.dfc-ticker-msg.is-active {
	opacity: 1;
	transform: translateY(0);
}

/* ========== Cards ========== */
.dfc-card {
	background: var(--dfc-surface);
	border: 1px solid var(--dfc-border);
	border-radius: var(--dfc-radius);
	box-shadow: var(--dfc-shadow);
	padding: 22px 24px;
	margin-bottom: 16px;
}
.dfc-card h3 {
	font-size: 16px;
	font-weight: 600;
	text-transform: none;
	letter-spacing: -0.01em;
	color: var(--dfc-text);
	margin: 0 0 14px;
}
.dfc-card-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 14px;
}
.dfc-card-head h3 { margin: 0; }

/* ========== Stats row ========== */
.dfc-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 14px;
	margin-bottom: 18px;
}
.dfc-stat {
	background: var(--dfc-surface);
	border: 1px solid var(--dfc-border);
	border-radius: var(--dfc-radius);
	box-shadow: var(--dfc-shadow);
	padding: 18px 20px;
}
.dfc-stat-label {
	font-size: 11px;
	font-weight: 600;
	color: var(--dfc-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: 8px;
}
.dfc-stat-value {
	font-size: 22px;
	font-weight: 700;
	color: var(--dfc-text);
	line-height: 1.1;
}

/* ========== Onboarding checklist ========== */
.dfc-checklist .dfc-progress {
	height: 6px;
	background: #ececef;
	border-radius: 3px;
	overflow: hidden;
	margin-bottom: 14px;
}
.dfc-progress-bar {
	height: 100%;
	background: var(--dfc-red);
	transition: width 0.3s;
}
.dfc-progress-label { font-size: 12px; color: var(--dfc-muted); }
.dfc-checklist-items { list-style: none; padding: 0; margin: 0; }
.dfc-checklist-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px 0;
	border-bottom: 1px solid var(--dfc-border);
	font-size: 14px;
}
.dfc-checklist-item:last-child { border-bottom: 0; }
.dfc-checklist-item .dfc-check {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 1.5px solid #d2d4d8;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	color: transparent;
	flex-shrink: 0;
}
.dfc-checklist-item.is-done { color: var(--dfc-muted); text-decoration: line-through; }
.dfc-checklist-item.is-done .dfc-check {
	background: var(--dfc-success);
	border-color: var(--dfc-success);
	color: #fff;
}
.dfc-checklist-item a { margin-left: auto; }

/* ========== 2-col grid ========== */
.dfc-grid-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}

/* ========== Site list ========== */
.dfc-site-list { list-style: none; padding: 0; margin: 0; }
.dfc-site-list li {
	padding: 10px 0;
	border-bottom: 1px solid var(--dfc-border);
	font-size: 14px;
}
.dfc-site-list li:last-child { border-bottom: 0; }
.dfc-site-list strong { display: block; }

/* ========== Tags ========== */
.dfc-tag-rows {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.dfc-tag-row {
	display: grid;
	grid-template-columns: 90px 1fr;
	gap: 16px;
	align-items: start;
}
.dfc-tag-label {
	font-size: 12px;
	font-weight: 600;
	color: var(--dfc-muted);
	padding-top: 5px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}
.dfc-tag {
	display: inline-block;
	background: #eef0f3;
	color: #444;
	padding: 4px 10px;
	border-radius: 14px;
	font-size: 12px;
	margin: 2px 4px 2px 0;
}

/* ========== FAQ ========== */
.dfc-faq { display: flex; flex-direction: column; gap: 4px; }
.dfc-faq-item {
	border-bottom: 1px solid var(--dfc-border);
	padding: 4px 0;
}
.dfc-faq-item[open] { background: #fafbfc; padding-left: 8px; padding-right: 8px; border-radius: 6px; }
.dfc-faq-item summary {
	cursor: pointer;
	padding: 12px 0;
	font-weight: 600;
	font-size: 14px;
	list-style: none;
	position: relative;
	padding-right: 28px;
}
.dfc-faq-item summary::-webkit-details-marker { display: none; }
.dfc-faq-item summary::after {
	content: '+';
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 18px;
	color: var(--dfc-muted);
}
.dfc-faq-item[open] summary::after { content: '−'; }
.dfc-faq-body { padding: 4px 0 14px; font-size: 14px; line-height: 1.55; color: #333; }
.dfc-faq-body p { margin: 0 0 10px; }
.dfc-faq-body p:last-child { margin-bottom: 0; }

/* ========== Journey / What happens next ========== */
.dfc-journey { background: linear-gradient(180deg, #fafbfc 0%, #fff 60%); }
.dfc-steps {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.dfc-steps li {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding-left: 4px;
}
.dfc-steps .dfc-step-num {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #ececef;
	color: #888;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 13px;
	flex-shrink: 0;
}
.dfc-steps li.is-current .dfc-step-num {
	background: var(--dfc-warning);
	color: #fff;
}
.dfc-steps li.is-done .dfc-step-num {
	background: var(--dfc-success);
	color: #fff;
}
.dfc-steps li.is-done > div:last-child strong { text-decoration: line-through; color: var(--dfc-muted); }

/* ========== Availability rows ========== */
.dfc-availability-row {
	display: grid !important;
	grid-template-columns: 160px 160px 1fr 36px;
	gap: 10px;
	align-items: start;
	margin-bottom: 8px;
}
@media (max-width: 600px) {
	.dfc-availability-row { grid-template-columns: 1fr 1fr; }
	.dfc-availability-row input[type=text] { grid-column: 1 / -1; }
	.dfc-availability-row .dragonfc-row-remove { grid-column: 1 / -1; justify-self: end; }
}

/* ========== Briefs ========== */
.dfc-brief-active { border: 2px solid #b88600; background: #fffaf0; }
.dfc-brief-active .dfc-card-head { margin-bottom: 14px; }
.dfc-brief-status {
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	padding: 3px 10px;
	border-radius: 10px;
}
.dfc-brief-title {
	font-size: 18px;
	margin: 0 0 10px;
	font-weight: 700;
}
.dfc-brief-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	font-size: 13px;
	color: #444;
	margin-bottom: 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--dfc-border);
}
.dfc-brief-meta span { display: inline-flex; align-items: center; }
.dfc-brief-body {
	font-size: 14px;
	line-height: 1.6;
	color: #333;
	margin-bottom: 14px;
}
.dfc-brief-body p:last-child { margin-bottom: 0; }
.dfc-brief-submit input[type=url] {
	width: 100%;
	padding: 9px 11px;
	border: 1px solid #d2d4d8;
	border-radius: 6px;
	font-size: 14px;
	box-sizing: border-box;
	margin-top: 5px;
}

.dfc-brief-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
}
.dfc-brief-card {
	background: #fafbfc;
	border: 1px solid var(--dfc-border);
	border-radius: 8px;
	padding: 16px 18px;
}
.dfc-brief-card-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}
.dfc-brief-card-head h4 {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
}
.dfc-brief-fee {
	background: #1e8a4a;
	color: #fff;
	padding: 3px 10px;
	border-radius: 12px;
	font-size: 13px;
	font-weight: 700;
}
.dfc-brief-card details summary {
	cursor: pointer;
	font-size: 13px;
	color: var(--dfc-info);
	font-weight: 600;
	padding: 8px 0;
}
.dfc-brief-card details[open] summary { color: var(--dfc-text); }
.dfc-brief-card .dfc-brief-body { margin-top: 8px; padding-bottom: 12px; }
.dfc-brief-claim { margin-top: 10px; }

/* ========== Resources list ========== */
.dfc-resource-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.dfc-resource-list li {
	padding: 10px 0;
	border-bottom: 1px solid var(--dfc-border);
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
}
.dfc-resource-list li:last-child { border-bottom: 0; }
.dfc-resource-cat {
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	background: #eef0f3;
	color: var(--dfc-muted);
	padding: 3px 8px;
	border-radius: 10px;
	flex-shrink: 0;
}
.dfc-resource-list a { color: var(--dfc-info); text-decoration: none; }
.dfc-resource-list a:hover { text-decoration: underline; }

/* ========== Feedback form on briefs ========== */
.dfc-feedback-form {
	margin-top: 16px;
	padding: 14px 16px;
	background: #f7faff;
	border: 1px solid #d6e6ff;
	border-radius: 8px;
}
.dfc-feedback-form h4 { margin: 0 0 6px; font-size: 14px; }
.dfc-rating-picker {
	display: flex;
	gap: 8px;
	margin: 10px 0;
}
.dfc-rating-picker label {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	cursor: pointer;
	padding: 6px 12px;
	background: #fff;
	border: 1px solid var(--dfc-border);
	border-radius: 6px;
	font-weight: 600;
	font-size: 14px;
}
.dfc-rating-picker label:hover { background: #f4f6f8; }
.dfc-rating-picker input { margin: 0; }
.dfc-feedback-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 8px 10px;
	border: 1px solid #d2d4d8;
	border-radius: 6px;
	font-size: 14px;
	resize: vertical;
	min-height: 60px;
}
.dfc-feedback-given {
	margin-top: 14px;
	padding: 12px 14px;
	background: #f0f9f3;
	border: 1px solid #c5e3d0;
	border-radius: 8px;
	font-size: 14px;
}
.dfc-feedback-given span { color: #f6b800; margin-left: 6px; }
.dfc-feedback-given blockquote {
	margin: 6px 0 0;
	color: #444;
	font-style: italic;
}

/* ========== Performance summary ========== */
.dfc-perf-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 14px;
}
.dfc-perf-grid > div {
	background: #fafbfc;
	border: 1px solid var(--dfc-border);
	border-radius: 8px;
	padding: 16px 18px;
}
.dfc-perf-num {
	font-size: 22px;
	font-weight: 700;
	color: var(--dfc-text);
	line-height: 1.1;
}
.dfc-perf-cap {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--dfc-muted);
	margin-top: 6px;
}

/* ========== Invoice form + list ========== */
.dfc-invoice-form input[type=file] {
	padding: 7px 10px;
	background: #fff;
	border: 1px dashed var(--dfc-border);
	border-radius: 6px;
}
.dfc-invoice-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.dfc-invoice-list li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 0;
	border-bottom: 1px solid var(--dfc-border);
	font-size: 14px;
}
.dfc-invoice-list li:last-child { border-bottom: 0; }
.dfc-invoice-status {
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	padding: 3px 10px;
	border-radius: 10px;
}

/* ========== Promotion list (article bonus links) ========== */
.dfc-promo-list { display: flex; flex-direction: column; gap: 18px; }
.dfc-promo-item {
	border: 1px solid var(--dfc-border);
	border-radius: 8px;
	padding: 16px 18px;
	background: #fafbfc;
}
.dfc-promo-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 14px;
	margin-bottom: 12px;
	flex-wrap: wrap;
}
.dfc-promo-title {
	font-weight: 600;
	font-size: 15px;
	color: var(--dfc-text);
	text-decoration: none;
}
.dfc-promo-title:hover { text-decoration: underline; }
.dfc-promo-bonus {
	background: #1e8a4a;
	color: #fff;
	padding: 3px 10px;
	border-radius: 12px;
	font-size: 12px;
	font-weight: 600;
}
.dfc-promo-link {
	display: flex;
	gap: 8px;
	margin-bottom: 12px;
}
.dfc-promo-link input {
	flex: 1;
	padding: 8px 10px;
	border: 1px solid var(--dfc-border);
	border-radius: 6px;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 13px;
	background: #fff;
}
.dfc-promo-progress .dfc-progress {
	height: 6px;
	background: #ececef;
	border-radius: 3px;
	margin-bottom: 6px;
	overflow: hidden;
}
.dfc-promo-stats {
	font-size: 13px;
	color: var(--dfc-text);
}
.dfc-promo-bonuses {
	list-style: none;
	padding: 12px 0 0;
	margin: 12px 0 0;
	border-top: 1px solid var(--dfc-border);
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.dfc-promo-bonuses li {
	font-size: 13px;
	color: #333;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}
.dfc-bonus-tag {
	display: inline-block;
	background: #1d1f23;
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	padding: 2px 8px;
	border-radius: 10px;
}
.dfc-bonus-paid {
	background: #1e8a4a;
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	padding: 2px 8px;
	border-radius: 10px;
}

/* ========== Socials list ========== */
.dfc-socials { list-style: none; padding: 0; margin: 0 0 12px; }
.dfc-socials li { padding: 6px 0; border-bottom: 1px solid var(--dfc-border); font-size: 14px; }
.dfc-socials li:last-child { border-bottom: 0; }
.dfc-socials strong { display: inline-block; min-width: 80px; font-size: 13px; color: var(--dfc-muted); text-transform: uppercase; letter-spacing: 0.5px; }
.dfc-socials a { color: var(--dfc-info); text-decoration: none; word-break: break-all; }
.dfc-socials a:hover { text-decoration: underline; }

/* ========== Timeline ========== */
.dfc-timeline { list-style: none; padding: 0; margin: 0; position: relative; }
.dfc-timeline::before {
	content: '';
	position: absolute;
	left: 6px;
	top: 6px;
	bottom: 6px;
	width: 2px;
	background: #ececef;
}
.dfc-timeline li {
	display: flex;
	gap: 14px;
	padding: 8px 0;
	position: relative;
}
.dfc-timeline-dot {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid var(--dfc-red);
	flex-shrink: 0;
	margin-top: 4px;
	z-index: 1;
}
.dfc-timeline-body { flex: 1; }
.dfc-timeline-body strong { font-size: 14px; }

/* ========== Process card ========== */
.dfc-process-body { font-size: 14px; line-height: 1.55; color: #333; }
.dfc-process-body p { margin: 0 0 10px; }
.dfc-process-body p:last-child { margin-bottom: 0; }
.dfc-process-meta {
	display: grid;
	grid-template-columns: 90px 1fr;
	gap: 12px;
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--dfc-border);
	font-size: 14px;
}

/* ========== Contact (legacy, kept in case used later) ========== */
.dfc-contact-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 14px;
}
.dfc-contact {
	background: #fafbfc;
	border: 1px solid var(--dfc-border);
	border-radius: 8px;
	padding: 14px 16px;
}
.dfc-contact-label {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--dfc-muted);
	margin-bottom: 4px;
}
.dfc-contact-link {
	font-size: 14px;
	font-weight: 500;
	color: var(--dfc-info);
	text-decoration: none;
	word-break: break-all;
}
.dfc-contact-link:hover { text-decoration: underline; }

/* ========== Homepage ========== */
.dfc-hero {
	background: linear-gradient(135deg, #1d1f23 0%, #2a1b1b 100%);
	color: #fff;
	padding: 80px 24px 90px;
	text-align: center;
}
.dfc-hero-inner {
	max-width: 820px;
	margin: 0 auto;
}
.dfc-hero .dfc-eyebrow {
	color: #ffb3b3;
	margin-bottom: 18px;
}
.dfc-hero h1 {
	font-size: clamp(28px, 5vw, 46px);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.02em;
	margin: 0 0 18px;
	color: #fff;
}
.dfc-lede {
	font-size: 18px;
	line-height: 1.55;
	color: #d9dadd;
	margin: 0 auto 30px;
	max-width: 640px;
}
.dfc-hero-cta {
	display: flex;
	gap: 20px;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
}
.dfc-hero-cta .dfc-link {
	color: #fff;
	font-weight: 500;
}
.dfc-btn-lg {
	padding: 14px 28px;
	font-size: 16px;
}

.dfc-about {
	padding: 70px 20px;
	background: #fff;
}
.dfc-about-grid {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 48px;
	max-width: 960px;
	margin: 0 auto;
	align-items: center;
}
.dfc-about h2 {
	font-size: clamp(24px, 3.5vw, 32px);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin: 12px 0 18px;
}
.dfc-about p {
	font-size: 16px;
	line-height: 1.6;
	color: #444;
	margin: 0 0 14px;
}
.dfc-stats-row {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}
@media (max-width: 720px) {
	.dfc-stats-row { grid-template-columns: 1fr 1fr; }
}
.dfc-stat-tile {
	background: #fafbfc;
	border: 1px solid var(--dfc-border);
	border-radius: var(--dfc-radius);
	padding: 22px 20px;
	text-align: center;
}
.dfc-stat-num {
	font-size: 36px;
	font-weight: 700;
	color: var(--dfc-red);
	line-height: 1;
}
.dfc-stat-num small { font-size: 22px; }
.dfc-stat-cap {
	font-size: 12px;
	color: var(--dfc-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-top: 8px;
	font-weight: 600;
}

.dfc-tiers {
	padding: 70px 20px;
	background: #f7f7f9;
}
.dfc-tier-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	max-width: 1040px;
	margin: 0 auto;
	align-items: stretch;
}
.dfc-tier-card {
	background: #fff;
	border: 1px solid var(--dfc-border);
	border-radius: 14px;
	padding: 28px 26px 26px;
	display: flex;
	flex-direction: column;
	position: relative;
	transition: transform 0.15s, box-shadow 0.15s;
}
.dfc-tier-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 30px -10px rgba(20,20,30,0.12);
}
.dfc-tier-card.is-featured {
	border: 1px solid #1d1f23;
	box-shadow: 0 10px 28px -12px rgba(20,20,30,0.18);
	background: linear-gradient(180deg, #1d1f23 0%, #181a1e 100%);
	color: #fff;
}
.dfc-tier-card.is-featured:hover {
	transform: translateY(-5px);
	box-shadow: 0 18px 38px -10px rgba(20,20,30,0.3);
}

.dfc-tier-card-head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 18px;
}
.dfc-tier-num {
	font-size: 14px;
	font-weight: 700;
	font-feature-settings: "tnum";
	color: #b9bbc0;
	letter-spacing: 0.02em;
	background: #f4f4f6;
	border-radius: 8px;
	padding: 6px 10px;
	min-width: 38px;
	text-align: center;
}
.dfc-tier-card.is-featured .dfc-tier-num {
	background: rgba(255,255,255,0.1);
	color: #fff;
}
.dfc-tier-name {
	font-size: 17px;
	font-weight: 700;
	color: var(--dfc-text);
	line-height: 1.2;
}
.dfc-tier-card.is-featured .dfc-tier-name { color: #fff; }
.dfc-tier-sub {
	font-size: 11px;
	font-weight: 600;
	color: var(--dfc-muted);
	text-transform: uppercase;
	letter-spacing: 0.7px;
	margin-top: 4px;
}
.dfc-tier-card.is-featured .dfc-tier-sub { color: #b8babf; }

.dfc-tier-pitch {
	font-size: 14px;
	line-height: 1.55;
	color: #555;
	margin: 0 0 18px;
}
.dfc-tier-card.is-featured .dfc-tier-pitch { color: #d6d7db; }

.dfc-tier-benefits {
	list-style: none;
	padding: 0;
	margin: 0;
	border-top: 1px solid var(--dfc-border);
	padding-top: 18px;
}
.dfc-tier-card.is-featured .dfc-tier-benefits {
	border-top-color: rgba(255,255,255,0.12);
}
.dfc-tier-benefits li {
	font-size: 14px;
	color: #333;
	line-height: 1.5;
	padding: 7px 0 7px 26px;
	position: relative;
}
.dfc-tier-card.is-featured .dfc-tier-benefits li { color: #e5e6e9; }
.dfc-tier-benefits li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 11px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--dfc-red);
	background-image: linear-gradient(135deg, #c8102e 0%, #8a0a20 100%);
}
.dfc-tier-benefits li::after {
	content: '';
	position: absolute;
	left: 4px;
	top: 14.5px;
	width: 8px;
	height: 4px;
	border-left: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(-45deg);
}
.dfc-tier-card.is-featured .dfc-tier-benefits li::before {
	background-image: linear-gradient(135deg, #fff 0%, #d6d7db 100%);
}
.dfc-tier-card.is-featured .dfc-tier-benefits li::after {
	border-color: #1d1f23;
}

.dfc-tier-footnote {
	max-width: 720px;
	margin: 32px auto 0;
	text-align: center;
	font-size: 14px;
	color: var(--dfc-muted);
	line-height: 1.6;
}

@media (max-width: 820px) {
	.dfc-tier-grid { grid-template-columns: 1fr; max-width: 460px; }
}

.dfc-commission {
	padding: 70px 20px;
	background: #fff;
}
.dfc-commission-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 36px;
	max-width: 960px;
	margin: 0 auto 40px;
}
.dfc-commission-col h3 {
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	color: var(--dfc-muted);
	margin: 0 0 14px;
}
.dfc-commission-list {
	list-style: none;
	padding: 0;
	margin: 0 0 14px;
}
.dfc-commission-list li {
	padding: 8px 0 8px 22px;
	font-size: 15px;
	line-height: 1.45;
	color: var(--dfc-text);
	border-bottom: 1px solid var(--dfc-border);
	position: relative;
}
.dfc-commission-list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 16px;
	width: 6px;
	height: 6px;
	background: var(--dfc-red);
	border-radius: 50%;
}
.dfc-commission-list li:last-child { border-bottom: 0; }

.dfc-fit-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	max-width: 960px;
	margin: 0 auto;
}
.dfc-fit-card {
	border-radius: 12px;
	padding: 22px 24px;
	border: 1px solid var(--dfc-border);
}
.dfc-fit-card h4 {
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.6px;
	margin: 0 0 14px;
}
.dfc-fit-yes {
	background: #f0f9f3;
	border-color: #c5e3d0;
}
.dfc-fit-yes h4 { color: #1e8a4a; }
.dfc-fit-no {
	background: #fbf4f4;
	border-color: #e6c8cb;
}
.dfc-fit-no h4 { color: #9a2424; }
.dfc-fit-card ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.dfc-fit-card li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 14px;
	line-height: 1.55;
	padding: 7px 0;
	color: var(--dfc-text);
}
.dfc-fit-card li::before {
	content: '';
	width: 18px;
	height: 18px;
	border-radius: 50%;
	flex-shrink: 0;
	margin-top: 2px;
	background-repeat: no-repeat;
	background-position: center;
}
.dfc-fit-yes li::before {
	background-color: #1e8a4a;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 5.5l3 3 6-6'/%3E%3C/svg%3E");
	background-size: 11px;
}
.dfc-fit-no li::before {
	background-color: #9a2424;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M1.5 1.5l7 7M8.5 1.5l-7 7'/%3E%3C/svg%3E");
	background-size: 9px;
}

@media (max-width: 720px) {
	.dfc-commission-grid,
	.dfc-fit-grid { grid-template-columns: 1fr; gap: 24px; }
}

.dfc-blog-strip,
.dfc-faq-strip {
	padding: 60px 20px;
}
.dfc-blog-strip { background: #f7f7f9; }
.dfc-faq-strip  { background: #fff; }

.dfc-section-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	max-width: 960px;
	margin: 0 auto 28px;
}
.dfc-section-head h2 {
	font-size: clamp(22px, 3vw, 28px);
	font-weight: 700;
	margin: 0;
}
.dfc-section-head .dfc-link {
	color: var(--dfc-red);
	font-weight: 600;
}
.dfc-section-head .dfc-link:hover {
	color: var(--dfc-red-dark);
}

.dfc-post-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	max-width: 960px;
	margin: 0 auto;
}
.dfc-post-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--dfc-border);
	border-radius: var(--dfc-radius);
	overflow: hidden;
	text-decoration: none;
	color: var(--dfc-text);
	transition: transform 0.15s, box-shadow 0.15s;
}
.dfc-post-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 16px rgba(20,20,30,0.08);
}
.dfc-post-thumb {
	height: 160px;
	background-size: cover;
	background-position: center;
	background-color: #eef0f3;
}
.dfc-post-body { padding: 18px 20px; }
.dfc-post-body h3 {
	font-size: 17px;
	margin: 0 0 8px;
	line-height: 1.3;
	color: var(--dfc-text);
}
.dfc-post-body p {
	font-size: 14px;
	color: var(--dfc-muted);
	line-height: 1.5;
	margin: 0 0 10px;
}
.dfc-post-meta {
	font-size: 12px;
	color: var(--dfc-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.dfc-faq-strip .dfc-faq {
	max-width: 760px;
	margin: 0 auto;
}

.dfc-final-cta {
	padding: 70px 20px;
	background: linear-gradient(135deg, #c8102e 0%, #8a0a20 100%);
	color: #fff;
	text-align: center;
}
.dfc-final-cta h2 {
	font-size: clamp(24px, 3.5vw, 32px);
	font-weight: 700;
	color: #fff;
	margin: 0 0 14px;
}
.dfc-final-cta p {
	font-size: 16px;
	color: #ffe0e6;
	margin: 0 auto 24px;
	max-width: 560px;
}
.dfc-final-cta .dfc-btn-primary {
	background: #fff;
	color: var(--dfc-red);
}
.dfc-final-cta .dfc-btn-primary:hover {
	background: #ffe0e0;
	color: var(--dfc-red);
}

@media (max-width: 720px) {
	.dfc-hero { padding: 60px 20px; }
	.dfc-about-grid { grid-template-columns: 1fr; gap: 30px; }
	.dfc-post-grid { grid-template-columns: 1fr; }
	.dfc-section-head { flex-direction: column; align-items: flex-start; gap: 10px; margin-bottom: 18px; }
}

/* ========== Breadcrumbs ========== */
.dfc-breadcrumbs {
	max-width: 960px;
	margin: 16px auto 0;
	font-size: 13px;
	color: var(--dfc-muted);
}
.dfc-breadcrumbs ol {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 8px;
}
.dfc-breadcrumbs li { display: inline-flex; align-items: center; }
.dfc-breadcrumbs li + li::before {
	content: '/';
	margin: 0 4px 0 0;
	color: #b9bbc0;
}
.dfc-breadcrumbs a { color: var(--dfc-muted); text-decoration: none; }
.dfc-breadcrumbs a:hover { color: var(--dfc-text); }
.dfc-breadcrumbs [aria-current="page"] { color: var(--dfc-text); font-weight: 500; }

/* ========== Sub-nav (used on /account/) ========== */
.dragonfc-subnav {
	display: flex;
	justify-content: space-between;
	padding: 12px 0;
	margin-bottom: 18px;
	font-size: 14px;
	border-bottom: 1px solid var(--dfc-border);
}
.dragonfc-subnav a { text-decoration: none; color: var(--dfc-info); }
.dragonfc-subnav a:hover { text-decoration: underline; }

/* ========== Responsive ========== */
@media (max-width: 720px) {
	.dfc-stats { grid-template-columns: repeat(2, 1fr); }
	.dfc-grid-2 { grid-template-columns: 1fr; }
	.dfc-header { flex-direction: column; align-items: flex-start; }
	.dfc-header-right { width: 100%; justify-content: space-between; }
	.dfc-tag-row { grid-template-columns: 1fr; gap: 4px; }
}

/* ========== Legacy form styles (signup, login, account) ========== */
.dragonfc-form { max-width: 760px; margin: 24px auto; font-family: -apple-system, BlinkMacSystemFont, system-ui, sans-serif; }
.dragonfc-form fieldset { border: 1px solid var(--dfc-border); padding: 18px 22px; margin-bottom: 22px; border-radius: var(--dfc-radius); background: var(--dfc-surface); }
.dragonfc-form legend { font-weight: 600; padding: 0 8px; font-size: 14px; color: var(--dfc-muted); text-transform: uppercase; letter-spacing: 0.5px; }
.dragonfc-form label { display: block; font-size: 13px; color: #333; font-weight: 500; }

.dragonfc-form input[type=text],
.dragonfc-form input[type=email],
.dragonfc-form input[type=tel],
.dragonfc-form input[type=url],
.dragonfc-form input[type=number],
.dragonfc-form input[type=password],
.dragonfc-form input[type=file],
.dragonfc-form textarea,
.dragonfc-form select {
	display: block; width: 100%; padding: 9px 11px; margin-top: 5px;
	border: 1px solid #d2d4d8; border-radius: 6px; font-size: 14px; box-sizing: border-box; background: #fff;
}
.dragonfc-form textarea { resize: vertical; min-height: 80px; }

.dragonfc-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dragonfc-grid-2-actionable { display: grid; grid-template-columns: 1fr 1fr 36px; gap: 10px; align-items: start; margin-bottom: 8px; }
@media (max-width: 600px) {
	.dragonfc-grid-2 { grid-template-columns: 1fr; }
	.dragonfc-grid-2-actionable { grid-template-columns: 1fr 1fr; }
	.dragonfc-grid-2-actionable .dragonfc-row-remove { grid-column: 1 / -1; justify-self: end; }
}

.dragonfc-checkboxes { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 6px 16px; padding: 8px 0 16px; }
.dragonfc-checkboxes label { font-weight: 400; cursor: pointer; }
.dragonfc-checkboxes input { margin-right: 6px; }

.dragonfc-btn {
	display: inline-block; background: var(--dfc-red); color: #fff; padding: 10px 22px;
	border: 0; border-radius: 6px; font-size: 14px; font-weight: 600; cursor: pointer; text-decoration: none;
}
.dragonfc-btn:hover { background: var(--dfc-red-dark); color: #fff; }
.dragonfc-btn-ghost {
	background: transparent; color: var(--dfc-red); padding: 6px 14px; border: 1px solid var(--dfc-red);
	border-radius: 6px; font-size: 13px; font-weight: 600; cursor: pointer;
}
.dragonfc-btn-ghost:hover { background: var(--dfc-red); color: #fff; }
.dragonfc-row-remove {
	background: #f5f5f5; color: #666; border: 1px solid var(--dfc-border); border-radius: 6px;
	width: 36px; height: 38px; font-size: 18px; line-height: 1; cursor: pointer; padding: 0;
}
.dragonfc-row-remove:hover { background: #fee; color: var(--dfc-red); border-color: var(--dfc-red); }

.dragonfc-notice { padding: 12px 16px; border-radius: 6px; margin: 16px auto; max-width: 760px; font-size: 14px; }
.dragonfc-notice-success { background: #e8f5e9; border-left: 4px solid var(--dfc-success); }
.dragonfc-notice-error   { background: #fdecea; border-left: 4px solid var(--dfc-red); }
.dragonfc-notice-info    { background: #e7f3ff; border-left: 4px solid var(--dfc-info); }

.description { font-size: 13px; color: var(--dfc-muted); margin-top: 4px; }

/* Inline help text under form fields */
.dfc-help {
	display: block;
	font-size: 12px;
	color: var(--dfc-muted);
	margin-top: 4px;
	line-height: 1.4;
}

/* Required-field marker */
.dfc-req { color: var(--dfc-red); font-weight: 700; margin-left: 2px; }

/* Headshot image preview */
.dfc-img-preview {
	margin-top: 12px;
	display: flex;
	align-items: center;
	gap: 12px;
}
.dfc-img-preview:empty { display: none; }
.dfc-img-preview img {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	border: 3px solid var(--dfc-border);
	object-fit: cover;
	box-shadow: 0 2px 8px rgba(20,20,30,0.08);
}
.dfc-img-preview-cap {
	font-size: 12px;
	color: var(--dfc-muted);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Drag-and-drop zone for invoices */
.dfc-dropzone {
	position: relative;
	border: 2px dashed var(--dfc-border);
	border-radius: 10px;
	padding: 26px 20px;
	text-align: center;
	background: #fafbfc;
	cursor: pointer;
	transition: border-color 0.15s, background 0.15s, transform 0.1s;
	margin-top: 5px;
}
.dfc-dropzone:hover {
	border-color: var(--dfc-red);
	background: #fff8f8;
}
.dfc-dropzone.is-dragover {
	border-color: var(--dfc-red);
	background: #ffeaea;
	transform: scale(1.01);
}
.dfc-dropzone.has-file {
	border-color: #1e8a4a;
	border-style: solid;
	background: #f0f9f3;
}
.dfc-dropzone input[type="file"] {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: 0 !important;
	overflow: hidden;
	clip: rect(0,0,0,0);
	border: 0;
	opacity: 0;
}
.dfc-dropzone-label {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	color: var(--dfc-muted);
	font-size: 14px;
	pointer-events: none;
}
.dfc-dropzone-label strong {
	color: var(--dfc-text);
	font-size: 15px;
}
.dfc-dropzone-label small { font-size: 12px; }
.dfc-dropzone-icon {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: #eef0f3;
	color: var(--dfc-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	font-weight: 700;
}
.dfc-dropzone.is-dragover .dfc-dropzone-icon {
	background: var(--dfc-red);
	color: #fff;
}
.dfc-dropzone-icon-ok {
	background: #1e8a4a !important;
	color: #fff !important;
}

/* File-input feedback (size check) */
.dfc-file-feedback {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	padding: 6px 10px;
	border-radius: 4px;
}
.dfc-file-ok    { color: #14572e; background: #e8f7ed; border-left: 3px solid #1e8a4a; }
.dfc-file-error { color: #6e1212; background: #fdecea; border-left: 3px solid #c8102e; }

/* Password match indicator states */
.dfc-pw-ok  { color: #1e8a4a; font-weight: 500; }
.dfc-pw-bad { color: #c8102e; font-weight: 500; }

/* Submit-button loading state */
.dfc-btn-loading,
.dragonfc-btn:disabled {
	opacity: 0.7;
	cursor: wait;
	pointer-events: none;
}
.dfc-btn-loading::after {
	content: '';
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-left: 8px;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	vertical-align: middle;
	animation: dfc-spin 0.6s linear infinite;
}
@keyframes dfc-spin {
	to { transform: rotate(360deg); }
}
