:root {
    --vp-teal: #087e7a;
    --vp-teal-rgb: 8, 126, 122;
    --vp-violet: #7153d9;
    --vp-coral: #ef6a65;
    --vp-ink: #162334;
    --vp-surface: #ffffff;
    --vp-soft: #edf8f7;
    --vp-shadow: 0 1.25rem 3rem rgba(27, 48, 67, .12);
    --bs-primary: var(--vp-teal);
    --bs-primary-rgb: var(--vp-teal-rgb);
    --bs-link-color: var(--vp-teal);
    --bs-link-hover-color: #05635f;
}

[data-bs-theme="dark"] {
    --vp-ink: #edf5f5;
    --vp-surface: #162334;
    --vp-soft: #102d31;
    --vp-shadow: 0 1.25rem 3rem rgba(0, 0, 0, .28);
    --bs-link-color: #64d4ca;
    --bs-link-hover-color: #91e4dc;
}

body {
    min-height: 100vh;
    color: var(--vp-ink);
    background:
        radial-gradient(circle at 8% 6%, rgba(var(--vp-teal-rgb), .12), transparent 30rem),
        radial-gradient(circle at 94% 12%, rgba(113, 83, 217, .10), transparent 32rem),
        var(--bs-body-bg);
}

.site-nav {
    background: color-mix(in srgb, var(--bs-body-bg) 88%, transparent);
    border-bottom: 1px solid var(--bs-border-color-translucent);
    backdrop-filter: blur(16px);
}

.navbar-brand { color: var(--vp-ink); font-weight: 800; letter-spacing: -.035em; }
.brand-mark { width: 2.5rem; height: 2.5rem; object-fit: contain; }
.nav-link.active, .nav-link:hover { color: var(--vp-teal) !important; }

.btn-primary {
    --bs-btn-bg: var(--vp-teal);
    --bs-btn-border-color: var(--vp-teal);
    --bs-btn-hover-bg: #066d69;
    --bs-btn-hover-border-color: #066d69;
    --bs-btn-active-bg: #055d59;
    --bs-btn-active-border-color: #055d59;
}

