/* Cavaliers Puppy Manager — front end */

.coh-puppies,
.coh-app,
.coh-plist,
.coh-lb {
	--coh-accent: #8b4a2b;
	--coh-accent-ink: #ffffff;
	--coh-accent-soft: color-mix(in srgb, var(--coh-accent) 10%, #ffffff);
	--coh-accent-dark: color-mix(in srgb, var(--coh-accent) 82%, #000000);
	--coh-ink: #2a2421;
	--coh-muted: #6f655e;
	--coh-line: #ebe3dc;
	--coh-field: #d9cec5;
	--coh-soft: #faf6f2;
	--coh-card: #ffffff;
	--coh-ok: #1f7a4a;
	--coh-ok-soft: #e6f4ec;
	--coh-warn: #a35f00;
	--coh-warn-soft: #fdf1dc;
	--coh-gone: #5b6168;
	--coh-error: #b42318;
	--coh-radius: 18px;
	--coh-shadow: 0 1px 2px rgba(42, 36, 33, .05), 0 10px 28px rgba(42, 36, 33, .07);
	color: var(--coh-ink);
	box-sizing: border-box;
}
.coh-puppies *, .coh-puppies *::before, .coh-puppies *::after,
.coh-app *, .coh-app *::before, .coh-app *::after,
.coh-plist *, .coh-plist *::before, .coh-plist *::after,
.coh-lb *, .coh-lb *::before, .coh-lb *::after { box-sizing: inherit; }

.coh-puppies [hidden], .coh-app [hidden], .coh-plist [hidden], .coh-lb [hidden] { display: none !important; }
.coh-puppies svg, .coh-app svg, .coh-lb svg { display: inline-block; flex: none; }

/* ---------- Buttons ---------- */
.coh-puppies .coh-btn,
.coh-plist .coh-btn,
.coh-app .coh-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 12px 24px; margin: 0;
	border: 1.5px solid var(--coh-accent); border-radius: 999px;
	background: var(--coh-accent); color: var(--coh-accent-ink);
	font: inherit; font-size: 1rem; font-weight: 600; line-height: 1.2; letter-spacing: .01em; text-transform: none;
	text-decoration: none; cursor: pointer; box-shadow: none;
	transition: background-color .15s ease, border-color .15s ease, transform .15s ease;
}
.coh-puppies .coh-btn:hover, .coh-puppies .coh-btn:focus-visible,
.coh-plist .coh-btn:hover, .coh-plist .coh-btn:focus-visible,
.coh-app .coh-btn:hover, .coh-app .coh-btn:focus-visible {
	background: var(--coh-accent-dark); border-color: var(--coh-accent-dark); color: var(--coh-accent-ink); text-decoration: none;
}
.coh-puppies .coh-btn:focus-visible, .coh-app .coh-btn:focus-visible { outline: 3px solid color-mix(in srgb, var(--coh-accent) 35%, transparent); outline-offset: 2px; }
.coh-puppies .coh-btn--block { width: 100%; }
.coh-app .coh-btn--ghost, .coh-puppies .coh-btn--ghost { background: transparent; color: var(--coh-ink); border-color: var(--coh-field); }
.coh-app .coh-btn--ghost:hover, .coh-app .coh-btn--ghost:focus-visible,
.coh-puppies .coh-btn--ghost:hover { background: var(--coh-soft); color: var(--coh-ink); border-color: var(--coh-muted); }
.coh-app .coh-btn svg { width: 18px; height: 18px; }
.coh-app .coh-btn[disabled] { opacity: .65; cursor: progress; }
.coh-app .coh-btn.is-loading::after {
	content: ""; width: 16px; height: 16px; border-radius: 50%;
	border: 2px solid currentColor; border-right-color: transparent; animation: coh-spin .7s linear infinite;
}
@keyframes coh-spin { to { transform: rotate(360deg); } }

/* ================================================================
 * Puppy cards
 * ============================================================== */
.coh-puppies { width: 100%; margin: 0 auto; }

.coh-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 0 28px; }
.coh-puppies .coh-chip {
	display: inline-flex; align-items: center; gap: 8px; min-height: 42px; margin: 0; padding: 8px 18px;
	border: 1.5px solid var(--coh-line); border-radius: 999px; background: var(--coh-card); color: var(--coh-ink);
	font: inherit; font-size: .95rem; font-weight: 500; line-height: 1.2; text-transform: none; letter-spacing: 0;
	cursor: pointer; box-shadow: none; transition: background-color .15s, border-color .15s, color .15s;
}
.coh-puppies .coh-chip:hover { border-color: var(--coh-ink); background: var(--coh-card); color: var(--coh-ink); }
.coh-puppies .coh-chip.is-active { background: var(--coh-ink); border-color: var(--coh-ink); color: #fff; }
.coh-chip__n {
	display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 6px;
	border-radius: 999px; background: var(--coh-soft); color: var(--coh-muted); font-size: .78rem; font-weight: 600;
}
.coh-chip.is-active .coh-chip__n { background: rgba(255, 255, 255, .18); color: #fff; }

.coh-grid {
	display: grid; gap: 28px;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	align-items: stretch;
}

.coh-card {
	position: relative; display: flex; flex-direction: column; overflow: hidden;
	background: var(--coh-card); border: 1px solid var(--coh-line); border-radius: var(--coh-radius);
	box-shadow: var(--coh-shadow); transition: transform .2s ease, box-shadow .2s ease;
}
.coh-card[hidden] { display: none; }
@media (hover: hover) {
	.coh-card:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgba(42, 36, 33, .06), 0 18px 40px rgba(42, 36, 33, .11); }
}
.coh-card.is-highlight { outline: 3px solid var(--coh-accent); outline-offset: 3px; }

/* Photos */
.coh-media { position: relative; aspect-ratio: 1 / 1; background: var(--coh-soft); overflow: hidden; }
.coh-track {
	display: flex; width: 100%; height: 100%; overflow-x: auto; overflow-y: hidden;
	scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain;
	scrollbar-width: none; -ms-overflow-style: none;
}
.coh-track::-webkit-scrollbar { display: none; }
.coh-track:focus-visible { outline: 3px solid var(--coh-accent); outline-offset: -3px; }
.coh-slide { flex: 0 0 100%; width: 100%; height: 100%; margin: 0; padding: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.coh-puppies .coh-zoom {
	display: block; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; border-radius: 0;
	background: none; cursor: zoom-in; box-shadow: none;
}
.coh-puppies .coh-zoom:hover, .coh-puppies .coh-zoom:focus { background: none; }
.coh-puppies .coh-img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; border-radius: 0; margin: 0; }

.coh-puppies .coh-arrow {
	position: absolute; top: 50%; z-index: 2; display: inline-flex; align-items: center; justify-content: center;
	width: 38px; height: 38px; margin: -19px 0 0; padding: 0; border: 0; border-radius: 50%;
	background: rgba(255, 255, 255, .92); color: var(--coh-ink); cursor: pointer;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .18); opacity: 0; transition: opacity .2s ease, transform .15s ease;
}
.coh-puppies .coh-arrow:hover { background: #fff; color: var(--coh-ink); transform: scale(1.06); }
.coh-puppies .coh-arrow svg { width: 18px; height: 18px; }
.coh-arrow--prev { left: 12px; }
.coh-arrow--next { right: 12px; }
.coh-card:hover .coh-arrow, .coh-arrow:focus-visible { opacity: 1; }
@media (hover: none) { .coh-puppies .coh-arrow { display: none; } }

.coh-counter, .coh-expand {
	position: absolute; right: 12px; bottom: 12px; z-index: 2; pointer-events: none;
	padding: 4px 10px; border-radius: 999px; background: rgba(20, 16, 14, .62); color: #fff;
	font-size: .78rem; font-weight: 600; letter-spacing: .03em; line-height: 1.4;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.coh-expand { display: inline-flex; padding: 6px; opacity: 0; transition: opacity .2s; }
.coh-expand svg { width: 16px; height: 16px; }
.coh-card:hover .coh-expand { opacity: 1; }

.coh-badge {
	position: absolute; top: 14px; left: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 7px;
	padding: 6px 12px; border-radius: 999px; background: #fff; color: var(--coh-ink);
	font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; line-height: 1.2;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .14);
}
.coh-badge::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.coh-badge--available { color: var(--coh-ok); }
.coh-badge--reserved { color: var(--coh-warn); }
.coh-badge--gone_home { color: var(--coh-gone); }

.coh-noimg {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
	width: 100%; height: 100%; color: color-mix(in srgb, var(--coh-accent) 45%, #cfc4bb); font-size: .9rem;
}
.coh-noimg svg { width: 56px; height: 56px; }
.coh-noimg span { color: var(--coh-muted); }

/* Text */
.coh-body { display: flex; flex-direction: column; flex: 1; gap: 12px; padding: 20px 22px 22px; }
.coh-title-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.coh-puppies .coh-name {
	margin: 0; padding: 0; color: var(--coh-ink);
	font-size: 1.5rem; line-height: 1.2; letter-spacing: 0; text-transform: none;
}
.coh-price { flex: none; color: var(--coh-accent); font-size: 1.1rem; font-weight: 700; }

.coh-puppies .coh-facts { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.coh-puppies .coh-fact {
	display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 5px 11px;
	border-radius: 999px; background: var(--coh-soft); color: var(--coh-ink);
	font-size: .86rem; font-weight: 500; line-height: 1.3;
}
.coh-puppies .coh-fact::before { display: none; }
.coh-fact svg { width: 15px; height: 15px; }
.coh-fact--male svg { color: #2f6fa8; }
.coh-fact--female svg { color: #b0457a; }

.coh-puppies .coh-ready {
	display: flex; align-items: center; gap: 8px; margin: 0;
	color: var(--coh-muted); font-size: .92rem; line-height: 1.4;
}
.coh-ready svg { width: 17px; height: 17px; }
.coh-puppies .coh-ready.is-now { color: var(--coh-ok); font-weight: 600; }

.coh-puppies .coh-about { margin: 0; color: #4a413c; font-size: .95rem; line-height: 1.6; }
.coh-puppies .coh-parents { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0; color: var(--coh-ink); font-size: .9rem; }
.coh-parents em {
	margin-right: 4px; color: var(--coh-muted); font-style: normal;
	font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}

.coh-cta { margin-top: auto; padding-top: 6px; }
.coh-puppies .coh-reserved-note {
	display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 12px 14px;
	border-radius: 12px; background: var(--coh-warn-soft); color: #6b4300; font-size: .9rem; line-height: 1.5;
}
.coh-reserved-note svg { width: 18px; height: 18px; margin-top: 2px; color: var(--coh-warn); }
.coh-puppies .coh-reserved-note a { color: #6b4300; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

.coh-filter-empty { margin: 24px 0 0; text-align: center; color: var(--coh-muted); }

/* Gone home cards are a little quieter */
.coh-puppies--gone .coh-body { gap: 8px; padding: 16px 18px 18px; }
.coh-puppies--gone .coh-name { font-size: 1.25rem; }

/* Empty state */
.coh-empty {
	max-width: 620px; margin: 0 auto; padding: 48px 28px; text-align: center;
	background: var(--coh-soft); border: 1px solid var(--coh-line); border-radius: var(--coh-radius);
}
.coh-empty__icon {
	display: inline-flex; align-items: center; justify-content: center; width: 68px; height: 68px; margin-bottom: 14px;
	border-radius: 50%; background: var(--coh-accent-soft); color: var(--coh-accent);
}
.coh-empty__icon svg { width: 34px; height: 34px; }
.coh-plist .coh-empty__title,
.coh-puppies .coh-empty__title { margin: 0 0 10px; font-size: 1.5rem; line-height: 1.25; text-transform: none; }
.coh-plist .coh-empty__text,
.coh-puppies .coh-empty__text { margin: 0 auto 22px; max-width: 46ch; color: var(--coh-muted); line-height: 1.6; }

/* ================================================================
 * Lightbox
 * ============================================================== */
html.coh-lb-open { overflow: hidden; }
.coh-lb {
	position: fixed; inset: 0; width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none;
	margin: 0; padding: 0; border: 0; background: rgba(18, 14, 12, .96); color: #fff; overflow: hidden;
}
.coh-lb::backdrop { background: rgba(18, 14, 12, .9); }
.coh-lb[open] { display: block; }
.coh-lb__bar {
	position: absolute; top: 0; left: 0; right: 0; z-index: 3; display: flex; align-items: center; gap: 16px;
	padding: 14px 16px 14px 22px; background: linear-gradient(rgba(0, 0, 0, .55), rgba(0, 0, 0, 0));
}
.coh-lb__title { font-size: 1.1rem; font-weight: 600; }
.coh-lb__count { margin-right: auto; color: rgba(255, 255, 255, .75); font-size: .9rem; }
.coh-lb button {
	display: inline-flex; align-items: center; justify-content: center; margin: 0; padding: 0;
	border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: #fff; cursor: pointer; box-shadow: none;
}
.coh-lb button:hover, .coh-lb button:focus-visible { background: rgba(255, 255, 255, .28); color: #fff; }
.coh-lb__close { width: 44px; height: 44px; }
.coh-lb__close svg { width: 22px; height: 22px; }
.coh-lb__track {
	display: flex; width: 100%; height: 100%; overflow-x: auto; overflow-y: hidden;
	scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none;
}
.coh-lb__track::-webkit-scrollbar { display: none; }
.coh-lb__track:focus { outline: none; }
.coh-lb__slide {
	display: flex; align-items: center; justify-content: center; flex: 0 0 100%; width: 100%; height: 100%;
	margin: 0; padding: 64px 16px 24px; scroll-snap-align: start; scroll-snap-stop: always;
}
.coh-lb__slide img { display: block; max-width: min(100%, 1200px); max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 6px; }
.coh-lb__arrow { position: absolute; top: 50%; z-index: 3; width: 52px; height: 52px; margin-top: -26px; }
.coh-lb__arrow svg { width: 24px; height: 24px; }
.coh-lb__arrow--prev { left: 18px; }
.coh-lb__arrow--next { right: 18px; }
@media (hover: none) { .coh-lb__arrow { display: none !important; } }

/* ================================================================
 * Application
 * ============================================================== */
.coh-app {
	max-width: 780px; margin: 0 auto; padding: clamp(20px, 4.5vw, 44px);
	background: var(--coh-card); border: 1px solid var(--coh-line); border-radius: 22px; box-shadow: var(--coh-shadow);
	font-size: 1rem; line-height: 1.55; text-align: left;
}
.coh-app fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.coh-app legend { padding: 0; float: none; width: auto; }

.coh-alert { margin: 0 0 20px; padding: 14px 16px; border-radius: 12px; background: #fef3f2; color: var(--coh-error); font-weight: 500; }

.coh-chosen {
	display: flex; align-items: center; gap: 16px; margin: 0 0 26px; padding: 14px 16px;
	border-radius: 16px; background: var(--coh-accent-soft); border: 1px solid color-mix(in srgb, var(--coh-accent) 18%, #fff);
}
.coh-app .coh-chosen__img { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; margin: 0; }
.coh-app .coh-chosen p { margin: 0; line-height: 1.3; }
.coh-chosen__kicker { color: var(--coh-muted); font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.coh-app .coh-chosen__name { font-size: 1.3rem; font-weight: 700; color: var(--coh-ink); }
.coh-chosen__meta { color: var(--coh-muted); font-size: .92rem; }

/* Progress */
.coh-progress { margin: 0 0 30px; }
.coh-app .coh-steps { display: flex; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.coh-app .coh-steps__item {
	position: relative; display: flex; flex: 1; flex-direction: column; align-items: center; gap: 8px;
	margin: 0; padding: 0; text-align: center; color: var(--coh-muted); font-size: .8rem; font-weight: 600; line-height: 1.25;
}
.coh-app .coh-steps__item::before { display: none; }
.coh-steps__item:not(:first-child)::after {
	content: ""; position: absolute; top: 15px; right: 50%; width: 100%; height: 2px; margin-right: 17px;
	background: var(--coh-line); z-index: 0; width: calc(100% - 34px);
}
.coh-steps__item.is-done:not(:first-child)::after,
.coh-steps__item.is-current:not(:first-child)::after { background: var(--coh-accent); }
.coh-steps__n {
	position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center;
	width: 32px; height: 32px; border-radius: 50%; border: 2px solid var(--coh-line); background: #fff;
	color: var(--coh-muted); font-size: .9rem; font-weight: 700;
}
.coh-steps__n svg { display: none; width: 16px; height: 16px; }
.coh-steps__item.is-current { color: var(--coh-ink); }
.coh-steps__item.is-current .coh-steps__n { border-color: var(--coh-accent); background: var(--coh-accent); color: #fff; box-shadow: 0 0 0 4px var(--coh-accent-soft); }
.coh-steps__item.is-done .coh-steps__n { border-color: var(--coh-accent); background: #fff; color: var(--coh-accent); }
.coh-steps__item.is-done .coh-steps__num { display: none; }
.coh-steps__item.is-done .coh-steps__n svg { display: inline-block; }
.coh-app .coh-progress__text { display: none; margin: 14px 0 0; text-align: center; color: var(--coh-muted); font-size: .9rem; font-weight: 600; }

/* Steps */
.coh-app.is-js .coh-step { display: none; }
.coh-app.is-js .coh-step.is-active { display: block; animation: coh-in .25s ease; }
.coh-app:not(.is-js) .coh-step + .coh-step { margin-top: 36px; padding-top: 30px; border-top: 1px solid var(--coh-line); }
@keyframes coh-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.coh-app .coh-step__title {
	display: block; margin: 0 0 6px; color: var(--coh-ink);
	font-size: 1.6rem; font-weight: 700; line-height: 1.2; letter-spacing: 0; text-transform: none;
}
.coh-step__title:focus { outline: none; }
.coh-app .coh-step__intro { margin: 0 0 24px; color: var(--coh-muted); }

.coh-app .coh-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 18px; }
.coh-f { grid-column: 1 / -1; min-width: 0; }
.coh-f--half { grid-column: span 1; }

.coh-app .coh-f__label {
	display: block; margin: 0 0 7px; color: var(--coh-ink);
	font-size: .95rem; font-weight: 600; line-height: 1.35; letter-spacing: 0; text-transform: none;
}
.coh-req { color: var(--coh-accent); }
.coh-opt { color: var(--coh-muted); font-weight: 400; font-size: .85rem; }
.coh-app .coh-f__help { margin: 7px 0 0; color: var(--coh-muted); font-size: .86rem; line-height: 1.45; }
.coh-app .coh-f__error { margin: 7px 0 0; color: var(--coh-error); font-size: .88rem; font-weight: 500; }

#coh-app .coh-input {
	display: block; width: 100%; max-width: 100%; min-height: 50px; margin: 0; padding: 12px 14px;
	border: 1.5px solid var(--coh-field); border-radius: 12px; background: #fff; color: var(--coh-ink);
	font: inherit; font-size: 16px; line-height: 1.4; box-shadow: none; outline: none;
	transition: border-color .15s, box-shadow .15s;
}
#coh-app textarea.coh-input { min-height: 96px; resize: vertical; }
#coh-app select.coh-input {
	appearance: none; -webkit-appearance: none; padding-right: 42px; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%236f655e' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center; background-size: 18px;
}
#coh-app .coh-input:hover { border-color: #c2b4a8; }
#coh-app .coh-input:focus { border-color: var(--coh-accent); box-shadow: 0 0 0 4px var(--coh-accent-soft); }
#coh-app .is-invalid .coh-input { border-color: var(--coh-error); }
#coh-app .is-invalid .coh-input:focus { box-shadow: 0 0 0 4px #fde4e1; }

.coh-choices { display: flex; flex-wrap: wrap; gap: 10px; }
.coh-choices--grid { display: grid; grid-template-columns: 1fr 1fr; }
.coh-app .coh-choice {
	display: flex; align-items: center; gap: 10px; min-height: 50px; margin: 0; padding: 11px 16px;
	border: 1.5px solid var(--coh-field); border-radius: 12px; background: #fff; color: var(--coh-ink);
	font-size: .97rem; font-weight: 500; line-height: 1.35; cursor: pointer; transition: border-color .15s, background-color .15s;
}
.coh-choice:hover { border-color: #c2b4a8; }
.coh-app .coh-choice input, .coh-app .coh-consent input {
	flex: none; width: 20px; height: 20px; margin: 0; accent-color: var(--coh-accent); cursor: pointer;
}
.coh-choice:has(input:checked) { border-color: var(--coh-accent); background: var(--coh-accent-soft); }
.coh-choice:has(input:focus-visible) { box-shadow: 0 0 0 4px var(--coh-accent-soft); }
.is-invalid .coh-choice { border-color: color-mix(in srgb, var(--coh-error) 55%, var(--coh-field)); }

.coh-app .coh-consent {
	display: flex; align-items: flex-start; gap: 12px; margin: 0; padding: 14px 16px;
	border: 1.5px solid var(--coh-line); border-radius: 12px; background: var(--coh-soft);
	font-size: .97rem; line-height: 1.5; cursor: pointer;
}
.coh-app .coh-consent input { margin-top: 2px; }
.coh-consent:has(input:checked) { border-color: color-mix(in srgb, var(--coh-accent) 45%, var(--coh-line)); }
.is-invalid .coh-consent { border-color: var(--coh-error); background: #fffbfa; }
.coh-app .coh-consent a { color: var(--coh-accent); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* Review */
.coh-review { grid-column: 1 / -1; margin: 4px 0 6px; padding: 6px 20px; border-radius: 16px; background: var(--coh-soft); border: 1px solid var(--coh-line); }
.coh-review__sec { padding: 14px 0; }
.coh-review__sec + .coh-review__sec { border-top: 1px solid var(--coh-line); }
.coh-review__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.coh-app .coh-review__head h4 { margin: 0; color: var(--coh-ink); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.coh-app .coh-review__edit {
	margin: 0; padding: 2px 4px; border: 0; background: none; color: var(--coh-accent);
	font: inherit; font-size: .88rem; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; box-shadow: none;
}
.coh-app .coh-review__edit:hover { background: none; color: var(--coh-accent-dark); }
.coh-app .coh-review dl { margin: 0; }
.coh-review__row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 12px; padding: 5px 0; font-size: .92rem; }
.coh-app .coh-review dt { margin: 0; color: var(--coh-muted); font-weight: 400; }
.coh-app .coh-review dd { margin: 0; color: var(--coh-ink); font-weight: 500; white-space: pre-line; overflow-wrap: anywhere; }

/* Nav */
.coh-app__nav {
	display: flex; align-items: center; gap: 12px; margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--coh-line);
}
.coh-app__nav [data-next], .coh-app__nav [data-submit] { margin-left: auto; }
.coh-app:not(.is-js) [data-next], .coh-app:not(.is-js) [data-back] { display: none; }
.coh-app .coh-app__status { margin: 14px 0 0; text-align: right; color: var(--coh-muted); font-size: .92rem; }
.coh-app .coh-app__status:empty { display: none; }
.coh-app .coh-app__status.is-error { color: var(--coh-error); font-weight: 500; }
.coh-app .coh-app__privacy { margin: 18px 0 0; text-align: center; color: var(--coh-muted); font-size: .82rem; }

/* Honeypot */
.coh-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

/* Done */
.coh-done { padding: 26px 6px 10px; text-align: center; }
.coh-done:focus { outline: none; }
.coh-done__icon {
	display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; margin-bottom: 16px;
	border-radius: 50%; background: var(--coh-ok-soft); color: var(--coh-ok);
}
.coh-done__icon svg { width: 36px; height: 36px; }
.coh-app .coh-done__title { margin: 0 0 12px; font-size: 1.6rem; line-height: 1.25; text-transform: none; }
.coh-app .coh-done__text { max-width: 52ch; margin: 0 auto 10px; color: var(--coh-muted); }
.coh-done .coh-btn { margin-top: 14px; }


/* Chosen puppy money line */
.coh-chosen { flex-wrap: wrap; }
.coh-chosen > div { flex: 1 1 200px; }
.coh-app .coh-chosen__money { display: flex; gap: 22px; margin: 0; padding: 0; flex: 0 0 auto; }
.coh-app .coh-chosen__money div { margin: 0; }
.coh-app .coh-chosen__money dt { margin: 0; color: var(--coh-muted); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.coh-app .coh-chosen__money dd { margin: 0; color: var(--coh-ink); font-size: 1.05rem; font-weight: 700; }

/* ================================================================
 * Priority list
 * ============================================================== */
.coh-plist { width: 100%; margin: 0 auto; }
.coh-plist__summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 0 0 22px; }
.coh-plist__stat {
	display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 16px 12px;
	background: var(--coh-soft); border: 1px solid var(--coh-line); border-radius: 14px; text-align: center;
}
.coh-plist__stat strong { color: var(--coh-accent); font-size: 1.9rem; line-height: 1.1; }
.coh-plist__stat span { color: var(--coh-muted); font-size: .88rem; }

.coh-plist__wrap { overflow: hidden; background: var(--coh-card); border: 1px solid var(--coh-line); border-radius: var(--coh-radius); box-shadow: var(--coh-shadow); }
.coh-plist .coh-plist__table { width: 100%; margin: 0; border: 0; border-collapse: collapse; font-size: .95rem; line-height: 1.4; }
.coh-plist .coh-plist__table th {
	padding: 14px 16px; border: 0; border-bottom: 1px solid var(--coh-line); background: var(--coh-soft);
	color: var(--coh-muted); font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; text-align: left; white-space: nowrap;
}
.coh-plist .coh-plist__table td { padding: 14px 16px; border: 0; border-bottom: 1px solid var(--coh-line); background: transparent; color: var(--coh-ink); vertical-align: middle; }
.coh-plist .coh-plist__table tbody tr:last-child td { border-bottom: 0; }
.coh-plist .coh-plist__table tbody tr:nth-child(even) td { background: #fdfbf9; }
.coh-plist .coh-plist__n, .coh-plist .coh-plist__table th.coh-plist__n { width: 52px; text-align: center; }
.coh-plist .coh-plist__table th.coh-plist__money { text-align: right; }
.coh-plist__pos {
	display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%;
	background: var(--coh-accent-soft); color: var(--coh-accent); font-weight: 700; font-size: .9rem;
}
.coh-plist__family { font-weight: 600; }
.coh-plist .coh-plist__money { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.coh-plist__pup { display: inline-flex; align-items: center; gap: 10px; color: var(--coh-ink); font-weight: 600; line-height: 1.2; text-decoration: none; vertical-align: middle; }
a.coh-plist__pup:hover span { text-decoration: underline; }
.coh-plist .coh-plist__pup img { width: 36px; height: 36px; margin: 0; border-radius: 50%; object-fit: cover; }
.coh-plist__muted { color: var(--coh-muted); }
.coh-plist__paid { color: var(--coh-ok); font-weight: 600; }
.coh-status {
	display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px; border-radius: 999px;
	font-size: .8rem; font-weight: 600; white-space: nowrap; line-height: 1.3;
}
.coh-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.coh-status--waiting { background: #e8f0f9; color: #2c5d8f; }
.coh-status--reserved { background: var(--coh-warn-soft); color: var(--coh-warn); }
.coh-status--ready { background: var(--coh-ok-soft); color: var(--coh-ok); }
.coh-status--home { background: #eceef0; color: var(--coh-gone); }

.coh-plist__cta { margin: 26px auto 0; text-align: center; }
.coh-plist__cta p { max-width: 60ch; margin: 0 auto 16px; color: var(--coh-muted); }

@media (max-width: 760px) {
	.coh-plist__summary { gap: 8px; }
	.coh-plist__stat { padding: 12px 6px; }
	.coh-plist__stat strong { font-size: 1.5rem; }
	.coh-plist__stat span { font-size: .78rem; }
	.coh-plist__wrap { background: transparent; border: 0; box-shadow: none; overflow: visible; }
	.coh-plist .coh-plist__table, .coh-plist .coh-plist__table tbody, .coh-plist .coh-plist__table tr, .coh-plist .coh-plist__table td { display: block; width: 100%; }
	.coh-plist .coh-plist__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.coh-plist .coh-plist__table tr {
		position: relative; margin: 0 0 14px; padding: 14px 16px 6px 62px;
		background: var(--coh-card); border: 1px solid var(--coh-line); border-radius: 14px; box-shadow: var(--coh-shadow);
	}
	.coh-plist .coh-plist__table tbody tr:nth-child(even) td { background: transparent; }
	.coh-plist .coh-plist__table td {
		display: flex; justify-content: space-between; align-items: center; gap: 12px;
		padding: 7px 0; border-bottom: 1px dashed var(--coh-line); text-align: right;
	}
	.coh-plist .coh-plist__table td:last-child { border-bottom: 0; }
	.coh-plist .coh-plist__table td::before {
		content: attr(data-label); flex: none; color: var(--coh-muted);
		font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; text-align: left;
	}
	.coh-plist .coh-plist__table td.coh-plist__n { position: absolute; top: 14px; left: 16px; width: auto; padding: 0; border: 0; }
	.coh-plist .coh-plist__table td.coh-plist__n::before { display: none; }
	.coh-plist .coh-plist__table td.coh-plist__family { padding-top: 3px; font-size: 1.1rem; }
	.coh-plist .coh-plist__table td.coh-plist__family::before { display: none; }
	.coh-plist .coh-plist__money { text-align: right; }
}


/* ---------- Private priority list ---------- */
.coh-plist--locked { max-width: 620px; }
.coh-gate {
	padding: clamp(28px, 5vw, 48px) clamp(20px, 5vw, 44px); text-align: center;
	background: var(--coh-card); border: 1px solid var(--coh-line); border-radius: 22px; box-shadow: var(--coh-shadow);
}
.coh-gate__icon {
	display: inline-flex; align-items: center; justify-content: center; width: 68px; height: 68px; margin-bottom: 14px;
	border-radius: 50%; background: var(--coh-accent-soft); color: var(--coh-accent);
}
.coh-gate__icon svg { width: 32px; height: 32px; }
.coh-plist .coh-gate__title { margin: 0 0 10px; color: var(--coh-ink); font-size: 1.6rem; line-height: 1.25; text-transform: none; letter-spacing: 0; }
.coh-plist .coh-gate__text { max-width: 46ch; margin: 0 auto 24px; color: var(--coh-muted); line-height: 1.6; }
.coh-gate__form { max-width: 440px; margin: 0 auto; text-align: left; }
.coh-plist .coh-gate__label { display: block; margin: 0 0 7px; color: var(--coh-ink); font-size: .9rem; font-weight: 600; }
.coh-gate__row { display: flex; gap: 10px; }
.coh-plist .coh-gate__input {
	flex: 1; min-width: 0; min-height: 50px; margin: 0; padding: 12px 14px;
	border: 1.5px solid var(--coh-field); border-radius: 12px; background: #fff; color: var(--coh-ink);
	font: inherit; font-size: 18px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; box-shadow: none; outline: none;
}
.coh-plist .coh-gate__input::placeholder { color: #b5aaa1; font-weight: 400; letter-spacing: .04em; text-transform: none; }
.coh-plist .coh-gate__input:focus { border-color: var(--coh-accent); box-shadow: 0 0 0 4px var(--coh-accent-soft); }
.coh-plist .coh-gate__input[aria-invalid="true"] { border-color: var(--coh-error); }
.coh-plist .coh-gate__error { margin: 10px 0 0; color: var(--coh-error); font-size: .92rem; font-weight: 500; }
.coh-plist .coh-gate__help { margin: 26px 0 0; padding-top: 20px; border-top: 1px solid var(--coh-line); color: var(--coh-muted); font-size: .9rem; line-height: 1.7; }
.coh-plist .coh-gate__help a { color: var(--coh-accent); font-weight: 600; }

.coh-plist__viewer {
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 0 0 18px; padding: 10px 14px;
	border-radius: 12px; background: var(--coh-soft); border: 1px solid var(--coh-line); color: var(--coh-muted); font-size: .88rem;
}
.coh-plist__viewer svg { width: 16px; height: 16px; color: var(--coh-accent); }
.coh-plist__viewer span { flex: 1; }
.coh-plist__viewer a { color: var(--coh-accent); font-weight: 600; }
.coh-plist__date { white-space: nowrap; color: var(--coh-muted); }
.coh-plist__you {
	display: inline-block; margin-left: 8px; padding: 2px 8px; border-radius: 999px; vertical-align: 1px;
	background: var(--coh-accent); color: #fff; font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
.coh-plist .coh-plist__table tbody tr.is-you td { background: var(--coh-accent-soft); }
.coh-plist .coh-plist__table tbody tr.is-you td:first-child { box-shadow: inset 4px 0 0 var(--coh-accent); }
.coh-plist .coh-plist__note { max-width: 66ch; margin: 18px auto 0; text-align: center; color: var(--coh-muted); font-size: .9rem; }
@media (max-width: 760px) {
	.coh-gate__row { flex-direction: column; }
	.coh-plist .coh-plist__table tr.is-you { border-color: var(--coh-accent); box-shadow: 0 0 0 2px var(--coh-accent-soft); }
	.coh-plist .coh-plist__table tbody tr.is-you td { background: transparent; }
	.coh-plist .coh-plist__table tbody tr.is-you td:first-child { box-shadow: none; }
	.coh-plist .coh-plist__table td.coh-plist__family { justify-content: flex-start; }
}


/* Puppy & litter + Already home */
.coh-plist__pupname { display: inline-flex; flex-direction: column; line-height: 1.25; }
.coh-plist .coh-plist__litter { display: block; margin-top: 2px; color: var(--coh-muted); font-size: .8rem; font-weight: 400; }
.coh-plist .coh-plist__subhead { margin: 40px 0 4px; color: var(--coh-ink); font-size: 1.35rem; line-height: 1.3; text-transform: none; letter-spacing: 0; }
.coh-plist .coh-plist__subtext { margin: 0 0 14px; color: var(--coh-muted); font-size: .92rem; }
.coh-plist__wrap--home { box-shadow: none; }
.coh-plist .coh-plist__table--home td { color: var(--coh-ink); }
@media (max-width: 760px) {
	.coh-plist .coh-plist__table--home tr { padding-left: 16px; }
	.coh-plist .coh-plist__pupname { align-items: flex-end; text-align: right; }
}

/* ---------- Small screens ---------- */
@media (max-width: 640px) {
	.coh-grid { gap: 20px; }
	.coh-app { border-radius: 16px; }
	.coh-app .coh-fields { grid-template-columns: 1fr; }
	.coh-f--half { grid-column: 1 / -1; }
	.coh-choices--grid { grid-template-columns: 1fr; }
	.coh-app .coh-choice { flex: 1 1 100%; }
	.coh-app .coh-steps__label { display: none; }
	.coh-app .coh-progress__text { display: block; }
	.coh-app .coh-step__title { font-size: 1.35rem; }
	.coh-review__row { grid-template-columns: 1fr; gap: 0; padding: 7px 0; }
	.coh-app__nav { position: sticky; bottom: 0; z-index: 5; margin: 24px -20px -20px; padding: 14px 20px; background: rgba(255, 255, 255, .96); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-radius: 0 0 16px 16px; }
	.coh-app__nav .coh-btn { flex: 1; padding-left: 16px; padding-right: 16px; }
	.coh-app__nav [data-back] { flex: 0 0 auto; }
	.coh-app .coh-app__status { text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
	.coh-track, .coh-lb__track { scroll-behavior: auto; }
	.coh-card, .coh-app.is-js .coh-step.is-active { transition: none; animation: none; }
}
