/* ==========================================================================
   Meridian COA Verification — front-end styles
   Palette: cream #f6f2ea · espresso #2b241e · cream2 #faf7f1 · success #2f8659
   ========================================================================== */

.mcv {
	--mcv-cream: #f6f2ea;
	--mcv-espresso: #2b241e;
	--mcv-cream2: #faf7f1;
	--mcv-success: #2f8659;
	--mcv-muted: rgba(43, 36, 30, .6);
	--mcv-line: rgba(43, 36, 30, .1);
	--mcv-link: #7a5c3e;
	/* Primary button colours — overridden from Settings → Appearance. */
	--mcv-btn-bg: #2b241e;
	--mcv-btn-text: #f6f2ea;
	--mcv-btn-bg-hover: #453a30;
	--mcv-btn-text-hover: #f6f2ea;
	font-family: 'Archivo', system-ui, sans-serif;
	color: var(--mcv-espresso);
	-webkit-font-smoothing: antialiased;
	box-sizing: border-box;
}
.mcv *, .mcv *::before, .mcv *::after { box-sizing: border-box; }
.mcv ::selection { background: var(--mcv-espresso); color: var(--mcv-cream); }

/* --- Shared bits --------------------------------------------------------- */
.mcv-eyebrow {
	font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
	color: rgba(43, 36, 30, .45); margin-bottom: 14px;
}
.mcv-eyebrow--light { color: rgba(246, 242, 234, .5); letter-spacing: .22em; }

.mcv-page-title {
	font-family: 'Spectral', serif; font-weight: 400; font-size: clamp(34px, 5vw, 52px);
	line-height: 1; letter-spacing: -.015em; margin: 0 0 16px;
}
.mcv-page-intro { font-size: 15.5px; line-height: 1.7; color: var(--mcv-muted); margin: 0; max-width: 560px; }

.mcv-dot { width: 7px; height: 7px; border-radius: 50%; flex: none; display: inline-block; }

/* --- Buttons ------------------------------------------------------------- */
.mcv-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	border: none; border-radius: 0; cursor: pointer;
	font-family: 'Archivo', sans-serif; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
	font-size: 12px; padding: 0 28px; height: 48px; text-decoration: none;
	transition: background-color .15s ease, color .15s ease, opacity .15s ease;
}
.mcv-btn--dark { background: var(--mcv-btn-bg); color: var(--mcv-btn-text); }
.mcv-btn--dark:hover,
.mcv-btn--dark:focus-visible { background: var(--mcv-btn-bg-hover); color: var(--mcv-btn-text-hover); }
.mcv-btn--light { background: #efe9dd; color: var(--mcv-espresso); }
.mcv-btn--outline { background: transparent; color: var(--mcv-espresso); border: 1px solid rgba(43, 36, 30, .28); }
.mcv-btn--light:hover, .mcv-btn--outline:hover { opacity: .88; }
.mcv-btn--full { width: 100%; height: 56px; margin-top: 24px; }
.mcv-btn--sm { height: 40px; font-size: 11px; padding: 0 18px; }
.mcv-btn--disabled { opacity: .5; cursor: not-allowed; pointer-events: none; }

/* Trailing arrow shared by action buttons and the COA/PDF links. */
.mcv-arrow { display: inline-block; font-size: 1.15em; line-height: 1; transition: transform .15s ease; }
.mcv-btn:hover .mcv-arrow,
.mcv-pdf-link:hover .mcv-arrow,
.mcv-cert-link:hover .mcv-arrow { transform: translateX(3px); }

/* ==========================================================================
   VERIFY  (light, two-column: form + result)
   ========================================================================== */
.mcv-verify { padding: 20px 0 40px; }
.mcv-verify-grid {
	display: grid; grid-template-columns: 1fr 1.05fr; gap: 64px; align-items: start;
	max-width: 1080px; margin: 0 auto;
}

/* Left — form */
.mcv-verify-form { padding-top: 26px; }
.mcv-verify-heading {
	font-family: 'Spectral', serif; font-weight: 400; font-size: clamp(34px, 4vw, 46px);
	line-height: 1.05; letter-spacing: -.02em; margin: 0 0 18px;
}
.mcv-verify-desc { font-size: 15px; line-height: 1.65; color: var(--mcv-muted); margin: 0 0 30px; max-width: 380px; }

.mcv-field { margin-bottom: 20px; }
.mcv-field-label {
	display: block; font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
	color: rgba(43, 36, 30, .5); margin-bottom: 9px;
}
.mcv-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }

