/* ==========================================================================
   Naughty Butter — Base
   轻度排版优化 + 可选工具类。作用域限定在 .nb-theme 下，不影响 admin / editor。
   ========================================================================== */

/* ---------- 1. 基础排版（限定 body 作用域） ---------------------------- */

body.nb-theme {
	font-family: var(--nb-font-sans);
	background-color: var(--nb-brand-cream);
	color: var(--nb-brand-cocoa);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	line-height: 1.7;
}

body.nb-theme h1,
body.nb-theme h2,
body.nb-theme h3,
body.nb-theme h4,
body.nb-theme h5,
body.nb-theme h6 {
	font-family: var(--nb-font-sans);
	color: var(--nb-brand-espresso);
	line-height: 1.3;
	letter-spacing: -0.01em;
}

body.nb-theme a {
	color: var(--nb-brand-cocoa);
	transition: color var(--nb-duration-fast) var(--nb-easing-default);
}
body.nb-theme a:hover {
	color: var(--nb-brand-warm);
}

/* ---------- 2. 工具类：品牌字体 --------------------------------------- */

.nb-font-feature { font-family: var(--nb-font-feature); font-weight: 400; }
.nb-font-sans    { font-family: var(--nb-font-sans); }

/* ---------- 3. 工具类：按钮 ------------------------------------------- */

.nb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--nb-space-sm);
	padding: var(--nb-space-sm) var(--nb-space-lg);
	border-radius: var(--nb-radius-sm);
	font-family: var(--nb-font-sans);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.01em;
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition:
		background-color var(--nb-duration-fast) var(--nb-easing-default),
		box-shadow var(--nb-duration-fast) var(--nb-easing-default),
		transform var(--nb-duration-fast) var(--nb-easing-default);
}

.nb-btn-primary {
	background-color: var(--nb-brand-warm);
	color: var(--nb-neutral-white);
}
.nb-btn-primary:hover {
	background-color: var(--nb-brand-cocoa);
	box-shadow: var(--nb-shadow-soft);
	color: var(--nb-neutral-white);
}

.nb-btn-secondary {
	background-color: transparent;
	color: var(--nb-brand-cocoa);
	border-color: var(--nb-border-light);
}
.nb-btn-secondary:hover {
	border-color: var(--nb-brand-warm);
	box-shadow: var(--nb-shadow-soft);
}

.nb-btn-ghost {
	background-color: transparent;
	color: var(--nb-brand-cocoa);
	padding-left: 0;
	padding-right: 0;
}
.nb-btn-ghost:hover {
	color: var(--nb-brand-warm);
}

.nb-btn:active           { transform: scale(0.98); }
.nb-btn[disabled],
.nb-btn.is-disabled      { opacity: 0.4; pointer-events: none; }

/* ---------- 4. 工具类：卡片 ------------------------------------------- */

.nb-card {
	background-color: var(--nb-neutral-white);
	border: 1px solid var(--nb-border-light);
	border-radius: var(--nb-radius-md);
	padding: var(--nb-space-lg);
	transition: box-shadow var(--nb-duration-normal) var(--nb-easing-default);
}
.nb-card:hover { box-shadow: var(--nb-shadow-soft); }

/* ---------- 5. 工具类：标签 ------------------------------------------- */

.nb-tag {
	display: inline-block;
	padding: var(--nb-space-xs) var(--nb-space-sm);
	border-radius: var(--nb-radius-sm);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	background-color: var(--nb-brand-butter);
	color: var(--nb-brand-cocoa);
}
.nb-tag-highlight { background-color: var(--nb-accent-blush); color: var(--nb-brand-espresso); }
.nb-tag-fresh     { background-color: var(--nb-accent-sage);  color: var(--nb-brand-espresso); }

/* ---------- 6. 工具类：输入框 ----------------------------------------- */

.nb-input {
	width: 100%;
	padding: var(--nb-space-sm) var(--nb-space-md);
	background-color: var(--nb-neutral-white);
	border: 1px solid var(--nb-border-light);
	border-radius: var(--nb-radius-md);
	color: var(--nb-brand-cocoa);
	font-family: var(--nb-font-sans);
	font-size: 15px;
	transition: border-color var(--nb-duration-fast) var(--nb-easing-default);
}
.nb-input::placeholder { color: var(--nb-neutral-grey); }
.nb-input:focus        { outline: none; border-color: var(--nb-brand-warm); }

/* ---------- 7. 留白 / 间距辅助 ---------------------------------------- */

.nb-section { padding-block: var(--nb-space-2xl); }
.nb-stack-sm > * + * { margin-top: var(--nb-space-sm); }
.nb-stack-md > * + * { margin-top: var(--nb-space-md); }
.nb-stack-lg > * + * { margin-top: var(--nb-space-lg); }
