/* Register — category selection (landing theme) */

.reg-page {
    min-height: 100vh;
    background: var(--landing-panel, #0c1610);
    color: var(--landing-ink, #f4f1ea);
}

.reg-page > .reg-body {
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem 1.5rem 3rem;
}

/* ── Split layout (legacy / other pages) ── */
.reg-split {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1fr;
    background: #fff;
}

@media (min-width: 1024px) {
    .reg-split {
        grid-template-columns: 3fr 7fr;
    }
}

.reg-split-hero {
    display: none;
    flex-direction: column;
    justify-content: space-between;
    padding: 2.5rem;
    color: #fff;
    position: relative;
    overflow: hidden;
    background-image:
        linear-gradient(135deg, rgba(6, 78, 59, 0.93), rgba(13, 42, 33, 0.90)),
        url("https://images.unsplash.com/photo-1500382017468-9049fed747ef?auto=format&fit=crop&w=1200&q=80");
    background-size: cover;
    background-position: center;
}

@media (min-width: 1024px) {
    .reg-split-hero {
        display: flex;
        position: sticky;
        top: 0;
        height: 100vh;
    }
}

.reg-split-brand {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    position: relative;
    z-index: 1;
}

.reg-split-brand--dark { color: #1e293b; justify-content: center; margin-bottom: 1.5rem; }

.reg-split-brand-icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.75rem;
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}

.reg-split-brand-icon--solid { background: #059669; }

.reg-split-signin {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 24rem;
    margin: 1.5rem auto;
    text-align: center;
}

.reg-split-signin h2,
.reg-split-mobile-signin h2 {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
}

.reg-split-mobile-signin h2 { color: #0f172a; font-size: 1.5rem; }

.reg-split-signin > p,
.reg-split-mobile-signin > p {
    margin: 0.25rem 0 1.5rem;
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.6);
}

.reg-split-mobile-signin > p { color: #64748b; }

.reg-split-form { display: flex; flex-direction: column; gap: 0.75rem; }

.reg-split-field {
    position: relative;
    display: block;
}

.reg-split-field .lucide-icon {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    pointer-events: none;
    display: inline-flex;
    width: 1rem;
    height: 1rem;
}

.reg-split-field .lucide-icon svg {
    width: 1rem;
    height: 1rem;
}

.reg-split-field input {
    width: 100%;
    box-sizing: border-box;
    border-radius: 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: #fff;
    padding: 0.625rem 1rem 0.625rem 2.75rem;
    font-size: 0.875rem;
    color: #334155;
}

.reg-split-field--light input {
    border-color: #e2e8f0;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

.reg-split-signin-btn {
    width: 100%;
    border: 0;
    border-radius: 0.75rem;
    background: #fff;
    color: #064e3b;
    padding: 0.625rem 1rem;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}

.reg-split-signin-btn:hover { background: #ecfdf5; }

.reg-split-signin-btn--dark {
    background: #0f172a;
    color: #fff;
    padding: 0.75rem 1rem;
}

.reg-split-signin-btn--dark:hover { background: #1e293b; }

.reg-split-signin-links {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 1rem;
    font-size: 0.75rem;
}

.reg-split-signin-links a {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
}

.reg-split-signin-links a:hover,
.reg-split-signin-links a strong { color: #fff; }

.reg-split-signin-links--dark { color: #64748b; }
.reg-split-signin-links--dark a { color: #64748b; }
.reg-split-signin-links--dark a:hover,
.reg-split-signin-links--dark strong { color: #0f172a; }

.reg-split-tagline {
    position: relative;
    z-index: 1;
}

.reg-split-tagline h1 {
    margin: 0 0 0.75rem;
    font-size: 1.875rem;
    font-weight: 600;
    line-height: 1.25;
    max-width: 22rem;
}

.reg-split-tagline p {
    margin: 0 0 1rem;
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.875rem;
    max-width: 22rem;
}

.reg-split-tagline span {
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.4);
}

.reg-split-main {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.reg-split-mobile-signin {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 2.5rem 1.5rem 2rem;
    background: #fff;
    max-width: 28rem;
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
}

@media (min-width: 1024px) {
    .lg-only-hide { display: none !important; }
}

.reg-split-back-home {
    display: block;
    text-align: center;
    margin-top: 1.5rem;
    font-size: 0.75rem;
    color: #94a3b8;
    text-decoration: none;
}

.reg-split-back-home:hover { color: #475569; }

.reg-body--split {
    background: #f8fafc;
    flex: 1;
    max-width: none;
    width: 100%;
    box-sizing: border-box;
    padding: 2.5rem 1.5rem;
}

@media (min-width: 1024px) {
    .reg-body--split {
        padding: 2.5rem;
    }
}

.reg-hero {
    position: relative;
    overflow: hidden;
    min-height: 160px;
    color: #fff;
    background-image: url("https://images.unsplash.com/photo-1500382017468-9049fed747ef?w=1600&h=300&fit=crop");
    background-size: cover;
    background-position: center;
}

.reg-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(6, 78, 59, 0.9), rgba(17, 94, 89, 0.7));
}

.reg-hero-inner {
    position: relative;
    z-index: 1;
    max-width: 64rem;
    margin: 0 auto;
    padding: 2rem 1rem;
    min-height: 160px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.reg-back-home {
    position: absolute;
    top: 1rem;
    left: 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.875rem;
    text-decoration: none;
    transition: color 0.15s ease;
}

.reg-back-home:hover {
    color: #fff;
}

.reg-badge {
    display: inline-block;
    border: 2px solid #6ee7b7;
    color: #6ee7b7;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.25em;
    padding: 0.375rem 1.25rem;
    margin-bottom: 0.75rem;
    border-radius: 9999px;
}

.reg-hero h1 {
    margin: 0;
    font-size: clamp(1.5rem, 3vw, 1.875rem);
    font-weight: 900;
    color: #fff;
}

.reg-hero p {
    margin: 0.25rem 0 0;
    max-width: 32rem;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.875rem;
}

.reg-body {
    max-width: 72rem;
    margin: 0 auto;
    padding: 2rem 1rem 3rem;
}

.reg-page .reg-back {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
    padding: 0;
    border: 0;
    background: none;
    color: var(--landing-muted, rgba(244, 241, 234, 0.72));
    font-size: 0.875rem;
    cursor: pointer;
}

.reg-page .reg-back:hover {
    color: var(--landing-accent, #c4d6a5);
}

.reg-page .reg-section-head {
    text-align: center;
    margin-bottom: 2.5rem;
}

.reg-page .reg-section-eyebrow {
    margin: 0 0 0.5rem;
    color: var(--landing-accent, #c4d6a5);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.reg-page .reg-section-head h2 {
    margin: 0;
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    font-weight: 700;
    color: var(--landing-ink, #f4f1ea);
    letter-spacing: -0.02em;
}

.reg-page .reg-section-head p {
    margin: 0.5rem 0 0;
    color: var(--landing-muted, rgba(244, 241, 234, 0.72));
    font-size: 1rem;
}

.reg-page .reg-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 768px) {
    .reg-page .reg-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (min-width: 1280px) {
    .reg-page .reg-grid {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

.reg-page .reg-card {
    display: block;
    width: 100%;
    text-align: left;
    padding: 0;
    cursor: pointer;
    border-radius: 1rem;
    overflow: hidden;
    border: 1px solid var(--landing-border, rgba(229, 231, 235, 0.28));
    background: var(--landing-panel-2, #13261c);
    box-shadow: none;
    transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
    font: inherit;
    text-decoration: none;
    color: inherit;
}

.reg-page a.reg-card:visited { color: inherit; }

.reg-page .reg-card:hover {
    border-color: rgba(196, 214, 165, 0.55);
    box-shadow: 0 12px 28px -16px rgba(0, 0, 0, 0.55);
    transform: translateY(-2px);
}

.reg-page .reg-card--emerald:hover,
.reg-page .reg-card--teal:hover,
.reg-page .reg-card--indigo:hover,
.reg-page .reg-card--blue:hover,
.reg-page .reg-card--amber:hover,
.reg-page .reg-card--orange:hover,
.reg-page .reg-card--cyan:hover {
    border-color: rgba(196, 214, 165, 0.65);
}

.reg-page .reg-card-media {
    position: relative;
    height: 128px;
    overflow: hidden;
}

.reg-page .reg-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.reg-page .reg-card:hover .reg-card-media img {
    transform: scale(1.05);
}

.reg-page .reg-card-grad {
    position: absolute;
    inset: 0;
    opacity: 0.55;
}

.reg-page .reg-card--emerald .reg-card-grad { background: linear-gradient(90deg, #1f6b45, #0f766e); }
.reg-page .reg-card--teal .reg-card-grad { background: linear-gradient(90deg, #0d9488, #1f6b45); }
.reg-page .reg-card--indigo .reg-card-grad { background: linear-gradient(90deg, #2a5a3f, #1a3326); }
.reg-page .reg-card--blue .reg-card-grad { background: linear-gradient(90deg, #254f38, #1f6b45); }
.reg-page .reg-card--amber .reg-card-grad { background: linear-gradient(90deg, #3d6b4a, #1f6b45); }
.reg-page .reg-card--orange .reg-card-grad { background: linear-gradient(90deg, #2a5a3f, #175536); }
.reg-page .reg-card--cyan .reg-card-grad { background: linear-gradient(90deg, #1f6b45, #0e7490); }

.reg-page .reg-card-badge {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    background: rgba(12, 22, 16, 0.75);
    color: var(--landing-accent, #c4d6a5);
    border: 1px solid var(--landing-border, rgba(229, 231, 235, 0.28));
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.25rem 0.625rem;
    border-radius: 9999px;
}

.reg-page .reg-card-title-row {
    position: absolute;
    bottom: 0.75rem;
    left: 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.reg-page .reg-card-icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.5rem;
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}

.reg-page .reg-card-title-row h3 {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
    color: #fff;
}

.reg-page .reg-card-body {
    padding: 1rem 1.1rem 1.15rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.reg-page .reg-card-body p {
    margin: 0;
    flex: 1;
    color: var(--landing-muted, rgba(244, 241, 234, 0.72));
    font-size: 0.875rem;
    line-height: 1.625;
}

.reg-page .reg-card-continue {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    color: var(--landing-accent, #c4d6a5);
    font-size: 0.875rem;
    font-weight: 600;
    transition: gap 0.2s;
}

.reg-page .reg-card:hover .reg-card-continue { gap: 0.625rem; }

.reg-page .reg-sub-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    max-width: 48rem;
    margin: 0 auto;
}

@media (min-width: 768px) {
    .reg-page .reg-sub-grid {
        grid-template-columns: 1fr 1fr;
    }
}

.reg-page .reg-sub-card {
    display: block;
    text-align: left;
    padding: 1.5rem;
    border-radius: 1rem;
    border: 1px solid var(--landing-border, rgba(229, 231, 235, 0.28));
    background: var(--landing-panel-2, #13261c);
    box-shadow: none;
    cursor: pointer;
    transition: border-color 0.2s ease, transform 0.2s ease;
    text-decoration: none;
    color: inherit;
}

.reg-page a.reg-sub-card:visited { color: inherit; }

.reg-page .reg-sub-card:hover {
    border-color: rgba(196, 214, 165, 0.55);
    transform: translateY(-2px);
}

.reg-page .reg-sub-card .reg-sub-emoji {
    font-size: 2.25rem;
    margin-bottom: 0.75rem;
}

.reg-page .reg-sub-card h3 {
    margin: 0 0 0.25rem;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--landing-ink, #f4f1ea);
}

.reg-page .reg-sub-card p {
    margin: 0;
    color: var(--landing-muted, rgba(244, 241, 234, 0.72));
    font-size: 0.875rem;
}

/* -- In-page registration forms -- */

.reg-form { max-width: 56rem; margin: 0 auto; display: flex; flex-direction: column; gap: 1.5rem; }
.reg-form-intro { text-align: center; margin-bottom: 0.25rem; }
.reg-form-intro h2 { margin: 0; font-size: 1.25rem; font-weight: 700; color: #1e293b; }
.reg-form-intro p { margin: 0.25rem 0 0; color: #64748b; font-size: 0.875rem; }

.reg-form-section {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    padding: 1.25rem 1.5rem;
    box-shadow: 0 1px 2px rgb(0 0 0 / 0.04);
}
.reg-form-section-head {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.reg-form-section-head h3 { margin: 0; font-size: 1rem; font-weight: 700; color: #0f172a; }
.reg-form-section-head p { margin: 0.2rem 0 0; font-size: 0.8rem; color: #64748b; }
.reg-form-step {
    width: 1.75rem; height: 1.75rem; border-radius: 9999px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 0.75rem; font-weight: 800; color: #fff; flex-shrink: 0;
}
.reg-form-section.accent-emerald .reg-form-step { background: #059669; }
.reg-form-section.accent-teal .reg-form-step { background: #0d9488; }
.reg-form-section.accent-indigo .reg-form-step { background: #4f46e5; }
.reg-form-section.accent-blue .reg-form-step { background: #2563eb; }
.reg-form-section.accent-amber .reg-form-step { background: #d97706; }
.reg-form-section.accent-orange .reg-form-step { background: #ea580c; }
.reg-form-section.accent-cyan .reg-form-step { background: #0891b2; }

.reg-fields-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}
@media (min-width: 768px) {
    .reg-fields-grid { grid-template-columns: 1fr 1fr; }
}
.reg-field { display: flex; flex-direction: column; gap: 0.35rem; }
.reg-field-label { font-size: 0.8rem; font-weight: 600; color: #334155; }

.reg-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.reg-chip {
    display: inline-flex;
    align-items: center;
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #334155;
    border-radius: 9999px;
    padding: 0.4rem 0.85rem;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
}
.reg-chip:hover { border-color: #94a3b8; }
.reg-chip.active.accent-emerald { background: #059669; border-color: #059669; color: #fff; }
.reg-chip.active.accent-teal { background: #0d9488; border-color: #0d9488; color: #fff; }
.reg-chip.active.accent-indigo { background: #4f46e5; border-color: #4f46e5; color: #fff; }
.reg-chip.active.accent-blue { background: #2563eb; border-color: #2563eb; color: #fff; }
.reg-chip.active.accent-amber { background: #d97706; border-color: #d97706; color: #fff; }
.reg-chip.active.accent-orange { background: #ea580c; border-color: #ea580c; color: #fff; }
.reg-chip.active.accent-cyan { background: #0891b2; border-color: #0891b2; color: #fff; }

.reg-check {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: #334155;
    margin-bottom: 0.65rem;
    cursor: pointer;
}
.reg-check input { margin-top: 0.2rem; }

.reg-form-actions {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.reg-btn-primary, .reg-btn-outline {
    border-radius: 9999px;
    padding: 0.7rem 1.75rem;
    font-size: 0.875rem;
    font-weight: 700;
    cursor: pointer;
    border: 0;
}
.reg-btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }
.reg-btn-primary.accent-emerald { background: #059669; color: #fff; }
.reg-btn-primary.accent-emerald:hover:not(:disabled) { background: #047857; }
.reg-btn-primary.accent-teal { background: #0d9488; color: #fff; }
.reg-btn-primary.accent-teal:hover:not(:disabled) { background: #0f766e; }
.reg-btn-primary.accent-indigo { background: #4f46e5; color: #fff; }
.reg-btn-primary.accent-indigo:hover:not(:disabled) { background: #4338ca; }
.reg-btn-primary.accent-blue { background: #2563eb; color: #fff; }
.reg-btn-primary.accent-blue:hover:not(:disabled) { background: #1d4ed8; }
.reg-btn-primary.accent-amber { background: #d97706; color: #fff; }
.reg-btn-primary.accent-amber:hover:not(:disabled) { background: #b45309; }
.reg-btn-primary.accent-orange { background: #ea580c; color: #fff; }
.reg-btn-primary.accent-orange:hover:not(:disabled) { background: #c2410c; }
.reg-btn-primary.accent-cyan { background: #0891b2; color: #fff; }
.reg-btn-primary.accent-cyan:hover:not(:disabled) { background: #0e7490; }
.reg-btn-outline {
    background: #fff;
    border: 1px solid #cbd5e1;
    color: #334155;
}
.reg-btn-outline:hover { background: #f8fafc; }

.reg-success {
    max-width: 28rem;
    margin: 3rem auto;
    text-align: center;
    padding: 2rem 1rem;
}
.reg-success-icon {
    width: 4rem; height: 4rem; border-radius: 9999px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1.75rem; font-weight: 800; color: #fff; margin-bottom: 1rem;
}
.reg-success.accent-blue .reg-success-icon { background: #3b82f6; }
.reg-success.accent-amber .reg-success-icon { background: #f59e0b; }
.reg-success.accent-orange .reg-success-icon { background: #f97316; }
.reg-success.accent-cyan .reg-success-icon { background: #06b6d4; }
.reg-success.accent-teal .reg-success-icon { background: #14b8a6; }
.reg-success.accent-indigo .reg-success-icon { background: #6366f1; }
.reg-success h2 { margin: 0 0 0.5rem; font-size: 1.5rem; font-weight: 800; }
.reg-success.accent-blue h2 { color: #1e3a8a; }
.reg-success.accent-amber h2 { color: #78350f; }
.reg-success.accent-orange h2 { color: #7c2d12; }
.reg-success.accent-cyan h2 { color: #155e75; }
.reg-success.accent-teal h2 { color: #115e59; }
.reg-success.accent-indigo h2 { color: #312e81; }
.reg-success p { color: #64748b; margin: 0 0 1.5rem; }

.reg-tracking-code {
    position: relative;
    margin: 0 auto 1.5rem;
    max-width: 22rem;
    padding: 1rem 2.75rem 1rem 1.25rem;
    border-radius: 0.75rem;
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
}
.reg-tracking-copy {
    position: absolute;
    top: 0.65rem;
    right: 0.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: none;
    border-radius: 0.5rem;
    background: transparent;
    color: #047857;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
.reg-tracking-copy:hover {
    background: rgba(4, 120, 87, 0.1);
    color: #064e3b;
}
.reg-tracking-copy:focus-visible {
    outline: 2px solid #10b981;
    outline-offset: 2px;
}
.reg-tracking-label {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #047857;
}
.reg-tracking-value {
    display: block;
    margin-top: 0.35rem;
    font-size: 1.5rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    color: #064e3b;
    user-select: all;
    word-break: break-all;
}

.reg-success-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}
.reg-success-actions .reg-btn-primary {
    min-width: 12rem;
    text-decoration: none;
}
.reg-success-link {
    font-size: 0.875rem;
    font-weight: 600;
    color: #047857;
    text-decoration: none;
}
.reg-success-link:hover {
    text-decoration: underline;
}

/* Multi-step offtaker wizard */
.ot-steps {
    display: flex; align-items: center; gap: 0.25rem;
    background: #fff; border: 1px solid #e2e8f0; border-radius: 1rem;
    padding: 0.75rem 1rem; margin: -1.25rem auto 1.5rem; max-width: 56rem;
    overflow-x: auto; box-shadow: 0 1px 3px rgb(0 0 0 / 0.06);
}
.ot-step {
    display: inline-flex; align-items: center; gap: 0.5rem;
    border: 0; background: transparent; font-size: 0.75rem; font-weight: 600;
    color: #cbd5e1; white-space: nowrap; cursor: default; padding: 0.25rem;
}
.ot-step.done { color: #475569; cursor: pointer; }
.ot-step.active { color: #047857; }
.ot-step-num {
    width: 1.5rem; height: 1.5rem; border-radius: 9999px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 0.7rem; font-weight: 700; background: #f1f5f9; color: #94a3b8;
}
.ot-step.active .ot-step-num { background: #d1fae5; color: #047857; box-shadow: 0 0 0 2px #10b981; }
.ot-step.done .ot-step-num { background: #059669; color: #fff; }
.ot-step-line { flex: 1; height: 1px; min-width: 1rem; background: #e2e8f0; }
.ot-step-line.done { background: #34d399; }
.ot-panel { background: #fff; border: 1px solid #e2e8f0; border-radius: 1rem; padding: 1.25rem; }
.ot-demand-row {
    display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center;
    padding: 0.75rem; border: 1px solid #e2e8f0; border-radius: 0.75rem; margin-bottom: 0.5rem;
}
.ot-transport-opt {
    text-align: left; width: 100%; padding: 0.75rem 1rem; border-radius: 0.75rem;
    border: 1px solid #e2e8f0; background: #fff; cursor: pointer; margin-bottom: 0.5rem;
}
.ot-transport-opt.active { background: #2563eb; border-color: #2563eb; color: #fff; }
.ot-transport-opt p { margin: 0; }
.ot-transport-opt .desc { font-size: 0.75rem; color: #94a3b8; }
.ot-transport-opt.active .desc { color: #bfdbfe; }

/* Offtaker demand step — React OfftakerDemandStep parity */
.ot-demand-step { display: flex; flex-direction: column; gap: 1.25rem; }
.ot-demand-step .ot-demand-mode { margin-bottom: 0.25rem; }
.ot-demand-step .fo-produce-panel { margin-top: 1rem; }
.ot-mode-toggle { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ot-mode-btn {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 1rem; border-radius: 9999px; border: 1px solid #cbd5e1;
    background: #fff; color: #475569; font-size: 0.875rem; font-weight: 600; cursor: pointer;
}
.ot-mode-btn.active { background: #059669; border-color: #059669; color: #fff; }
.ot-cat-scroll, .ot-type-scroll { overflow-x: auto; padding-bottom: 0.5rem; }
.ot-cat-track, .ot-type-track { display: flex; gap: 0.75rem; width: max-content; }
.ot-cat-card {
    flex-shrink: 0; width: 120px; border-radius: 0.75rem; overflow: hidden;
    border: 2px solid transparent; background: #fff; padding: 0; cursor: pointer;
}
.ot-cat-card.selected { border-color: #10b981; box-shadow: 0 8px 20px rgb(16 185 129 / 0.25); }
.ot-cat-card img { width: 100%; height: 75px; object-fit: cover; display: block; }
.ot-cat-label {
    padding: 0.35rem 0.25rem; font-size: 0.7rem; font-weight: 600; text-align: center; color: #334155; background: #fff;
}
.ot-cat-card.selected .ot-cat-label { background: #059669; color: #fff; }
.ot-type-hint { margin: 0 0 0.5rem; font-size: 0.875rem; font-weight: 600; color: #334155; }
.ot-type-card {
    flex-shrink: 0; width: 130px; background: #fff; border-radius: 0.75rem;
    border: 1px solid #e2e8f0; overflow: hidden; box-shadow: 0 1px 2px rgb(0 0 0 / 0.04);
}
.ot-type-card img { width: 100%; height: 85px; object-fit: cover; display: block; }
.ot-type-body { padding: 0.5rem; }
.ot-type-name {
    margin: 0 0 0.4rem; font-size: 0.7rem; font-weight: 700; color: #065f46;
    text-align: center; line-height: 1.2; min-height: 1.8em;
}
.ot-type-qty { font-size: 0.7rem; height: 1.75rem; text-align: center; margin-bottom: 0.4rem; border-color: #fcd34d; }
.ot-type-add {
    width: 100%; background: #f59e0b; color: #fff; border: 0; border-radius: 0.5rem;
    font-size: 0.65rem; font-weight: 700; padding: 0.3rem; cursor: pointer; text-transform: uppercase;
}
.ot-type-add:hover { background: #d97706; }
.ot-demand-heading { margin: 0 0 0.75rem; font-size: 0.95rem; font-weight: 700; color: #1e293b; }
.ot-demand-empty {
    background: #f8fafc; border: 2px dashed #e2e8f0; border-radius: 1rem;
    padding: 2.5rem 1rem; text-align: center; color: #94a3b8; font-size: 0.875rem;
}
.ot-demand-empty .sub { margin: 0.25rem 0 0; font-size: 0.75rem; color: #cbd5e1; }
.ot-demand-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem; }
.ot-demand-summary-title { font-size: 0.875rem; font-weight: 700; color: #334155; }
.ot-pill {
    font-size: 0.7rem; font-weight: 700; padding: 0.15rem 0.6rem; border-radius: 9999px; border: 1px solid;
}
.ot-pill-emerald { background: #d1fae5; color: #047857; border-color: #a7f3d0; }
.ot-pill-amber { background: #fef3c7; color: #b45309; border-color: #fde68a; }
.ot-pill-sky { background: #e0f2fe; color: #0369a1; border-color: #bae6fd; }
.ot-demand-table-wrap { overflow-x: auto; border: 1px solid #e2e8f0; border-radius: 1rem; box-shadow: 0 1px 2px rgb(0 0 0 / 0.04); }
.ot-demand-table { width: 100%; min-width: 900px; border-collapse: collapse; font-size: 0.8rem; }
.ot-demand-table thead tr { background: linear-gradient(90deg, #047857, #0f766e); color: #fff; }
.ot-demand-table th { padding: 0.6rem 0.75rem; text-align: left; font-size: 0.7rem; font-weight: 700; }
.ot-demand-table td { padding: 0.65rem 0.75rem; border-bottom: 1px solid #f1f5f9; vertical-align: middle; }
.ot-demand-product { display: flex; align-items: center; gap: 0.6rem; }
.ot-demand-product img { width: 2.25rem; height: 2.25rem; border-radius: 0.5rem; object-fit: cover; border: 1px solid #e2e8f0; }
.ot-demand-product .name { margin: 0; font-weight: 700; color: #1e293b; font-size: 0.8rem; }
.ot-demand-product .cat { margin: 0; font-size: 0.65rem; color: #94a3b8; }
.ot-qty { display: flex; align-items: center; gap: 0.25rem; }
.ot-qty input { width: 4rem; text-align: center; font-size: 0.75rem; }
.ot-qty span { font-size: 0.65rem; color: #94a3b8; white-space: nowrap; }
.ot-cert-wrap { display: flex; flex-wrap: wrap; gap: 0.25rem; min-width: 10rem; }
.ot-cert {
    font-size: 0.6rem; font-weight: 600; padding: 0.15rem 0.4rem; border-radius: 9999px;
    border: 1px solid #cbd5e1; background: #fff; color: #64748b; cursor: pointer;
}
.ot-cert.on { background: #059669; border-color: #059669; color: #fff; }
.ot-demand-remove button {
    width: 1.5rem; height: 1.5rem; border: 0; border-radius: 9999px; background: transparent;
    color: #cbd5e1; font-size: 1.1rem; cursor: pointer; line-height: 1;
}
.ot-demand-remove button:hover { background: #fee2e2; color: #ef4444; }
.ot-demand-table tfoot td { background: #ecfdf5; border-top: 2px solid #a7f3d0; font-size: 0.7rem; font-weight: 700; color: #334155; }
.ot-demand-table tfoot .total { color: #047857; font-weight: 800; }
.ot-demand-table tfoot .hint { font-weight: 400; font-style: italic; color: #94a3b8; font-size: 0.65rem; }

/* Animal offtake marketplace */
.aom { border: 1px solid #fde68a; border-radius: 1rem; overflow: hidden; background: #fff; box-shadow: 0 2px 8px rgb(0 0 0 / 0.06); }
.aom-hero {
    min-height: 120px;
    background: linear-gradient(90deg, rgb(120 53 15 / 0.9), rgb(6 78 59 / 0.75)),
        url('https://images.unsplash.com/photo-1500595046743-cd271d694d30?w=1600&h=300&fit=crop') center/cover;
    color: #fff;
}
.aom-hero-inner { padding: 1.25rem 1.5rem; }
.aom-eyebrow { font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: #fcd34d; margin-bottom: 0.25rem; }
.aom-hero h2 { margin: 0; font-size: 1.35rem; font-weight: 800; }
.aom-hero p { margin: 0.25rem 0 0; font-size: 0.85rem; color: rgb(255 255 255 / 0.75); }
.aom-steps {
    display: flex; align-items: center; gap: 0.35rem; padding: 0.75rem 1rem;
    background: #f8fafc; border-bottom: 1px solid #e2e8f0; overflow-x: auto;
}
.aom-step { display: inline-flex; align-items: center; gap: 0.4rem; opacity: 0.4; white-space: nowrap; }
.aom-step.active, .aom-step.done { opacity: 1; }
.aom-step-num {
    width: 1.75rem; height: 1.75rem; border-radius: 9999px; display: inline-flex; align-items: center; justify-content: center;
    font-size: 0.7rem; font-weight: 700; background: #e2e8f0; color: #64748b;
}
.aom-step.active .aom-step-num { background: #f59e0b; color: #fff; }
.aom-step.done .aom-step-num { background: #10b981; color: #fff; }
.aom-step-label { font-size: 0.7rem; font-weight: 600; color: #64748b; }
.aom-step.active .aom-step-label { color: #1e293b; }
.aom-step-line { width: 1rem; height: 1px; background: #cbd5e1; flex-shrink: 0; }
.aom-body { padding: 1.25rem; }
.aom-body h3 { margin: 0 0 0.75rem; font-size: 1rem; color: #1e293b; }
.aom-muted { margin: 0 0 1rem; font-size: 0.85rem; color: #64748b; }
.aom-animal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 0.75rem; }
.aom-animal-card {
    position: relative; border: 2px solid transparent; border-radius: 0.75rem; overflow: hidden;
    padding: 0; cursor: pointer; background: #fff;
}
.aom-animal-card.selected { border-color: #f59e0b; box-shadow: 0 6px 16px rgb(245 158 11 / 0.3); }
.aom-animal-card img { width: 100%; height: 6rem; object-fit: cover; display: block; }
.aom-animal-caption {
    position: absolute; left: 0; right: 0; bottom: 0; padding: 0.4rem 0.5rem;
    background: linear-gradient(transparent, rgb(0 0 0 / 0.75)); color: #fff; font-size: 0.75rem; font-weight: 700; text-align: left;
}
.aom-check {
    position: absolute; top: 0.4rem; right: 0.4rem; width: 1.25rem; height: 1.25rem; border-radius: 9999px;
    background: #f59e0b; color: #fff; font-size: 0.7rem; font-weight: 700; display: flex; align-items: center; justify-content: center;
}
.aom-animal-info { margin-top: 1rem; background: #fffbeb; border: 1px solid #fde68a; border-radius: 0.75rem; padding: 1rem; }
.aom-animal-info .title { margin: 0; font-weight: 700; color: #78350f; }
.aom-animal-info p { margin: 0.25rem 0 0; font-size: 0.85rem; color: #92400e; }
.aom-animal-info .meta { font-size: 0.75rem; color: #b45309; }
.aom-nav { display: flex; justify-content: space-between; gap: 0.75rem; margin-top: 1.25rem; flex-wrap: wrap; }
.aom-nav.end { justify-content: flex-end; }
.aom-product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 0.75rem; }
.aom-product-card {
    text-align: left; border: 2px solid #e2e8f0; border-radius: 0.75rem; padding: 1rem;
    background: #fff; cursor: pointer;
}
.aom-product-card.selected { border-color: #10b981; background: #ecfdf5; }
.aom-product-top { display: flex; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.5rem; }
.aom-product-top .icon { font-size: 1.25rem; }
.aom-product-top .name { margin: 0.25rem 0 0; font-weight: 700; font-size: 0.85rem; color: #1e293b; }
.aom-product-top .tick {
    width: 1.25rem; height: 1.25rem; border-radius: 9999px; border: 2px solid #cbd5e1;
    display: inline-flex; align-items: center; justify-content: center; font-size: 0.65rem; color: #fff;
}
.aom-product-card.selected .tick { background: #10b981; border-color: #10b981; }
.aom-product-card .desc { margin: 0 0 0.5rem; font-size: 0.7rem; color: #64748b; line-height: 1.35; }
.aom-product-meta { display: flex; justify-content: space-between; font-size: 0.7rem; color: #64748b; }
.aom-product-meta strong { color: #047857; }
.aom-demand-card { border: 1px solid #e2e8f0; border-radius: 0.75rem; padding: 1rem; margin-bottom: 0.75rem; }
.aom-demand-head { display: flex; gap: 0.75rem; align-items: center; margin-bottom: 0.75rem; }
.aom-demand-head .icon { font-size: 1.5rem; }
.aom-demand-head .name { margin: 0; font-weight: 700; }
.aom-demand-head .meta { margin: 0; font-size: 0.7rem; color: #94a3b8; }
.aom-value-banner {
    margin-top: 1rem; border-radius: 0.75rem; padding: 1rem;
    background: linear-gradient(90deg, #059669, #0f766e); color: #fff;
}
.aom-value-banner .label { margin: 0; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.aom-value-banner .value { margin: 0.25rem 0; font-size: 1.5rem; font-weight: 900; }
.aom-value-banner .sub { margin: 0; font-size: 0.75rem; opacity: 0.85; }
.aom-verify { text-align: center; max-width: 28rem; margin: 0 auto; padding: 1rem 0; }
.aom-verify-box { text-align: left; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 0.75rem; padding: 1rem; margin: 1rem 0; font-size: 0.875rem; }
.aom-verify-box .emerald { color: #047857; }
.aom-link { display: block; margin-top: 0.75rem; border: 0; background: none; color: #94a3b8; font-size: 0.85rem; cursor: pointer; }
.aom-generating { color: #059669; font-weight: 700; }
.aom-done-head { display: flex; gap: 0.75rem; align-items: flex-start; margin-bottom: 1rem; }
.aom-done-head .ok {
    width: 2rem; height: 2rem; border-radius: 9999px; background: #d1fae5; color: #059669;
    display: inline-flex; align-items: center; justify-content: center; font-weight: 800; flex-shrink: 0;
}
.aom-done-head h3 { margin: 0; color: #065f46; font-size: 1rem; }
.aom-plan-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.75rem; margin-bottom: 1rem; }
.aom-kpi { text-align: center; background: #ecfdf5; border-radius: 0.75rem; padding: 0.75rem; }
.aom-kpi strong { display: block; font-size: 1.25rem; color: #047857; }
.aom-kpi span { font-size: 0.7rem; color: #64748b; }
@media (max-width: 640px) {
    .aom-plan-grid { grid-template-columns: 1fr; }
    .aom-step-label { display: none; }
}

/* Government offtake registration */
.gov-step-title {
    display: flex; align-items: center; gap: 0.5rem;
    font-size: 1rem; font-weight: 700; color: #1e293b; margin: 0 0 1rem;
}
.gov-step-num {
    width: 1.75rem; height: 1.75rem; border-radius: 9999px;
    background: #0284c7; color: #fff; font-size: 0.75rem; font-weight: 700;
    display: inline-flex; align-items: center; justify-content: center;
}
.gov-type-grid {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem;
}
@media (min-width: 640px) { .gov-type-grid { grid-template-columns: repeat(4, 1fr); } }
.gov-type-card {
    padding: 0.75rem; border-radius: 0.75rem; border: 2px solid #e2e8f0;
    background: #fff; cursor: pointer; text-align: center;
    display: flex; flex-direction: column; gap: 0.35rem; align-items: center;
    font-size: 0.75rem; font-weight: 600; color: #334155;
}
.gov-type-card.active { border-color: #0ea5e9; background: #f0f9ff; }
.gov-item-grid {
    display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem;
}
@media (min-width: 768px) { .gov-item-grid { grid-template-columns: repeat(4, 1fr); } }
.gov-item-card {
    background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 0.75rem; padding: 0.75rem;
}
.gov-demand-table { width: 100%; border-collapse: collapse; font-size: 0.8rem; }
.gov-demand-table th { background: #0369a1; color: #fff; text-align: left; padding: 0.6rem 0.75rem; font-size: 0.7rem; }
.gov-demand-table td { padding: 0.5rem 0.75rem; border-top: 1px solid #e2e8f0; vertical-align: middle; }

.reg-prewizard { max-width: 48rem; margin: 0 auto; }
.reg-prewizard-steps {
    display: flex; align-items: center; justify-content: center; gap: 0.75rem; margin-bottom: 1.5rem;
}
.reg-prewizard-step {
    display: flex; align-items: center; gap: 0.4rem; font-size: 0.75rem; font-weight: 600; color: #94a3b8;
}
.reg-prewizard-step.active { color: #0f172a; }
.reg-prewizard-step.done { color: #059669; }
.reg-prewizard-num {
    width: 1.75rem; height: 1.75rem; border-radius: 9999px; border: 2px solid #cbd5e1;
    display: inline-flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: 800;
    background: #fff; color: #94a3b8;
}
.reg-prewizard-step.active .reg-prewizard-num { background: #059669; border-color: #059669; color: #fff; }
.reg-prewizard-step.done .reg-prewizard-num { background: #10b981; border-color: #10b981; color: #fff; }
.reg-prewizard-sep { width: 2rem; height: 2px; background: #e2e8f0; border-radius: 9999px; }
.reg-prewizard-sep.done { background: #34d399; }

.reg-option-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.75rem;
}
@media (min-width: 640px) {
    .reg-option-grid { grid-template-columns: 1fr 1fr; }
    .reg-option-grid.cols-2 { grid-template-columns: 1fr 1fr; }
}
.reg-option-card {
    text-align: left;
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    padding: 1rem;
    border-radius: 0.75rem;
    border: 2px solid #e2e8f0;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.reg-option-card:hover { border-color: #6ee7b7; }
.reg-option-card.selected { border-color: #10b981; background: #ecfdf5; }
.reg-option-emoji { font-size: 1.5rem; line-height: 1; }
.reg-option-card strong { display: block; font-size: 0.875rem; color: #0f172a; }
.reg-option-card p { margin: 0.2rem 0 0; font-size: 0.75rem; color: #64748b; }

.reg-form-section.accent-slate .reg-form-step { background: #475569; }
.reg-chip.active.accent-slate { background: #475569; border-color: #475569; color: #fff; }
.reg-btn-primary.accent-slate { background: #334155; color: #fff; }
.reg-btn-primary.accent-slate:hover:not(:disabled) { background: #1e293b; }
.reg-success.accent-slate .reg-success-icon { background: #64748b; }
.reg-success.accent-slate h2 { color: #1e293b; }
.reg-success.accent-emerald .reg-success-icon { background: #10b981; }
.reg-success.accent-emerald h2 { color: #064e3b; }
.reg-btn-primary.accent-emerald { background: #059669; color: #fff; }
.reg-btn-primary.accent-emerald:hover:not(:disabled) { background: #047857; }

.reg-access-steps {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    margin: 0 0 1.25rem;
    font-size: 0.8rem;
    color: #94a3b8;
}
.reg-access-steps .active {
    color: #065f46;
    font-weight: 700;
}
.reg-access-error {
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    background: #fef2f2;
    color: #b91c1c;
    font-size: 0.875rem;
}
.reg-access-ok {
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    background: #ecfdf5;
    color: #065f46;
    font-size: 0.875rem;
}

/* Selection check — option cards, category cards, chips */
.reg-option-card,
.ot-cat-card {
    position: relative;
}

.reg-option-card.selected::after,
.ot-cat-card.selected::after {
    content: "✓";
    position: absolute;
    top: 0.4rem;
    right: 0.4rem;
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 9999px;
    background: #059669;
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 3px rgba(5, 150, 105, 0.35);
    z-index: 2;
    pointer-events: none;
}

.reg-chip.active::before,
.ot-mode-btn.active::before {
    content: "✓";
    display: inline-block;
    margin-right: 0.3rem;
    font-weight: 700;
    line-height: 1;
}
