:root {
    --cs-ink: #18211c;
    --cs-muted: #667069;
    --cs-paper: #fffdf8;
    --cs-canvas: #f2f0e9;
    --cs-line: #d8d9d1;
    --cs-sage: #48624f;
    --cs-sage-deep: #304638;
    --cs-sage-soft: #dfe7df;
    --cs-red: #a33b36;
    --cs-red-deep: #7e2926;
    --cs-gold: #bd9754;
    --cs-shadow: 0 18px 50px rgba(31, 43, 35, .09);
    --cs-radius: 1.15rem;
}

html { scroll-behavior: smooth; }

body.public-page,
body.auth-page,
body.admin-page {
    min-height: 100vh;
    color: var(--cs-ink);
    background:
        radial-gradient(circle at 8% 4%, rgba(189, 151, 84, .10), transparent 28rem),
        linear-gradient(180deg, #f8f6f0 0, var(--cs-canvas) 100%);
    font-family: Inter, ui-sans-serif, system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
}

body.public-page h1,
body.public-page h2,
body.auth-page h1 {
    color: var(--cs-ink);
    font-family: Georgia, 'Times New Roman', serif;
    letter-spacing: -.035em;
}

body.public-page a { color: var(--cs-sage-deep); }

body.public-page .navbar,
body.admin-page .navbar {
    min-height: 72px;
    background: rgba(255, 253, 248, .9) !important;
    border-color: rgba(72, 98, 79, .18) !important;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .75);
    backdrop-filter: blur(16px);
}

body.public-page .navbar-brand,
body.public-page .brand,
body.public-page .navbar > a:first-child,
body.admin-page .navbar-brand {
    color: var(--cs-sage-deep) !important;
    font-weight: 800 !important;
    letter-spacing: -.025em;
}

body.public-page .btn,
body.auth-page .btn,
body.admin-page .btn {
    border-radius: 999px;
    font-weight: 700;
    letter-spacing: -.01em;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;
}

body.public-page .btn:hover,
body.auth-page .btn:hover,
body.admin-page .btn:hover { transform: translateY(-1px); }

body.public-page .btn-sage,
body.auth-page .btn-primary,
body.admin-page .btn-sage {
    color: #fff !important;
    background: var(--cs-sage-deep) !important;
    border-color: var(--cs-sage-deep) !important;
    box-shadow: 0 8px 20px rgba(48, 70, 56, .18);
}

body.public-page .btn-sage:hover,
body.auth-page .btn-primary:hover,
body.admin-page .btn-sage:hover {
    background: #24372c !important;
    box-shadow: 0 10px 24px rgba(48, 70, 56, .24);
}

body.public-page .btn-outline-sage {
    color: var(--cs-sage-deep);
    background: rgba(255,255,255,.5);
    border-color: rgba(48,70,56,.35);
}

body.public-page .btn-outline-sage:hover {
    color: #fff;
    background: var(--cs-sage-deep);
    border-color: var(--cs-sage-deep);
}

body.public-page .public-navbar-links { margin-left: auto; }
body.public-page .public-navbar .btn { min-width: 7.5rem; }

body.public-page .card,
body.auth-page .card,
body.admin-page .card,
body.admin-page .stat-card {
    background: rgba(255, 253, 248, .96);
    border: 1px solid rgba(72, 98, 79, .17);
    border-radius: var(--cs-radius);
    box-shadow: var(--cs-shadow);
}

body.public-page .form-control,
body.public-page .form-select,
body.auth-page .form-control,
body.admin-page .form-control,
body.admin-page .form-select {
    min-height: 48px;
    color: var(--cs-ink);
    background-color: rgba(255,255,255,.8);
    border-color: #cbd0c9;
    border-radius: .75rem;
}

body.public-page textarea.form-control,
body.admin-page textarea.form-control { min-height: auto; }

body.public-page .form-control:focus,
body.public-page .form-select:focus,
body.auth-page .form-control:focus,
body.admin-page .form-control:focus,
body.admin-page .form-select:focus {
    border-color: var(--cs-sage);
    box-shadow: 0 0 0 .25rem rgba(72, 98, 79, .13);
}

body.public-page .eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    color: var(--cs-sage-deep);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .16em;
}

body.public-page .eyebrow::before {
    content: '';
    width: 1.8rem;
    height: 1px;
    background: var(--cs-gold);
}

body.landing-page .hero {
    position: relative;
    isolation: isolate;
    min-height: 680px;
    display: grid;
    place-items: center;
    overflow: hidden;
    background:
        linear-gradient(rgba(255,253,248,.72), rgba(248,246,240,.92)),
        repeating-linear-gradient(90deg, transparent 0 79px, rgba(72,98,79,.05) 80px);
    border-bottom: 1px solid rgba(72,98,79,.14);
}

body.landing-page .hero::before,
body.landing-page .hero::after {
    content: '';
    position: absolute;
    z-index: -1;
    border: 1px solid rgba(72,98,79,.16);
    border-radius: 50%;
}

