/* NextFone Reseller Fulfilment — shared component styles (front end + wp-admin). */
.nfrf {
	--nf-ink: #101828;
	--nf-ink-2: #344054;
	--nf-muted: #667085;
	--nf-line: #e4e7ec;
	--nf-line-2: #d0d5dd;
	--nf-bg: #f5f7fa;
	--nf-surface: #ffffff;
	--nf-brand: #0d5c63;
	--nf-brand-2: #0a4a50;
	--nf-brand-tint: #e6f2f2;
	--nf-accent: #f59e0b;
	--nf-green: #067647;
	--nf-green-bg: #ecfdf3;
	--nf-blue: #175cd3;
	--nf-blue-bg: #eff8ff;
	--nf-amber: #b54708;
	--nf-amber-bg: #fffaeb;
	--nf-orange: #c4320a;
	--nf-orange-bg: #fff4ed;
	--nf-red: #b42318;
	--nf-red-bg: #fef3f2;
	--nf-grey: #475467;
	--nf-grey-bg: #f2f4f7;
	--nf-radius: 12px;
	--nf-radius-sm: 8px;
	--nf-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);
	--nf-font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--nf-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
	font-family: var(--nf-font);
	color: var(--nf-ink);
	font-size: 15px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}
.nfrf *, .nfrf *::before, .nfrf *::after { box-sizing: border-box; }
.nfrf a { color: var(--nf-brand); text-decoration: none; }
.nfrf a:hover { text-decoration: underline; }
.nfrf :focus-visible { outline: 3px solid color-mix(in srgb, var(--nf-brand) 45%, transparent); outline-offset: 2px; border-radius: 4px; }
.nfrf img { max-width: 100%; height: auto; }
.nfrf h1, .nfrf h2, .nfrf h3 { color: var(--nf-ink); font-family: var(--nf-font); letter-spacing: -0.015em; margin: 0 0 .5em; line-height: 1.2; }
.nfrf .nfrf-h2 { font-size: 1.5rem; font-weight: 700; }
.nfrf .nfrf-h3 { font-size: 1.05rem; font-weight: 650; }
.nfrf p { margin: 0 0 .9em; }
.nfrf-muted { color: var(--nf-muted); }
.nfrf-small { font-size: .85em; }
.nfrf-mono { font-family: var(--nf-mono); font-size: .92em; }
.nfrf-neg { color: var(--nf-red); }
.nfrf-pos { color: var(--nf-green); }
.nfrf-empty { color: var(--nf-muted); padding: 1.5rem; text-align: center; }
.nfrf-hp { position: absolute !important; left: -9999px !important; height: 1px; overflow: hidden; }
.nfrf .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Buttons */
.nfrf .nfrf-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .4em;
	padding: .62em 1.15em; border-radius: var(--nf-radius-sm);
	background: var(--nf-brand); color: #fff; border: 1px solid var(--nf-brand);
	font: 600 .95rem/1.2 var(--nf-font); cursor: pointer; text-decoration: none; white-space: nowrap;
	transition: background .15s, border-color .15s, box-shadow .15s, transform .05s;
	box-shadow: 0 1px 2px rgba(16, 24, 40, .08);
	min-height: 40px;
}
.nfrf .nfrf-btn:hover { background: var(--nf-brand-2); border-color: var(--nf-brand-2); color: #fff; text-decoration: none; }
.nfrf .nfrf-btn:active { transform: translateY(1px); }
.nfrf .nfrf-btn[disabled] { opacity: .5; cursor: not-allowed; }
.nfrf .nfrf-btn--ghost { background: var(--nf-surface); color: var(--nf-ink-2); border-color: var(--nf-line-2); }
.nfrf .nfrf-btn--ghost:hover { background: var(--nf-grey-bg); color: var(--nf-ink); border-color: var(--nf-line-2); }
.nfrf .nfrf-btn--danger { background: var(--nf-surface); color: var(--nf-red); border-color: #fda29b; }
.nfrf .nfrf-btn--danger:hover { background: var(--nf-red-bg); color: var(--nf-red); border-color: var(--nf-red); }
.nfrf .nfrf-btn--go { background: var(--nf-green); border-color: var(--nf-green); }
.nfrf .nfrf-btn--go:hover { background: #05603a; border-color: #05603a; }
.nfrf .nfrf-btn--sm { padding: .38em .8em; font-size: .85rem; min-height: 32px; }
.nfrf .nfrf-btn--lg { padding: .8em 1.4em; font-size: 1rem; min-height: 48px; }
.nfrf .nfrf-btn--xl { padding: 1em 1.6em; font-size: 1.15rem; min-height: 56px; width: 100%; letter-spacing: .02em; }

/* Cards & layout */
.nfrf-card { background: var(--nf-surface); border: 1px solid var(--nf-line); border-radius: var(--nf-radius); box-shadow: var(--nf-shadow); margin-bottom: 1.25rem; }
.nfrf-pad { padding: 1.25rem 1.4rem; }
.nfrf-split { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; align-items: start; }
@media (min-width: 900px) {
	.nfrf-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.nfrf-split--wide { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); }
}
.nfrf-section__head { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: space-between; margin-bottom: .75rem; }
.nfrf-actions, .nfrf-inline { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: 1rem 0; }
.nfrf-inline { margin: 0; }
.nfrf-inline form { margin: 0; }

/* Alerts */
.nfrf-alert { padding: .85rem 1rem; border-radius: var(--nf-radius-sm); margin: 0 0 1rem; border: 1px solid; font-size: .95rem; }
.nfrf-alert--success { background: var(--nf-green-bg); border-color: #abefc6; color: #05603a; }
.nfrf-alert--error { background: var(--nf-red-bg); border-color: #fecdca; color: var(--nf-red); }
.nfrf-alert--info { background: var(--nf-blue-bg); border-color: #b2ddff; color: #194185; }
.nfrf-alert[hidden] { display: none; }

/* Badges */
.nfrf-badge { display: inline-flex; align-items: center; gap: .3em; padding: .15em .6em; border-radius: 999px; font-size: .76rem; font-weight: 600; line-height: 1.5; white-space: nowrap; border: 1px solid transparent; }
.nfrf-badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .8; }
.nfrf-badge--green { background: var(--nf-green-bg); color: var(--nf-green); border-color: #abefc6; }
.nfrf-badge--blue { background: var(--nf-blue-bg); color: var(--nf-blue); border-color: #b2ddff; }
.nfrf-badge--amber { background: var(--nf-amber-bg); color: var(--nf-amber); border-color: #fedf89; }
.nfrf-badge--orange { background: var(--nf-orange-bg); color: var(--nf-orange); border-color: #f9dbaf; }
.nfrf-badge--red { background: var(--nf-red-bg); color: var(--nf-red); border-color: #fecdca; }
.nfrf-badge--grey { background: var(--nf-grey-bg); color: var(--nf-grey); border-color: var(--nf-line); }
.nfrf-count { display: inline-block; min-width: 1.4em; padding: 0 .4em; border-radius: 999px; background: var(--nf-accent); color: #111; font-size: .75em; font-weight: 700; text-align: center; }

/* Tables */
.nfrf-table-wrap { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.nfrf-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.nfrf-table th, .nfrf-table td { padding: .7rem .85rem; border-bottom: 1px solid var(--nf-line); text-align: left; vertical-align: top; }
.nfrf-table thead th { background: #f9fafb; color: var(--nf-muted); font-weight: 600; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.nfrf-table tbody tr:hover { background: #fafbfc; }
.nfrf-table tr.is-current { background: var(--nf-brand-tint); }
.nfrf-table tfoot th, .nfrf-table tfoot td { border-bottom: 0; }
.nfrf-table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.nfrf-table--compact th, .nfrf-table--compact td { padding: .45rem .6rem; }
.nfrf-td-thumb { width: 52px; }
.nfrf-td-actions { white-space: nowrap; }
.nfrf-td-actions form { display: inline-block; margin: 0 .2rem .2rem 0; }
.nfrf-thumb { width: 44px; height: 44px; object-fit: cover; border-radius: 8px; border: 1px solid var(--nf-line); display: inline-flex; align-items: center; justify-content: center; background: var(--nf-grey-bg); color: #98a2b3; }

/* Forms */
.nfrf-form p { margin: 0 0 1rem; }
.nfrf-form label, .nfrf .nfrf-label { display: block; font-weight: 600; font-size: .88rem; color: var(--nf-ink-2); margin-bottom: .35rem; }
.nfrf-form small { display: block; color: var(--nf-muted); margin-top: .3rem; font-size: .8rem; }
.nfrf input[type=text], .nfrf input[type=email], .nfrf input[type=password], .nfrf input[type=number], .nfrf input[type=url], .nfrf input[type=search], .nfrf input[type=tel], .nfrf input[type=date], .nfrf input:not([type]), .nfrf select, .nfrf textarea {
	width: 100%; max-width: 100%; padding: .6em .8em; min-height: 42px;
	border: 1px solid var(--nf-line-2); border-radius: var(--nf-radius-sm); background: #fff;
	font: 400 .95rem/1.4 var(--nf-font); color: var(--nf-ink);
	box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}
.nfrf textarea { min-height: 90px; }
.nfrf input:focus, .nfrf select:focus, .nfrf textarea:focus { border-color: var(--nf-brand); outline: 3px solid color-mix(in srgb, var(--nf-brand) 18%, transparent); outline-offset: 0; }
.nfrf input[readonly] { background: var(--nf-grey-bg); }
.nfrf input[type=file] { padding: .4em; border: 1px dashed var(--nf-line-2); border-radius: var(--nf-radius-sm); width: 100%; background: #fcfcfd; }
.nfrf fieldset { border: 0; padding: 0; margin: 0 0 1.5rem; }
.nfrf legend { font-weight: 700; font-size: 1.05rem; margin-bottom: .75rem; padding: 0; }
.nfrf-checks label, .nfrf-radios label, .nfrf-check { display: inline-flex !important; align-items: center; gap: .45em; font-weight: 500 !important; margin: 0 1.1rem .5rem 0 !important; }
.nfrf-checks input, .nfrf-radios input, .nfrf-check input { width: 18px; height: 18px; min-height: 0; accent-color: var(--nf-brand); }
.nfrf-cols { display: grid; grid-template-columns: 1fr; gap: 0 1rem; }
@media (min-width: 640px) {
	.nfrf-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nfrf-cols--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nfrf-cols--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.nfrf-filters { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: 0 0 1rem; }
.nfrf-filters input[type=search] { flex: 1 1 240px; width: auto; }
.nfrf-filters select, .nfrf-filters input[type=date] { width: auto; flex: 0 1 auto; }

/* KPIs */
.nfrf-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .85rem; margin: 0 0 1.25rem; }
.nfrf-kpi { display: flex; flex-direction: column; gap: .2rem; padding: 1rem 1.1rem; background: var(--nf-surface); border: 1px solid var(--nf-line); border-radius: var(--nf-radius); box-shadow: var(--nf-shadow); color: inherit; text-decoration: none !important; position: relative; overflow: hidden; }
.nfrf-kpi > span { color: var(--nf-muted); font-size: .8rem; font-weight: 600; }
.nfrf-kpi > strong { font-size: 1.5rem; font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: var(--nf-ink); }
.nfrf-kpi > a { font-size: .82rem; font-weight: 600; }
a.nfrf-kpi:hover { border-color: var(--nf-brand); }
.nfrf-kpi--warn { border-color: #fedf89; background: linear-gradient(180deg, #fffcf2, #fff); }
.nfrf-kpi--warn::after, .nfrf-kpi--bad::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--nf-accent); }
.nfrf-kpi--bad { border-color: #fecdca; background: linear-gradient(180deg, #fff6f5, #fff); }
.nfrf-kpi--bad::after { background: var(--nf-red); }

/* Lists, definition lists */
.nfrf-list { margin: 0; padding: 0; list-style: none; }
.nfrf-list li { padding: .5rem 0; border-bottom: 1px solid var(--nf-line); }
.nfrf-list li:last-child { border-bottom: 0; }
.nfrf-dl { margin: 0; }
.nfrf-dl dt { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--nf-muted); font-weight: 600; margin-top: .6rem; }
.nfrf-dl dd { margin: .1rem 0 0; }
.nfrf-dl--grid { display: grid; grid-template-columns: max-content 1fr; gap: .45rem 1rem; }
.nfrf-dl--grid dt { margin: 0; }
.nfrf-dl--grid dd { margin: 0; }
.nfrf-pre { white-space: pre-wrap; word-break: break-all; font-family: var(--nf-mono); font-size: .75rem; max-height: 260px; overflow: auto; background: var(--nf-grey-bg); padding: .6rem; border-radius: 6px; }
.nfrf-more summary { cursor: pointer; color: var(--nf-brand); font-weight: 600; font-size: .85rem; margin: .3rem 0; }
.nfrf-more[open] > *:not(summary) { margin-top: .5rem; }

/* Progress stepper */
.nfrf-progress { display: flex; list-style: none; margin: 0 0 1.25rem; padding: 0; counter-reset: s; overflow-x: auto; }
.nfrf-progress li { flex: 1; min-width: 90px; position: relative; padding-top: 1.9rem; text-align: center; font-size: .82rem; color: var(--nf-muted); font-weight: 600; }
.nfrf-progress li::before { counter-increment: s; content: counter(s); position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 1.55rem; height: 1.55rem; border-radius: 50%; background: var(--nf-grey-bg); border: 2px solid var(--nf-line-2); line-height: 1.3rem; font-size: .75rem; color: var(--nf-muted); z-index: 1; }
.nfrf-progress li::after { content: ""; position: absolute; top: .75rem; left: -50%; width: 100%; height: 2px; background: var(--nf-line-2); }
.nfrf-progress li:first-child::after { display: none; }
.nfrf-progress li.is-done { color: var(--nf-brand); }
.nfrf-progress li.is-done::before { content: "✓"; background: var(--nf-brand); border-color: var(--nf-brand); color: #fff; }
.nfrf-progress li.is-done::after { background: var(--nf-brand); }

/* Notifications */
.nfrf-notes { list-style: none; margin: 0; padding: 0; }
.nfrf-note { display: flex; gap: 1rem; justify-content: space-between; align-items: flex-start; padding: .9rem 1.1rem; background: var(--nf-surface); border: 1px solid var(--nf-line); border-radius: var(--nf-radius-sm); margin-bottom: .5rem; }
.nfrf-note p { margin: .25rem 0; color: var(--nf-ink-2); }
.nfrf-note.is-unread { border-left: 4px solid var(--nf-brand); background: #fbfefe; }
.nfrf-note--low_stock.is-unread, .nfrf-note--very_low_stock.is-unread, .nfrf-note--wallet_low.is-unread { border-left-color: var(--nf-accent); }
.nfrf-note--out_of_stock.is-unread, .nfrf-note--sync_failed.is-unread, .nfrf-note--order_exception.is-unread, .nfrf-note--marketplace_disconnected.is-unread { border-left-color: var(--nf-red); }

/* Pagination */
.nfrf-pagination { display: flex; flex-wrap: wrap; gap: .3rem; margin: 1rem 0; }
.nfrf-pagination a, .nfrf-pagination span { min-width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; border: 1px solid var(--nf-line); background: #fff; font-weight: 600; font-size: .88rem; }
.nfrf-pagination .nfrf-pagination__current { background: var(--nf-brand); color: #fff; border-color: var(--nf-brand); }
.nfrf-pagination .nfrf-pagination__gap { border: 0; background: none; }

/* Order form lines */
.nfrf-order-line { display: grid; grid-template-columns: minmax(0, 1fr) 90px auto; gap: .5rem; margin-bottom: .5rem; align-items: center; }
.nfrf-order-total { font-size: 1rem; }

/* Marketplace grid */
.nfrf-mp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.nfrf-mp-grid .nfrf-card { margin: 0; }
.nfrf-mp__account { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem; padding: .7rem 0; border-top: 1px solid var(--nf-line); }

@media (prefers-reduced-motion: reduce) {
	.nfrf * { transition: none !important; animation: none !important; }
}
.nfrf [hidden] { display: none !important; }
.nfrf select { text-overflow: ellipsis; }
.nfrf-filters select { max-width: 100%; }