.mcv-input, .mcv-select {
	width: 100%; height: 52px; background: #fff; border: 1px solid rgba(43, 36, 30, .18);
	border-radius: 4px; padding: 0 16px; font-size: 15px; font-family: 'Archivo', sans-serif;
	color: var(--mcv-espresso); outline: none; transition: border-color .15s ease, box-shadow .15s ease;
}
.mcv-input::placeholder { color: rgba(43, 36, 30, .38); }
.mcv-input:focus, .mcv-select:focus { border-color: rgba(43, 36, 30, .5); box-shadow: 0 0 0 3px rgba(43, 36, 30, .07); }

.mcv-select-wrap { position: relative; }
.mcv-select {
	appearance: none; -webkit-appearance: none; -moz-appearance: none; padding-right: 38px; cursor: pointer;
}
.mcv-select-wrap::after {
	content: ""; position: absolute; right: 16px; top: 50%; width: 8px; height: 8px;
	border-right: 1.5px solid rgba(43, 36, 30, .55); border-bottom: 1.5px solid rgba(43, 36, 30, .55);
	transform: translateY(-70%) rotate(45deg); pointer-events: none;
}
.mcv-verify-form .mcv-btn--dark { margin-top: 8px; height: 52px; padding: 0 30px; }

/* Right — result column */
.mcv-verify-result-col { padding-top: 26px; }
.mcv-result-area:empty { display: none; }
.mcv-result-placeholder {
	border: 1px dashed rgba(43, 36, 30, .22); border-radius: 8px; padding: 48px 32px; text-align: center;
	color: var(--mcv-muted); background: rgba(255, 255, 255, .35);
}
.mcv-result-placeholder-mark {
	width: 44px; height: 44px; margin: 0 auto 16px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: rgba(47, 134, 89, .12); color: var(--mcv-success); font-size: 20px;
}
.mcv-result-placeholder p { margin: 0; font-size: 14.5px; line-height: 1.6; max-width: 280px; margin-inline: auto; }

