/*
 * Diet Militia Core — styles for the plugin's own output only (shortcodes + helper buttons).
 * Uses the theme's design tokens (BUILD-SPEC §2) with fallbacks, so it also works without the theme.
 */
/* ---- Type + primitives ------------------------------------------------ */
.dm-eyebrow {
	margin: 0 0 .8rem;
	font-family: var(--sans, "IBM Plex Sans", system-ui, sans-serif);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--rust, #9e4a2c);
}
.dm-h2 {
	margin: 0 0 1rem;
	font-family: var(--display, "Bebas Neue", Impact, sans-serif);
	font-size: clamp(1.9rem, 4vw, 2.8rem);
	font-weight: 400;
	line-height: 1;
	letter-spacing: .01em;
	color: var(--ink, #14110d);
}
.dm-lede {
	font-family: var(--serif, "Cormorant Garamond", Georgia, serif);
	font-size: 1.35rem;
	line-height: 1.35;
	margin: 0 0 1rem;
}
.dm-empty {
	color: var(--muted, #6b6356);
	font-style: italic;
}
.dm-panel {
	background: var(--cream, #f7f1e4);
	border: 1px solid var(--line, rgba(20, 17, 13, .14));
	padding: clamp(1.2rem, 3vw, 2rem);
	margin: 0 0 1.5rem;
}

.dm-btn,
.dm-form button[type="submit"],
.dm-form input[type="submit"],
.dm-login-form #wp-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	border: 0;
	border-radius: 0;
	cursor: pointer;
	text-decoration: none;
	font-family: var(--sans, "IBM Plex Sans", system-ui, sans-serif);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	padding: .95rem 1.3rem;
	background: var(--rust, #9e4a2c);
	color: var(--cream, #f7f1e4);
}
.dm-btn:hover,
.dm-form button[type="submit"]:hover,
.dm-login-form #wp-submit:hover {
	background: var(--rust-hot, #b95a35);
	color: var(--cream, #f7f1e4);
}
.dm-btn--ghost {
	background: transparent;
	color: var(--ink, #14110d);
	outline: 1px solid var(--ink, #14110d);
}
.dm-btn--ghost:hover {
	background: var(--ink, #14110d);
}
.dm-btn:focus-visible,
.dm-cookbook-btn:focus-visible,
.dm-vote-btn:focus-visible {
	outline: 2px solid var(--rust, #9e4a2c);
	outline-offset: 3px;
}

.dm-badge {
	display: inline-block;
	padding: .2rem .5rem;
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	background: var(--paper-2, #e4d8bf);
	color: var(--ink, #14110d);
}
.dm-badge--publish { background: var(--olive, #524f2b); color: var(--cream, #f7f1e4); }
.dm-badge--featured { background: var(--rust, #9e4a2c); color: var(--cream, #f7f1e4); }

.dm-stamp {
	display: inline-block;
	margin: 0 0 .6rem;
	padding: .25rem .6rem;
	border: 2px solid currentColor;
	font-family: var(--display, "Bebas Neue", Impact, sans-serif);
	font-size: 1.05rem;
	letter-spacing: .12em;
	transform: rotate(-2deg);
}
.dm-stamp--sometimes { color: var(--rust, #9e4a2c); }
.dm-stamp--everyday { color: var(--olive, #524f2b); }

.dm-notice {
	padding: .9rem 1rem;
	margin: 0 0 1.2rem;
	border-left: 4px solid var(--olive, #524f2b);
	background: var(--cream, #f7f1e4);
}
.dm-notice--error { border-left-color: var(--rust, #9e4a2c); }

/* ---- Cookbook button ---------------------------------------------------- */
.dm-cookbook-btn {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	padding: .7rem 1rem;
	border: 1px solid var(--ink, #14110d);
	border-radius: 0;
	background: transparent;
	color: var(--ink, #14110d);
	font-family: var(--sans, "IBM Plex Sans", system-ui, sans-serif);
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
}
.dm-cookbook-btn:hover { background: var(--paper-2, #e4d8bf); }
.dm-cookbook-btn.is-saved {
	background: var(--olive-deep, #35331c);
	border-color: var(--olive-deep, #35331c);
	color: var(--cream, #f7f1e4);
}
.dm-cookbook-btn[disabled] { opacity: .6; cursor: progress; }
.dm-cookbook-btn__icon { font-size: 1rem; line-height: 1; }
.dm-cookbook-btn--small { padding: .45rem .7rem; font-size: .68rem; }

/* ---- Cards ---------------------------------------------------------------- */
.dm-card-list {
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 1.2rem;
}
.dm-mini-card {
	margin: 0;
	background: var(--cream, #f7f1e4);
	border: 1px solid var(--line, rgba(20, 17, 13, .14));
	display: flex;
	flex-direction: column;
	gap: .6rem;
	padding: 0 0 .9rem;
}
.dm-mini-card > a { color: inherit; text-decoration: none; display: block; }
.dm-mini-card__img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 11;
	object-fit: cover;
	background: var(--paper-2, #e4d8bf);
}
.dm-mini-card__title {
	display: block;
	padding: .7rem .9rem 0;
	font-family: var(--serif, "Cormorant Garamond", Georgia, serif);
	font-size: 1.2rem;
	font-weight: 600;
	line-height: 1.2;
}
.dm-mini-card__note { margin: 0; padding: 0 .9rem; font-size: .9rem; color: var(--muted, #6b6356); }
.dm-mini-card .dm-cookbook-btn { margin: 0 .9rem; align-self: flex-start; }

.dm-submissions { list-style: none; margin: 0 0 1.2rem; padding: 0; }
.dm-submissions__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .6rem;
	padding: .7rem 0;
	border-bottom: 1px solid var(--line, rgba(20, 17, 13, .14));
}

/* ---- Characters ------------------------------------------------------------ */
.dm-character-head { margin: 0 0 1.5rem; }
.dm-character-head__portrait { width: 120px; height: 120px; border-radius: 50%; display: block; margin: 0 0 .8rem; }
.dm-character-head__tagline {
	font-family: var(--serif, "Cormorant Garamond", Georgia, serif);
	font-style: italic;
	font-size: 1.4rem;
	margin: 0;
}
.dm-character-hub { margin: 2.5rem 0 0; }
.dm-tips {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1rem;
	margin: 0 0 2.5rem;
}
.dm-tip {
	background: var(--cream, #f7f1e4);
	border-top: 3px solid var(--olive, #524f2b);
	padding: 1rem 1.1rem;
}
.dm-tip__label {
	margin: 0 0 .5rem;
	font-family: var(--display, "Bebas Neue", Impact, sans-serif);
	font-size: 1.35rem;
	font-weight: 400;
	letter-spacing: .05em;
	color: var(--rust, #9e4a2c);
}
.dm-tip__q { margin: 0 0 .3rem; font-weight: 600; }
.dm-tip__text { margin: 0 0 .6rem; line-height: 1.55; }

/* ---- Field Guide ([dm_field_guide]) ------------------------------------------- */
.dm-pairing { margin: 0 0 2.5rem; }
.dm-pairing__tab {
	font-family: var(--display, "Bebas Neue", Impact, sans-serif);
	font-weight: 400;
	font-size: 1.8rem;
	margin: 0 0 .8rem;
}
.dm-pairing__cols { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 720px) {
	.dm-pairing__cols { grid-template-columns: 1fr 1fr; }
}
.dm-pairing__side { background: var(--cream, #f7f1e4); border: 1px solid var(--line, rgba(20, 17, 13, .14)); padding: 1.2rem; }
.dm-pairing__side--everyday { background: var(--olive-deep, #35331c); color: var(--cream, #f7f1e4); }
.dm-pairing__side--everyday .dm-stamp { color: var(--paper, #efe6d4); }
.dm-pairing__img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; margin: 0 0 1rem; }
.dm-pairing__title { font-family: var(--serif, "Cormorant Garamond", Georgia, serif); font-size: 1.6rem; margin: 0 0 .6rem; }
.dm-pairing__points { margin: 0 0 .8rem; padding-left: 1.1rem; }
.dm-pairing__verdict { font-family: var(--serif, "Cormorant Garamond", Georgia, serif); font-style: italic; font-size: 1.15rem; margin: 0 0 1rem; }

/* ---- Forms -------------------------------------------------------------------- */
.dm-form { display: grid; gap: 1.1rem; max-width: 760px; }
.dm-form label,
.dm-form legend,
.dm-login-form label {
	display: block;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	margin: 0 0 .35rem;
}
.dm-form input[type="text"],
.dm-form input[type="email"],
.dm-form input[type="password"],
.dm-form input[type="url"],
.dm-form select,
.dm-form textarea,
.dm-login-form input[type="text"],
.dm-login-form input[type="password"] {
	width: 100%;
	padding: .75rem .85rem;
	border: 1px solid var(--line, rgba(20, 17, 13, .14));
	border-radius: 0;
	background: #fff;
	color: var(--ink, #14110d);
	font: inherit;
	font-family: var(--sans, "IBM Plex Sans", system-ui, sans-serif);
}
.dm-form input:focus,
.dm-form select:focus,
.dm-form textarea:focus,
.dm-login-form input:focus {
	outline: 2px solid var(--olive, #524f2b);
	outline-offset: 1px;
}
.dm-form fieldset { border: 0; padding: 0; margin: 0; }
.dm-form .dm-choice { display: inline-flex; align-items: center; gap: .4rem; margin: 0 1.2rem .3rem 0; font-weight: 400; text-transform: none; letter-spacing: 0; font-size: 1rem; }
.dm-form .dm-help { font-size: .85rem; color: var(--muted, #6b6356); margin: .3rem 0 0; }
.dm-form .dm-row-2 { display: grid; gap: 1.1rem; }
@media (min-width: 640px) {
	.dm-form .dm-row-2 { grid-template-columns: 1fr 1fr; }
}
.dm-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.dm-login-form p { margin: 0 0 1rem; }
.dm-login-form .login-remember label { text-transform: none; letter-spacing: 0; font-weight: 400; font-size: .95rem; }
.dm-account-links { font-size: .9rem; }
.dm-account-links a { color: var(--rust, #9e4a2c); }

/* ---- Mission ([dm_mission]) ------------------------------------------------------ */
.dm-mission {
	background: var(--olive-deep, #35331c);
	color: var(--cream, #f7f1e4);
	padding: clamp(1.4rem, 4vw, 2.6rem);
	margin: 0 0 2rem;
}
.dm-mission .dm-eyebrow { color: var(--rust-hot, #b95a35); }
.dm-mission .dm-h2 { color: var(--cream, #f7f1e4); }
.dm-mission a { color: var(--cream, #f7f1e4); }
.dm-mission__status { margin: 0 0 1.2rem; font-size: .9rem; opacity: .85; }
.dm-mission__list {
	list-style: none;
	margin: 0 0 1.2rem;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
	gap: 1rem;
}
.dm-mission__item { background: rgba(247, 241, 228, .06); border: 1px solid rgba(247, 241, 228, .18); display: flex; flex-direction: column; }
.dm-mission__item.is-winner { border-color: var(--rust-hot, #b95a35); box-shadow: 0 0 0 2px var(--rust-hot, #b95a35); }
.dm-mission__item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.dm-mission__item-title { padding: .7rem .8rem .3rem; font-family: var(--serif, "Cormorant Garamond", Georgia, serif); font-size: 1.1rem; line-height: 1.2; }
.dm-mission__votes { padding: 0 .8rem .6rem; font-size: .8rem; opacity: .8; }
.dm-vote-btn {
	margin: auto .8rem .8rem;
	padding: .5rem .8rem;
	border: 1px solid var(--cream, #f7f1e4);
	background: transparent;
	color: var(--cream, #f7f1e4);
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	cursor: pointer;
}
.dm-vote-btn.is-voted { background: var(--rust, #9e4a2c); border-color: var(--rust, #9e4a2c); }
.dm-mission__steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .8rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.dm-mission__steps li { border-top: 2px solid var(--rust-hot, #b95a35); padding-top: .5rem; font-size: .92rem; }
.dm-mission__steps strong { display: block; font-family: var(--display, "Bebas Neue", Impact, sans-serif); font-weight: 400; font-size: 1.3rem; letter-spacing: .05em; }
.dm-mission-photo { margin: .8rem 0 0; }
.dm-mission-photo img { max-width: 100%; height: auto; display: block; }

/* Enlist / contact forms (0.8.0) */
.dm-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.dm-field { display: flex; flex-direction: column; gap: .35rem; margin: 0 0 1rem; }
.dm-field label { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--muted, #6b6356); }
.dm-field input, .dm-field textarea { font: inherit; padding: .85rem 1rem; border: 1px solid var(--line, rgba(20,17,13,.14)); background: var(--cream, #f7f1e4); color: var(--ink, #14110d); }
.dm-field input:focus, .dm-field textarea:focus { outline: 2px solid var(--rust, #9e4a2c); outline-offset: 1px; }
.dm-field--inline { flex-direction: row; flex-wrap: wrap; gap: .5rem; }
.dm-field--inline input { flex: 1 1 240px; }
.dm-contact { max-width: 40rem; }
.dm-notice--ok { border-left-color: var(--olive, #524f2b); }