body.landing-page .hero::before { width: 34rem; height: 34rem; top: -18rem; right: -8rem; box-shadow: 0 0 0 4rem rgba(72,98,79,.035); }
body.landing-page .hero::after { width: 18rem; height: 18rem; bottom: -10rem; left: -4rem; box-shadow: 0 0 0 3rem rgba(189,151,84,.045); }

body.landing-page .hero h1 { font-size: clamp(3.3rem, 7vw, 6.5rem); line-height: .94; }
body.landing-page .typewriter-container { color: var(--cs-red); font-family: Inter, sans-serif; font-size: clamp(1.4rem, 3vw, 2.8rem); letter-spacing: -.045em; }
body.landing-page .typewriter-cursor { width: 2px; height: 2.8rem; background: var(--cs-red-deep); }
body.landing-page .hero .lead { color: #59635c !important; font-size: 1.16rem; line-height: 1.75; }

body.landing-page .feature-card {
    height: 100%;
    padding: 2rem;
    text-align: left;
    background: var(--cs-paper);
    border: 1px solid rgba(72,98,79,.16);
    border-radius: var(--cs-radius);
    box-shadow: 0 12px 35px rgba(31,43,35,.06);
}

body.landing-page .feature-icon {
    display: grid;
    width: 3.2rem;
    height: 3.2rem;
    place-items: center;
    font-size: 1.4rem;
    background: var(--cs-sage-soft);
    border-radius: 50%;
}

body.landing-page section.bg-white { background: var(--cs-sage-deep) !important; }
body.landing-page section.bg-white h2 { color: #fff !important; font-size: clamp(2.5rem, 5vw, 4.5rem); }
body.landing-page section.bg-white p { color: rgba(255,255,255,.72) !important; font-size: 1.05rem; line-height: 1.8; }

body.workflow-page main,
body.lookup-page main,
body.lookup-page > .container { padding-top: clamp(3rem, 7vw, 6rem) !important; padding-bottom: 6rem !important; }

body.lookup-page .search-container {
    max-width: 600px;
    margin: 0 auto;
    padding: clamp(1.75rem, 5vw, 3.5rem);
    background: rgba(255,253,248,.97);
    border: 1px solid rgba(72,98,79,.17);
    border-radius: var(--cs-radius);
    box-shadow: var(--cs-shadow);
}

body.lookup-page .search-container::before {
    content: 'OFFICIAL RECORDS DIVISION';
    display: block;
    margin-bottom: 1rem;
    color: var(--cs-gold);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-align: center;
}

body.public-page .small-note,
body.public-page .result-box {
    background: var(--cs-sage-soft) !important;
    border: 1px solid rgba(72,98,79,.14);
    border-left: 4px solid var(--cs-sage) !important;
}

body.public-page .chat-toggle-button {
    width: 56px;
    height: 56px;
    background: var(--cs-sage-deep) !important;
    box-shadow: 0 12px 30px rgba(31,43,35,.25);
}

body.public-page .chat-bubble {
    width: min(320px, calc(100vw - 40px));
    padding: 1.35rem;
    background: var(--cs-paper);
    border: 1px solid rgba(72,98,79,.18);
    border-radius: 1rem;
    box-shadow: var(--cs-shadow);
}

body.public-page .chat-bubble h1,
body.public-page .chat-bubble h5 { font-family: Inter, sans-serif; font-size: 1.05rem; letter-spacing: -.02em; }

body.auth-page { display: grid; place-items: center; padding: 2rem 1rem; }
body.auth-page main { width: 100%; max-width: 480px !important; padding: 0 !important; }
body.auth-page .card-body { padding: clamp(2rem, 6vw, 3.25rem) !important; }
body.auth-page .auth-mark { color: var(--cs-sage-deep); font-family: Inter, sans-serif; font-size: .82rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

body.admin-page .container-fluid { max-width: 1600px; }
body.admin-page .stat-card { min-height: 132px; transition: transform .18s ease, box-shadow .18s ease; }
body.admin-page a.stat-card:hover { transform: translateY(-2px); box-shadow: 0 22px 55px rgba(31,43,35,.12); }
body.admin-page .table { --bs-table-bg: transparent; }
body.admin-page .table thead th { color: var(--cs-muted); font-size: .7rem; letter-spacing: .09em; text-transform: uppercase; border-bottom-color: var(--cs-line); }
body.admin-page .table tbody td { padding-top: 1rem; padding-bottom: 1rem; border-color: #e8e7e0; }
body.admin-page details > summary.btn-danger { background: var(--cs-red-deep); border-color: var(--cs-red-deep); }

@media (max-width: 767.98px) {
    body.public-page .navbar { align-items: flex-start; gap: .75rem; padding: .85rem 1rem !important; }
    body.public-page .navbar > .d-flex { width: 100%; gap: .4rem !important; }
    body.public-page .navbar > .d-flex .btn { flex: 1; padding-inline: .55rem; font-size: .72rem; }
    body.landing-page .hero { min-height: 590px; padding: 5rem 0; }
    body.landing-page .typewriter-cursor { height: 2rem; }
    body.public-page .chat-widget-container { right: 16px; bottom: 16px; }
    body.admin-page .container-fluid { padding: 1rem !important; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
    .fade-in-section { opacity: 1 !important; transform: none !important; }
}