.mcv-result-card {
	background: #fff; border: 1px solid var(--mcv-line); border-radius: 8px;
	box-shadow: 0 24px 60px -30px rgba(43, 36, 30, .25); overflow: hidden; margin-top: 8px;
}
.mcv-result-card-head { padding: 26px 30px 22px; border-bottom: 1px solid rgba(43, 36, 30, .08); }
.mcv-result-card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.mcv-verify-badge {
	display: inline-flex; align-items: center; gap: 7px; font-size: 10.5px; font-weight: 700;
	letter-spacing: .14em; text-transform: uppercase; color: var(--mcv-success);
	background: rgba(47, 134, 89, .1); padding: 6px 11px; border-radius: 3px;
}
.mcv-verify-badge--fail { color: #b23b2e; background: rgba(178, 59, 46, .1); }
.mcv-result-tested { font-size: 13px; color: rgba(43, 36, 30, .5); }
.mcv-result-compound { font-family: 'Spectral', serif; font-weight: 400; font-size: 32px; margin: 0 0 6px; letter-spacing: -.01em; }
.mcv-result-batch { font-size: 12px; font-weight: 600; letter-spacing: .14em; color: rgba(43, 36, 30, .5); }
.mcv-result-card-body { padding: 6px 30px 26px; }
.mcv-result-row { display: flex; align-items: center; justify-content: space-between; padding: 15px 0; border-bottom: 1px solid rgba(43, 36, 30, .07); }
.mcv-result-key { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: rgba(43, 36, 30, .5); }
.mcv-result-val { font-size: 15px; }

.mcv-result-card--notfound { padding: 30px; }
.mcv-result-head { margin-bottom: 16px; }
.mcv-result-title { font-family: 'Spectral', serif; font-weight: 400; font-size: 26px; margin: 0 0 10px; }
.mcv-result-notfound-text { font-size: 14.5px; line-height: 1.6; color: var(--mcv-muted); margin: 0; }

/* ==========================================================================
   RECORDS
   ========================================================================== */
.mcv-page-head { padding: 8px 0 0; }
.mcv-records-body { padding: 40px 0 40px; }
.mcv-records-controls { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 22px; }
.mcv-chips { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mcv-chips-label { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: rgba(43, 36, 30, .4); margin-right: 8px; }
.mcv-chip {
	font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
	padding: 8px 15px; border-radius: 2px; cursor: pointer;
	border: 1px solid rgba(43, 36, 30, .18); background: #fff; color: rgba(43, 36, 30, .7);
	font-family: 'Archivo', sans-serif; transition: all .12s ease;
}
.mcv-chip:hover { border-color: rgba(43, 36, 30, .4); }
.mcv-chip.is-active { background: var(--mcv-espresso); color: var(--mcv-cream); border-color: var(--mcv-espresso); }

.mcv-search-input {
	width: 100%; background: #fff; border: 1px solid rgba(43, 36, 30, .16); border-radius: 4px;
	padding: 0 16px; height: 42px; font-size: 14px; font-family: 'Archivo', sans-serif; color: var(--mcv-espresso); outline: none;
}
.mcv-search-input::placeholder { color: rgba(43, 36, 30, .4); }
.mcv-records-search { flex: none; width: 280px; max-width: 100%; }

.mcv-table { background: #fff; border: 1px solid var(--mcv-line); border-radius: 8px; overflow: hidden; }
.mcv-table-head, .mcv-tr {
	display: grid; grid-template-columns: 1.3fr 1.2fr 1fr .8fr 1fr 1.3fr .7fr; align-items: center;
}
.mcv-table-head { padding: 16px 28px; border-bottom: 1px solid var(--mcv-line); background: #fbf9f4; }
.mcv-table-head span { font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(43, 36, 30, .45); }
.mcv-col-coa { text-align: right; }
.mcv-tr { padding: 18px 28px; border-bottom: 1px solid rgba(43, 36, 30, .06); }
.mcv-tr:last-child { border-bottom: none; }
.mcv-td { font-size: 14px; }
.mcv-td-batch { font-weight: 500; letter-spacing: .02em; }
.mcv-td-compound { display: inline-flex; align-items: center; gap: 8px; color: rgba(43, 36, 30, .8); }
.mcv-td-muted { color: var(--mcv-muted); }
.mcv-td-success { color: var(--mcv-success); }
.mcv-pdf-link {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--mcv-link);
}
.mcv-pdf-link--empty { display: inline; color: rgba(43, 36, 30, .3); }
.mcv-table-empty { padding: 40px 28px; text-align: center; color: var(--mcv-muted); font-size: 14px; }

.mcv-records-footer, .mcv-library-footer { text-align: center; margin-top: 8px; }
.mcv-count { font-size: 13px; color: rgba(43, 36, 30, .45); margin: 20px 0; }

/* ==========================================================================
   LIBRARY
   ========================================================================== */
.mcv-library-body { display: grid; grid-template-columns: 260px 1fr; gap: 40px; padding: 32px 0 40px; align-items: start; }
.mcv-sidebar-sticky { position: sticky; top: 24px; }

/* Mobile-only chrome — the desktop layout is untouched by all of this. */
.mcv-library-bar { display: none; }
.mcv-filter-toggle { display: none; }
.mcv-sidebar-mobilehead { display: none; }
.mcv-sidebar-backdrop { display: none; }
.mcv-sidebar-actions { display: none; }

/* Count of active filters, so the icon still communicates state. */
.mcv-filter-badge {
	position: absolute; top: -7px; right: -7px; min-width: 19px; height: 19px; padding: 0 5px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--mcv-espresso); color: var(--mcv-cream);
	border-radius: 10px; font-size: 11px; font-weight: 700; line-height: 1;
}
.mcv-filter-badge[hidden] { display: none; }

.mcv-sidebar-close {
	display: none; background: none; border: none; cursor: pointer;
	font-size: 30px; line-height: 1; color: var(--mcv-espresso); padding: 0 4px;
}

/* Visually hidden but available to screen readers. */
.mcv-sr {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.mcv-side-block { margin-bottom: 26px; }
.mcv-side-label, .mcv-side-heading {
	display: block; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
	color: rgba(43, 36, 30, .5); margin-bottom: 12px;
}
.mcv-filter-list { list-style: none; margin: 0; padding: 0; }
.mcv-filter {
	display: flex; align-items: center; justify-content: space-between; width: 100%;
	background: none; border: none; cursor: pointer; padding: 7px 0; font-family: 'Archivo', sans-serif;
	font-size: 14px; color: rgba(43, 36, 30, .7); text-align: left;
}
.mcv-filter:hover { color: var(--mcv-espresso); }
.mcv-filter.is-active { color: var(--mcv-espresso); font-weight: 600; }
.mcv-filter-name { display: inline-flex; align-items: center; gap: 8px; }
.mcv-filter-count { font-size: 12px; color: rgba(43, 36, 30, .4); }

.mcv-library-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; grid-auto-rows: min-content; }

.mcv-featured-card {
	grid-column: span 2; grid-row: span 2; background: #fff; border: 1px solid var(--mcv-line);
	border-radius: 10px; padding: 30px; box-shadow: 0 24px 60px -34px rgba(43, 36, 30, .25);
	border-top: 3px solid var(--mcv-accent, #2b241e); display: flex; flex-direction: column;
}
.mcv-featured-tag { display: inline-flex; align-items: center; gap: 8px; font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(43, 36, 30, .55); margin-bottom: 18px; }
.mcv-featured-compound { font-family: 'Spectral', serif; font-weight: 400; font-size: 30px; margin: 0 0 6px; letter-spacing: -.01em; }
.mcv-featured-batch { font-size: 12px; font-weight: 600; letter-spacing: .14em; color: rgba(43, 36, 30, .5); margin-bottom: 20px; }
.mcv-featured-rows { flex: 1; }
.mcv-featured-row { display: flex; align-items: center; justify-content: space-between; padding: 13px 0; border-bottom: 1px solid rgba(43, 36, 30, .07); }
.mcv-featured-key { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: rgba(43, 36, 30, .5); }
.mcv-featured-val { font-size: 15px; color: var(--mcv-espresso); }
.mcv-featured-actions { display: flex; gap: 10px; margin-top: 22px; }

.mcv-cert-card { background: #fff; border: 1px solid var(--mcv-line); border-radius: 10px; padding: 22px; display: flex; flex-direction: column; }
.mcv-cert-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.mcv-cert-compound { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: rgba(43, 36, 30, .8); }
.mcv-cert-check { color: var(--mcv-success); font-size: 14px; }
.mcv-cert-batch { font-family: 'Spectral', serif; font-size: 20px; margin-bottom: 12px; letter-spacing: -.01em; }
.mcv-cert-meta { display: flex; align-items: center; justify-content: space-between; font-size: 13px; color: var(--mcv-muted); margin-bottom: 6px; }
.mcv-cert-purity { color: var(--mcv-success); }
.mcv-cert-lab { font-size: 13px; color: var(--mcv-muted); margin-bottom: 16px; }
.mcv-cert-actions { margin-top: auto; }
.mcv-cert-link {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--mcv-link);
}
.mcv-cert-link--empty { display: inline; color: rgba(43, 36, 30, .3); }

.mcv-pagination { display: inline-flex; align-items: center; gap: 6px; justify-content: center; }
.mcv-page-btn {
	min-width: 38px; height: 38px; padding: 0 10px; border: 1px solid rgba(43, 36, 30, .18);
	background: #fff; color: rgba(43, 36, 30, .7); border-radius: 3px; cursor: pointer;
	font-family: 'Archivo', sans-serif; font-size: 13px; transition: all .12s ease;
}
.mcv-page-btn:hover:not(:disabled) { border-color: rgba(43, 36, 30, .4); }
.mcv-page-btn.is-active { background: var(--mcv-espresso); color: var(--mcv-cream); border-color: var(--mcv-espresso); }
.mcv-page-btn:disabled { opacity: .4; cursor: default; }

.mcv-grid-empty { grid-column: 1 / -1; padding: 48px; text-align: center; color: var(--mcv-muted); font-size: 15px; }

/* ==========================================================================
   SEARCH AFFORDANCES  (type-ahead · suggestions · notices)
   ========================================================================== */
.mcv-input-wrap { position: relative; }
.mcv-field-hint { margin: 8px 0 0; font-size: 12.5px; line-height: 1.5; color: rgba(43, 36, 30, .5); }

.mcv-typeahead {
	position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px);
	background: #fff; border: 1px solid rgba(43, 36, 30, .18); border-radius: 4px;
	box-shadow: 0 18px 40px -22px rgba(43, 36, 30, .5);
	max-height: 280px; overflow-y: auto;
}
.mcv-typeahead[hidden] { display: none; }
.mcv-typeahead-item {
	display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
	width: 100%; padding: 11px 14px; background: none; border: none; cursor: pointer;
	text-align: left; font-family: 'Archivo', sans-serif; color: var(--mcv-espresso);
	border-bottom: 1px solid rgba(43, 36, 30, .06);
}
.mcv-typeahead-item:last-child { border-bottom: none; }
.mcv-typeahead-item:hover, .mcv-typeahead-item.is-active { background: var(--mcv-cream2); }
.mcv-typeahead-batch { font-size: 14px; font-weight: 600; letter-spacing: .02em; }
.mcv-typeahead-meta { font-size: 12.5px; color: var(--mcv-muted); text-align: right; }

.mcv-result-approx {
	padding: 12px 30px; font-size: 13px; line-height: 1.5;
	background: rgba(178, 106, 31, .09); color: #8a5417;
	border-bottom: 1px solid rgba(43, 36, 30, .08);
}
.mcv-result-card--notfound .mcv-suggestions { margin-top: 22px; }

.mcv-suggestions { margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(43, 36, 30, .08); }
.mcv-suggestions-title {
	font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
	color: rgba(43, 36, 30, .45); margin-bottom: 10px;
}
.mcv-suggestion-list { list-style: none; margin: 0; padding: 0; }
.mcv-suggestion {
	display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%;
	padding: 11px 12px; margin-bottom: 6px; cursor: pointer; text-align: left;
	background: var(--mcv-cream2); border: 1px solid rgba(43, 36, 30, .1); border-radius: 5px;
	font-family: 'Archivo', sans-serif; color: var(--mcv-espresso);
	transition: border-color .12s ease, background .12s ease;
}
.mcv-suggestion:hover { border-color: rgba(43, 36, 30, .35); background: #fff; }
.mcv-suggestion-main { display: inline-flex; align-items: center; gap: 9px; min-width: 0; }
.mcv-suggestion-batch { font-size: 14px; font-weight: 600; letter-spacing: .02em; }
.mcv-suggestion-compound { font-size: 13px; color: var(--mcv-muted); }
.mcv-suggestion-meta { font-size: 12.5px; color: rgba(43, 36, 30, .45); flex: none; }

.mcv-panel-icon { font-size: 15px; width: 15px; height: 15px; margin-right: 6px; vertical-align: -3px; }
.mcv-result-key, .mcv-featured-key { display: inline-flex; align-items: center; }

.mcv-notice {
	padding: 12px 16px; margin: 0 0 16px; border-radius: 5px;
	font-size: 13.5px; line-height: 1.55; border-left: 3px solid;
}
.mcv-notice--info { background: rgba(43, 36, 30, .05); border-color: rgba(43, 36, 30, .35); color: var(--mcv-espresso); }
.mcv-notice--warn { background: rgba(178, 106, 31, .1); border-color: #b26a1f; color: #8a5417; }
.mcv-notice--error { background: rgba(178, 59, 46, .1); border-color: #b23b2e; color: #8f2c22; }

/* --- Loading state ------------------------------------------------------- */
.mcv-is-loading { position: relative; opacity: .5; transition: opacity .15s ease; pointer-events: none; }
.mcv-is-loading::after {
	content: ""; position: absolute; top: 22px; left: 50%; width: 26px; height: 26px;
	margin-left: -13px; border-radius: 50%;
	border: 2px solid rgba(43, 36, 30, .18); border-top-color: var(--mcv-espresso);
	animation: mcv-spin .7s linear infinite;
}
@keyframes mcv-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
	.mcv-is-loading::after { animation-duration: 2s; }
	.mcv *, .mcv *::before, .mcv *::after { transition-duration: .01ms !important; }
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

/* --- Large screens: a fourth column, roomier gutters --------------------- */
@media (min-width: 1400px) {
	.mcv-library-body { grid-template-columns: 280px 1fr; gap: 52px; }
	.mcv-library-grid { grid-template-columns: repeat(4, 1fr); gap: 24px; }
}

/* --- Tablet: sidebar stays, grid drops to two columns -------------------- */
@media (max-width: 1100px) and (min-width: 901px) {
	.mcv-library-body { grid-template-columns: 230px 1fr; gap: 30px; }
	.mcv-library-grid { grid-template-columns: repeat(2, 1fr); }
	.mcv-featured-card { grid-column: span 2; grid-row: auto; }
}

/* --- Mobile / small tablet: off-canvas filter drawer --------------------- */
@media (max-width: 900px) {
	.mcv-library-body { grid-template-columns: 1fr; gap: 0; padding-top: 0; }
	.mcv-library-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
	.mcv-featured-card { grid-column: span 2; grid-row: auto; padding: 24px; }

	/* Toolbar: [filter icon] ......................... [search box]
	   `align-items: stretch` plus a shared min-height keeps the button and the
	   input exactly the same height even if the theme restyles form fields. */
	.mcv-library-bar {
		--mcv-bar-h: 48px;
		display: flex;
		align-items: stretch;
		gap: 10px;
		margin: 0 0 20px;
	}
	.mcv-bar-search { flex: 1 1 auto; min-width: 0; display: flex; }
	.mcv-bar-search .mcv-search-input {
		width: 100%;
		height: auto;
		min-height: var(--mcv-bar-h);
		border-radius: 0;
		padding: 0 14px;
		font-size: 16px; /* Stops iOS zooming the page when the field is focused. */
	}
	/* Strip the WebKit search decorations so it matches the other inputs. */
	.mcv-bar-search .mcv-search-input::-webkit-search-decoration,
	.mcv-bar-search .mcv-search-input::-webkit-search-cancel-button { -webkit-appearance: none; }

	/* The top bar carries the search on mobile, so hide the sidebar copy. */
	.mcv-side-block--search { display: none; }

	.mcv-filter-toggle {
		position: relative;
		display: inline-flex; align-items: center; justify-content: center;
		flex: 0 0 auto; align-self: stretch;
		width: var(--mcv-bar-h); min-height: var(--mcv-bar-h); padding: 0;
		cursor: pointer; -webkit-tap-highlight-color: transparent;
		background: #fff; border: 1px solid rgba(43, 36, 30, .18); border-radius: 0;
		color: var(--mcv-espresso);
		transition: border-color .15s ease, background .15s ease;
	}
	.mcv-filter-toggle:hover, .mcv-filter-toggle:focus-visible { border-color: rgba(43, 36, 30, .45); }
	.mcv-filter-toggle:active { background: var(--mcv-cream2); }
	.mcv-library.is-filters-open .mcv-filter-toggle {
		background: var(--mcv-espresso); border-color: var(--mcv-espresso); color: var(--mcv-cream);
	}

	.mcv-sidebar {
		position: fixed; top: 0; left: 0; z-index: 100000;
		width: min(340px, 88vw); height: 100%;
		background: var(--mcv-cream); box-shadow: 18px 0 60px -30px rgba(43, 36, 30, .6);
		transform: translateX(-102%); transition: transform .32s cubic-bezier(.4, 0, .2, 1);
		overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
	}
	.mcv-sidebar-sticky {
		position: static; padding: 20px 22px calc(24px + env(safe-area-inset-bottom));
		display: flex; flex-direction: column; min-height: 100%;
	}
	.mcv-sidebar-mobilehead {
		display: flex; align-items: center; justify-content: space-between;
		margin-bottom: 20px; padding-bottom: 14px; border-bottom: 1px solid var(--mcv-line);
	}
	.mcv-sidebar-mobiletitle { font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: rgba(43, 36, 30, .6); }
	.mcv-sidebar-close { display: block; margin: -6px -6px -6px 0; padding: 6px 10px; }

	/* Bigger tap targets inside the drawer. */
	.mcv-filter { padding: 11px 0; font-size: 15px; }
	.mcv-side-block { margin-bottom: 22px; }

	.mcv-sidebar-actions {
		display: block; margin-top: auto; padding-top: 18px;
		border-top: 1px solid var(--mcv-line);
	}
	.mcv-sidebar-actions .mcv-btn--full { margin-top: 12px; height: 50px; }
	.mcv-clear-filters {
		display: block; width: 100%; background: none; border: none; cursor: pointer;
		padding: 6px 0; font-family: 'Archivo', sans-serif; font-size: 13px;
		color: var(--mcv-link); text-decoration: underline; text-underline-offset: 3px;
	}
	.mcv-clear-filters[hidden] { display: none; }

	.mcv-sidebar-backdrop {
		display: block; position: fixed; inset: 0; z-index: 99999;
		background: rgba(30, 24, 18, .45); opacity: 0; pointer-events: none;
		transition: opacity .3s ease;
	}

	.mcv-library.is-filters-open .mcv-sidebar { transform: translateX(0); }
	.mcv-library.is-filters-open .mcv-sidebar-backdrop { opacity: 1; pointer-events: auto; }

	/* While a finger is on the drawer, follow it instead of animating. */
	.mcv-library.is-dragging .mcv-sidebar { transition: none; }
	.mcv-library.is-dragging .mcv-sidebar-backdrop { transition: none; }
}
@media (max-width: 860px) {
	/* Verify: stack form above result. */
	.mcv-verify-grid { grid-template-columns: 1fr; gap: 40px; }
	.mcv-verify-form, .mcv-verify-result-col { padding-top: 0; }
	.mcv-verify-desc { max-width: none; }
}
@media (max-width: 720px) {
	.mcv-records-search { width: 100%; }
	.mcv-verify-form .mcv-btn--dark { width: 100%; }

	/* Table becomes stacked cards */
	.mcv-table-head { display: none; }
	.mcv-tr { grid-template-columns: 1fr 1fr; gap: 6px 14px; padding: 16px 18px; }
	.mcv-td-batch { grid-column: 1 / -1; font-size: 16px; }
	.mcv-col-coa { text-align: left; }

	.mcv-library-grid { grid-template-columns: 1fr; }
	.mcv-featured-card { grid-column: 1; }

	.mcv-page-title { margin-bottom: 12px; }
	.mcv-pagination { flex-wrap: wrap; gap: 5px; }
	.mcv-page-btn { min-width: 42px; height: 42px; }
	.mcv-cert-card { padding: 20px; }
	.mcv-suggestion { flex-wrap: wrap; gap: 4px 12px; }
}
@media (max-width: 460px) {
	.mcv-field-row { grid-template-columns: 1fr; gap: 20px; }
	.mcv-library-bar { gap: 10px; }
	.mcv-featured-card { padding: 20px; }
	.mcv-featured-actions { flex-wrap: wrap; }
	.mcv-featured-actions .mcv-btn { flex: 1 1 auto; }
	.mcv-result-card-head, .mcv-result-card-body { padding-left: 20px; padding-right: 20px; }
	.mcv-result-approx { padding-left: 20px; padding-right: 20px; }
	.mcv-result-compound { font-size: 27px; }
}