.btn-brand-secondary { color: #fff; background: var(--vp-violet); border-color: var(--vp-violet); }
.btn-brand-secondary:hover { color: #fff; background: #5f45bd; border-color: #5f45bd; }
.theme-toggle { text-decoration: none; }
.hero { padding: clamp(4rem, 8vw, 7.5rem) 0; }

.hero-title {
    max-width: 12ch;
    font-size: clamp(3rem, 7vw, 5.75rem);
    font-weight: 850;
    line-height: .96;
    letter-spacing: -.06em;
}

.text-gradient {
    color: var(--vp-teal);
    background: linear-gradient(110deg, var(--vp-teal), var(--vp-violet) 58%, var(--vp-coral));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.hero-copy { max-width: 38rem; font-size: 1.18rem; color: var(--bs-secondary-color); }
.pet-stage { position: relative; display: grid; min-height: 28rem; place-items: center; }

.pet-stage::before {
    position: absolute;
    width: min(28rem, 90%);
    aspect-ratio: 1;
    content: '';
    background: linear-gradient(145deg, rgba(var(--vp-teal-rgb), .2), rgba(113, 83, 217, .2));
    border-radius: 44% 56% 55% 45% / 48% 39% 61% 52%;
    animation: float-shape 8s ease-in-out infinite;
}

.hero-mark { position: relative; width: min(20rem, 66vw); filter: drop-shadow(0 1.5rem 2rem rgba(43, 52, 78, .2)); }

.feature-card, .auth-card, .content-card, .empty-state {
    background: color-mix(in srgb, var(--vp-surface) 96%, transparent);
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 1.25rem;
    box-shadow: var(--vp-shadow);
}

.feature-icon, .empty-state-icon {
    display: inline-grid;
    width: 3rem;
    height: 3rem;
    color: var(--vp-teal);
    background: var(--vp-soft);
    border-radius: 1rem;
    place-items: center;
}

.auth-wrap { width: min(100%, 34rem); margin: 4rem auto; }
.auth-card, .content-card, .empty-state { padding: clamp(1.5rem, 4vw, 2.75rem); }

.form-control:focus, .form-check-input:focus, .btn:focus-visible, .nav-link:focus-visible {
    box-shadow: 0 0 0 .25rem rgba(var(--vp-teal-rgb), .22);
}

.footer-mark { width: 1.75rem; height: 1.75rem; }
.email-preview-frame { width: 100%; min-height: 42rem; background: white; border: 0; border-radius: .75rem; }

.credit-balance {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    padding: .8rem 1.1rem;
    color: #5c3d00;
    background: #ffe8a3;
    border: 1px solid #f1ca58;
    border-radius: 999px;
}

.catalog-heading {
    display: flex;
    gap: .75rem;
    align-items: center;
    padding-top: 5.5rem;
    margin-top: -5.5rem;
    margin-bottom: 1.25rem;
    font-weight: 800;
}

.catalog-card {
    display: block;
    overflow: hidden;
    color: var(--vp-ink);
    text-decoration: none;
    background: color-mix(in srgb, var(--vp-surface) 96%, transparent);
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 1.25rem;
    box-shadow: 0 .75rem 2rem rgba(27, 48, 67, .09);
    transition: transform .18s ease, box-shadow .18s ease;
}

.catalog-card:hover { color: var(--vp-ink); transform: translateY(-3px); box-shadow: var(--vp-shadow); }

.catalog-art {
    display: block;
    width: 100%;
    height: 15rem;
    padding: 1.25rem;
    object-fit: contain;
    background: linear-gradient(145deg, rgba(var(--vp-teal-rgb), .11), rgba(113, 83, 217, .12));
}

.price { flex: 0 0 auto; color: #8b6000; font-weight: 800; }

.pet-card {
    --pet-accent: var(--vp-teal);
    display: block;
    overflow: hidden;
    color: var(--vp-ink);
    text-decoration: none;
    background: color-mix(in srgb, var(--vp-surface) 96%, transparent);
    border: 2px solid color-mix(in srgb, var(--pet-accent) 58%, transparent);
    border-radius: 1.5rem;
    box-shadow: var(--vp-shadow);
}

.pet-card:hover { color: var(--vp-ink); }
.pet-art { display: block; width: 100%; height: 22rem; padding: 1.5rem; object-fit: contain; background: color-mix(in srgb, var(--pet-accent) 18%, var(--vp-surface)); }
.pet-card .progress-bar { background: var(--pet-accent); }
.pet-card .text-bg-light { color: var(--vp-ink) !important; background: color-mix(in srgb, var(--pet-accent) 15%, var(--vp-surface)) !important; }

.summary-tile {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    height: 100%;
    padding: 1.4rem;
    color: var(--vp-ink);
    text-decoration: none;
    background: color-mix(in srgb, var(--vp-surface) 96%, transparent);
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 1.1rem;
}

.summary-tile:hover { color: var(--vp-teal); border-color: rgba(var(--vp-teal-rgb), .45); }
.summary-tile strong { font-size: 2rem; line-height: 1; }
.summary-tile span { color: var(--bs-secondary-color); }
.admin-thumb { width: 3rem; height: 3rem; margin-right: .75rem; object-fit: contain; }
.admin-art-preview { display: block; width: 10rem; height: 10rem; margin: 0 auto 1.5rem; object-fit: contain; }

@media (prefers-reduced-motion: reduce) { .catalog-card { transition: none; } }

@keyframes float-shape {
    0%, 100% { transform: translateY(0) rotate(-2deg); }
    50% { transform: translateY(-1rem) rotate(2deg); }
}

@media (prefers-reduced-motion: reduce) { .pet-stage::before { animation: none; } }
@media (max-width: 991.98px) { .hero { padding-top: 3rem; } .pet-stage { min-height: 20rem; } }
