/* ============================================================
   NutraMEA — Community UI
   Accounts, profile editors, organization directory.
   Uses the theme's existing design tokens (style.css :root).
   ============================================================ */

/* ---------- Layout shell ---------- */
.container--narrow{max-width:760px;margin-inline:auto}

.nm-account{padding-block:56px 72px}
.nm-account__head{margin-bottom:28px}
.nm-account__head h1{margin:.2em 0 .3em;font-family:var(--font-display);line-height:1.15}
.nm-account__sub{color:var(--muted);max-width:52ch}

/* ---------- Card ---------- */
.nm-card{
	background:var(--paper);
	border:1px solid var(--line);
	border-radius:14px;
	padding:28px;
	margin-bottom:22px;
}
.nm-card--tight{padding:20px;margin-bottom:16px}
.nm-card h3{margin-top:0;font-family:var(--font-display);font-size:1.05rem}

/* ---------- Notices ---------- */
.nm-notice{
	border-radius:12px;
	padding:16px 18px;
	margin-bottom:20px;
	border:1px solid var(--line);
	font-size:.95rem;
	line-height:1.55;
}
.nm-notice p{margin:.5em 0}
.nm-notice--success{background:#F1F8E9;border-color:#C5E1A5;color:#33691E}
.nm-notice--error{background:#FDECEA;border-color:#F5C6C2;color:#B71C1C}
.nm-notice--info{background:#F2F3EE;border-color:var(--line);color:var(--ink)}

/* ---------- Forms ---------- */
.nm-form{display:block}
.nm-form__section{
	font-family:var(--font-display);
	font-size:1rem;
	letter-spacing:.02em;
	text-transform:uppercase;
	color:var(--muted);
	margin:32px 0 14px;
	padding-bottom:8px;
	border-bottom:1px solid var(--line);
}
.nm-form__section:first-of-type{margin-top:0}

.nm-field{margin-bottom:18px}
.nm-field label,
.nm-field__legend{
	display:block;
	font-weight:600;
	font-size:.92rem;
	margin-bottom:6px;
	color:var(--ink);
}
.nm-req{color:var(--green-deep);margin-left:2px}

.nm-field input[type="text"],
.nm-field input[type="email"],
.nm-field input[type="password"],
.nm-field input[type="url"],
.nm-field input[type="date"],
.nm-field input[type="search"],
.nm-field select,
.nm-field textarea{
	width:100%;
	padding:11px 13px;
	border:1px solid var(--line);
	border-radius:10px;
	background:#fff;
	font-family:var(--font-body);
	font-size:.95rem;
	color:var(--ink);
	transition:border-color .15s ease, box-shadow .15s ease;
}
.nm-field input:focus,
.nm-field select:focus,
.nm-field textarea:focus{
	outline:none;
	border-color:var(--green);
	box-shadow:0 0 0 3px rgba(132,195,65,.18);
}
.nm-field textarea{resize:vertical;min-height:96px}
.nm-field input[type="file"]{font-size:.9rem}

.nm-help{font-size:.83rem;color:var(--muted);margin:6px 0 0;line-height:1.5}
.nm-help--boxed{
	background:var(--paper-2);
	border-radius:10px;
	padding:12px 14px;
	margin:18px 0;
}

.nm-row{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.nm-row--3-1{grid-template-columns:3fr 1fr}
.nm-field--inline{display:flex;align-items:center;justify-content:space-between;gap:12px}

/* Honeypot — hidden from humans, visible to bots. */
.nm-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}

/* ---------- Checks & radios ---------- */
.nm-checks{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
	gap:8px 14px;
	margin-top:4px;
}
.nm-check{
	display:flex;
	align-items:flex-start;
	gap:8px;
	font-weight:400!important;
	font-size:.9rem;
	line-height:1.45;
	cursor:pointer;
	margin-bottom:0!important;
}
.nm-check input{margin-top:3px;flex:0 0 auto;accent-color:var(--green-deep)}

.nm-radio-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.nm-radio-card{
	position:relative;
	border:1px solid var(--line);
	border-radius:12px;
	padding:14px 16px;
	cursor:pointer;
	display:block;
	font-weight:400!important;
	transition:border-color .15s ease, background .15s ease;
}
.nm-radio-card:hover{border-color:var(--green)}
.nm-radio-card input{position:absolute;opacity:0}
.nm-radio-card input:checked + .nm-radio-card__body{color:var(--ink)}
.nm-radio-card:has(input:checked){border-color:var(--green);background:#F6FBEF}
.nm-radio-card__body strong{display:block;font-family:var(--font-display);margin-bottom:3px}
.nm-radio-card__body small{color:var(--muted);font-size:.83rem;line-height:1.45;display:block}

/* ---------- Buttons ---------- */
.nm-btn-block{width:100%;justify-content:center;margin-top:10px}
.btn--sm{padding:8px 14px;font-size:.87rem}
.nm-inline-form{display:inline}

.nm-textlink{
	color:var(--green-deep);
	text-decoration:underline;
	text-underline-offset:3px;
	background:none;
	border:0;
	padding:0;
	font:inherit;
	cursor:pointer;
}
.nm-textlink--quiet{color:var(--muted);font-size:.85rem}
.nm-textlink:hover{color:var(--ink)}

.nm-alt-action{margin:18px 0 0;text-align:center;font-size:.92rem;color:var(--muted)}
.nm-signout{text-align:center;margin-top:26px}

/* ---------- Pills ---------- */
.nm-pill{
	display:inline-block;
	padding:3px 10px;
	border-radius:999px;
	font-size:.76rem;
	font-weight:600;
	letter-spacing:.02em;
	font-family:var(--font-mono);
}
.nm-pill--ok{background:#E8F5E9;color:#2E7D32}
.nm-pill--warn{background:#FFF4E5;color:#E65100}
.nm-pill--muted{background:var(--paper-3);color:var(--muted)}
.nm-pill--xs{font-size:.68rem;padding:2px 7px}
.nm-pill-note{font-size:.8rem;color:var(--muted);margin-left:6px}

/* ---------- Dashboard ---------- */
.nm-dash-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
	gap:18px;
	margin-bottom:22px;
}
.nm-dash-card{margin-bottom:0;display:flex;flex-direction:column}
.nm-dash-card h3{margin:.5em 0 .35em;font-size:1.1rem}
.nm-dash-status{margin:0 0 14px}
.nm-dash-empty{color:var(--muted);font-size:.92rem;line-height:1.55;flex:1}
.nm-dash-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:auto;padding-top:12px}

.nm-post-list{list-style:none;margin:12px 0 0;padding:0}
.nm-post-list__item{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:14px;
	padding:12px 0;
	border-bottom:1px solid var(--line);
}
.nm-post-list__item:last-child{border-bottom:0}
.nm-post-list__item small{display:block;color:var(--muted);font-size:.82rem;margin-top:2px}

.nm-profile-state{margin:-10px 0 18px}
.nm-current-photo{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.nm-current-photo img{border-radius:10px}

/* ---------- Tabs ---------- */
.nm-tabs{display:flex;gap:6px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.nm-tab{
	padding:10px 16px;
	font-weight:600;
	font-size:.92rem;
	color:var(--muted);
	text-decoration:none;
	border-bottom:2px solid transparent;
	margin-bottom:-1px;
}
.nm-tab.is-active{color:var(--ink);border-bottom-color:var(--green)}

/* ---------- Organizations ---------- */
.org-hero{background:var(--panel-dark)}
.org-card__logo img{object-fit:contain;background:#fff}

.org-filters{flex-wrap:wrap}

.org-single__head{padding-bottom:0}
.org-single__identity{
	display:flex;
	gap:24px;
	align-items:flex-start;
	flex-wrap:wrap;
}
.org-single__logo{
	width:110px;height:110px;
	flex:0 0 110px;
	border-radius:14px;
	border:1px solid var(--line);
	background:#fff;
	display:grid;place-items:center;
	overflow:hidden;
}
.org-single__logo img{width:100%;height:100%;object-fit:contain}
.org-single__titles{flex:1;min-width:240px}
.org-single__titles h1{margin:.15em 0 .2em;font-family:var(--font-display);line-height:1.12}
.org-single__legal{color:var(--muted);font-size:.92rem;margin:0 0 .4em}
.org-single__facts{color:var(--muted);font-size:.9rem;margin:0 0 .6em}
.org-single__edit{flex:0 0 auto}

.org-single__grid{
	display:grid;
	grid-template-columns:minmax(0,2fr) minmax(260px,1fr);
	gap:36px;
	align-items:start;
}
.org-single__main h2{
	font-family:var(--font-display);
	font-size:1.15rem;
	margin:28px 0 12px;
}
.org-single__main h2:first-child{margin-top:0}
.org-single__prose{line-height:1.7}

.nm-taglist{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0}
.nm-taglist li{
	background:var(--paper-2);
	border:1px solid var(--line);
	border-radius:999px;
	padding:5px 12px;
	font-size:.84rem;
}

.org-facts{margin:0}
.org-facts dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-top:12px}
.org-facts dt:first-child{margin-top:0}
.org-facts dd{margin:3px 0 0;font-size:.92rem;line-height:1.5}

.org-contact{list-style:none;padding:0;margin:0 0 14px}
.org-contact li{padding:5px 0;font-size:.92rem;word-break:break-word}
.org-contact__person{margin:0 0 10px;line-height:1.4}

/* ---------- Responsive ---------- */
@media (max-width:860px){
	.org-single__grid{grid-template-columns:1fr;gap:26px}
}

@media (max-width:640px){
	.nm-row,
	.nm-row--3-1,
	.nm-radio-cards{grid-template-columns:1fr;gap:0}
	.nm-card{padding:20px}
	.nm-account{padding-block:36px 52px}
	.nm-checks{grid-template-columns:1fr}
	.org-single__logo{width:84px;height:84px;flex-basis:84px}
	.nm-post-list__item{flex-direction:column;align-items:flex-start;gap:6px}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
	.nm-field input,.nm-field select,.nm-field textarea,.nm-radio-card{transition:none}
}
