.nfs-gate {
	max-width: 480px;
	margin: 60px auto;
	text-align: center;
}
.nfs-gate h2 { font-size: 24px; margin-bottom: 10px; }
.nfs-gate p { color: var(--nf-text-dim, #a7a7b0); margin-bottom: 24px; }
.nfs-gate-actions { display: flex; justify-content: center; gap: 12px; }

.nfs-dashboard { max-width: 720px; margin: 0 auto; padding: 20px 0; }

.nfs-notice {
	padding: 12px 16px;
	border-radius: 12px;
	margin-bottom: 20px;
	font-size: 14px;
}
.nfs-notice-success { background: rgba(60, 200, 120, 0.15); border: 1px solid rgba(60,200,120,0.4); color: #a6f0c6; }
.nfs-notice-error { background: rgba(220, 60, 60, 0.15); border: 1px solid rgba(220,60,60,0.4); color: #ffb3b3; }
.nfs-notice-error ul { margin: 0; padding-left: 18px; }
.nfs-notice-warn { background: rgba(255,190,80,0.12); border: 1px solid rgba(255,190,80,0.4); color: #ffd28a; }

.nfs-benchmarks {
	background: rgba(255,255,255,0.05);
	border: 1px solid rgba(255,255,255,0.1);
	border-radius: 16px;
	padding: 16px 20px;
	margin-bottom: 18px;
	font-size: 13px;
	color: #cfcfd6;
}
.nfs-benchmarks ul { margin: 8px 0; padding-left: 20px; }
.nfs-benchmarks-note { margin: 8px 0 0; color: #a7a7b0; }

.nfs-checklist { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.nfs-checklist li { font-size: 13px; }
.nfs-checklist li.is-pass { color: #a6f0c6; }
.nfs-checklist li.is-fail { color: #ffb3b3; }

.nfs-score-panel {
	position: sticky;
	bottom: 10px;
	background: #14151b;
	border: 1px solid rgba(255,255,255,0.14);
	border-radius: 16px;
	padding: 16px 18px;
}
.nfs-score-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.nfs-score-label { font-size: 13px; font-weight: 600; color: #cfcfd6; }
.nfs-score-value { font-size: 15px; font-weight: 700; }
.nfs-score-bar { height: 8px; border-radius: 999px; background: rgba(255,255,255,0.1); overflow: hidden; margin-bottom: 10px; }
.nfs-score-fill { height: 100%; width: 0%; background: #f0575c; transition: width 0.3s ease, background 0.3s ease; }
.nfs-score-hint { font-size: 11px; color: #7d7d86; margin: 8px 0 0; }
.nfs-existing-image { display: block; font-size: 12px; color: #a7a7b0; font-weight: 400; margin-bottom: 4px; }
.nfs-row-link { font-size: 13px; text-decoration: underline; }

.nfs-tabs { display: flex; gap: 8px; margin-bottom: 20px; }
.nfs-tab-btn {
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,255,255,0.1);
	color: #a7a7b0;
	padding: 9px 18px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 600;
}
.nfs-tab-btn.is-active { background: #fff; color: #111; border-color: #fff; }

.nfs-tab-panel { display: none; }
.nfs-tab-panel.is-active { display: block; }

.nfs-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
	background: rgba(255,255,255,0.05);
	border: 1px solid rgba(255,255,255,0.1);
	border-radius: 20px;
	padding: 24px;
}
.nfs-form label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13px;
	font-weight: 600;
	color: #cfcfd6;
}
.nfs-form input[type="text"],
.nfs-form input[type="file"],
.nfs-form select,
.nfs-form textarea {
	background: rgba(0,0,0,0.3);
	border: 1px solid rgba(255,255,255,0.12);
	border-radius: 10px;
	padding: 10px 12px;
	color: #f2f2f4;
	font-size: 14px;
	font-family: inherit;
	resize: vertical;
}
.nfs-form textarea:focus,
.nfs-form input:focus,
.nfs-form select:focus {
	outline: none;
	border-color: rgba(255,255,255,0.4);
}
.nfs-form-note { font-size: 12px; color: #a7a7b0; margin: 0; }

.nfs-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.nfs-table th, .nfs-table td { text-align: left; padding: 12px 10px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.nfs-table th { color: #a7a7b0; font-weight: 600; font-size: 12px; text-transform: uppercase; }

.nfs-status { padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.nfs-status-publish { background: rgba(60,200,120,0.15); color: #a6f0c6; }
.nfs-status-draft { background: rgba(255,190,80,0.15); color: #ffd28a; }

.nfs-empty { color: #a7a7b0; text-align: center; padding: 30px 0; }
