:root {
    --public-primary: #24569a;
    --public-primary-dark: #153b70;
    --public-ink: #11263d;
    --public-muted: #63768a;
    --public-bg: #f7f9fc;
    --public-border: #e5eaf0;
    --public-radius: 1.25rem;
}

html { scroll-behavior: smooth; }

.public-body {
    background: #fff;
    color: var(--public-ink);
}

.public-header {
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid rgba(229,234,240,.9);
    backdrop-filter: blur(14px);
}

.public-brand-mark {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: .8rem;
    color: #fff;
    background: linear-gradient(135deg, #3b82f6, var(--public-primary));
    box-shadow: 0 .55rem 1.2rem rgba(36,86,154,.2);
}

.public-header .nav-link {
    color: #425970;
    font-weight: 600;
}

.public-header .nav-link:hover { color: var(--public-primary); }

.public-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 78% 12%, rgba(59,130,246,.15), transparent 25rem),
        linear-gradient(180deg, #f8fbff 0%, #fff 100%);
}

.py-lg-6 { padding-top: 6rem !important; padding-bottom: 6rem !important; }

.public-kicker {
    color: var(--public-primary);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .14em;
}

.public-kicker-light { color: #8db8ff; }

.public-hero-title { letter-spacing: -.045em; }
.public-hero-title span { color: var(--public-primary); }

.public-product-preview {
    overflow: hidden;
    border: 1px solid var(--public-border);
    border-radius: 1.5rem;
    background: #fff;
    box-shadow: 0 2rem 5rem rgba(17,38,61,.14);
    transform: rotate(1deg);
}

.public-preview-bar {
    display: flex;
    align-items: center;
    padding: .85rem 1rem;
    border-bottom: 1px solid var(--public-border);
    background: #f8fafc;
}

.public-preview-dot {
    width: 9px;
    height: 9px;
    margin-right: 5px;
    border-radius: 50%;
    background: #d4dce5;
}

.public-mini-stat,
.public-preview-panel {
    border: 1px solid var(--public-border);
    border-radius: 1rem;
    background: #fbfcfe;
}

.public-mini-stat { padding: .85rem; }
.public-mini-stat span { display:block; color:var(--public-muted); font-size:.7rem; }
.public-mini-stat strong { display:block; margin-top:.25rem; font-size:1.05rem; }
.public-preview-panel { padding: 1rem; }

.public-preview-task {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .7rem 0;
    border-top: 1px solid var(--public-border);
    font-size: .8rem;
}

.public-preview-task i {
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-right: 7px;
    border-radius: 50%;
    background: #22c55e;
}

.public-section-heading { max-width: 740px; }

.public-feature-card,
.public-blog-card,
.public-price-card {
    position: relative;
    border: 1px solid var(--public-border);
    border-radius: var(--public-radius);
    background: #fff;
    box-shadow: 0 .5rem 2rem rgba(17,38,61,.05);
}

.public-feature-card {
    padding: 1.5rem;
    transition: transform .18s ease, box-shadow .18s ease;
}

.public-feature-card:hover,
.public-blog-card:hover { transform: translateY(-3px); box-shadow: 0 1rem 2.5rem rgba(17,38,61,.09); }

.public-feature-number {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: .9rem;
    color: var(--public-primary);
    background: rgba(36,86,154,.08);
    font-weight: 800;
}

.public-dark-section {
    background: linear-gradient(135deg, #102a43 0%, #173d64 55%, #0f3154 100%);
}

.public-role-card {
    height: 100%;
    padding: 1.35rem;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 1rem;
    background: rgba(255,255,255,.06);
}

.public-role-card strong,
.public-role-card span { display:block; }
.public-role-card strong { color:#fff; margin-bottom:.45rem; }
.public-role-card span { color:rgba(255,255,255,.58); font-size:.9rem; }

.public-price-card { overflow:hidden; }
.public-price-card.featured { border-color: rgba(36,86,154,.45); box-shadow: 0 1rem 3rem rgba(36,86,154,.14); }

.public-featured-label {
    padding: .45rem 1rem;
    color: #fff;
    background: var(--public-primary);
    font-size: .75rem;
    font-weight: 800;
    text-align: center;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.public-price strong { font-size: 2.35rem; letter-spacing:-.04em; }
.public-price span { margin-left:.25rem; font-weight:700; }
.public-price small { color:var(--public-muted); }
.min-plan-description { min-height: 3.25rem; }

.public-soft-section,
.public-page-hero { background: var(--public-bg); }

.public-accordion .accordion-item {
    margin-bottom: .75rem;
    overflow: hidden;
    border: 1px solid var(--public-border);
    border-radius: 1rem !important;
}

.public-accordion .accordion-button {
    font-weight: 700;
    box-shadow: none;
}

.public-accordion .accordion-button:not(.collapsed) {
    color: var(--public-primary);
    background: #f8fbff;
}

.public-blog-card { overflow:hidden; }

.public-prose {
    color: #3f556b;
    line-height: 1.8;
    /* HTML defines its own breaks; legacy plain text is rendered with <br>. */
    white-space: normal;
}

.public-prose-lg { font-size: 1.08rem; line-height: 1.9; }

.public-empty {
    padding: 3rem;
    border: 1px dashed #ccd6e1;
    border-radius: 1rem;
    color: var(--public-muted);
    background: #fafbfd;
}

.public-cta-section { background: #f7f9fc; }
.public-cta-card {
    padding: 3rem 1.5rem;
    border-radius: 1.5rem;
    background: linear-gradient(135deg, var(--public-primary-dark), var(--public-primary));
    box-shadow: 0 1.5rem 4rem rgba(36,86,154,.18);
}

.public-cta-card p { max-width: 680px; }

.public-footer { background:#0e2237; }
.public-footer-link { color:rgba(255,255,255,.56); text-decoration:none; }
.public-footer-link:hover { color:#fff; }

@media (max-width: 991.98px) {
    .py-lg-6 { padding-top: 4rem !important; padding-bottom: 4rem !important; }
    .public-product-preview { transform:none; }
}

@media (max-width: 575.98px) {
    .public-hero .display-4,
    .public-page-hero .display-5 { font-size: 2.3rem; }
    .public-price strong { font-size: 2rem; }
    .public-cta-card { padding: 2.25rem 1rem; }
}


.public-site-logo {
    display: block;
    width: auto;
    max-width: 180px;
    height: 38px;
    object-fit: contain;
}

.public-site-logo-footer {
    max-width: 160px;
    max-height: 42px;
    filter: brightness(0) invert(1);
}

.public-content-hero-image {
    display: block;
    width: 100%;
    max-height: 460px;
    object-fit: cover;
    border-radius: 1.25rem;
    box-shadow: 0 1rem 3rem rgba(17,38,61,.1);
}

.public-blog-card-image {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-bottom: 1px solid var(--public-border);
}

.public-contact-card {
    border: 1px solid var(--public-border);
    border-radius: var(--public-radius);
    background: #fff;
    box-shadow: 0 .75rem 2.5rem rgba(17,38,61,.06);
}

.public-honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}


.public-checkout-card {
    border: 1px solid var(--public-border);
    border-radius: var(--public-radius);
    background: #fff;
    box-shadow: 0 .75rem 2.5rem rgba(17,38,61,.06);
}

.public-checkout-step {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    color: #fff;
    background: var(--public-primary);
    font-weight: 800;
    box-shadow: 0 .5rem 1.25rem rgba(36,86,154,.2);
}

.public-checkout-summary {
    top: 6.5rem;
}

.public-checkout-price strong {
    font-size: 2.4rem;
    letter-spacing: -.04em;
}

.public-checkout-price span {
    margin-left: .25rem;
    font-weight: 700;
}

.public-checkout-price small {
    color: var(--public-muted);
}

.public-checkout-success {
    max-width: 760px;
}

.public-checkout-success-mark {
    display: inline-grid;
    place-items: center;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    color: #fff;
    background: #16a34a;
    font-size: 2rem;
    font-weight: 800;
    box-shadow: 0 1rem 2.5rem rgba(22,163,74,.22);
}

@media (max-width: 1199.98px) {
    .public-checkout-summary {
        position: static !important;
    }
}


/* Public API documentation */
.public-api-resource-card {
    padding: 1.25rem;
    border: 1px solid var(--public-border);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 .5rem 2rem rgba(17,38,61,.04);
}

.public-api-base-url {
    display: block;
    overflow-wrap: anywhere;
    color: var(--public-primary);
    font-size: .95rem;
}

.public-api-docs-shell {
    display: grid;
    grid-template-columns: minmax(180px, 230px) minmax(0, 1fr);
    gap: 2rem;
    align-items: start;
}

.public-api-docs-aside {
    position: sticky;
    top: 6.5rem;
    padding: 1.15rem;
    border: 1px solid var(--public-border);
    border-radius: 1rem;
    background: #fbfcfe;
}

.public-api-docs-content {
    min-width: 0;
    color: #334e68;
    line-height: 1.72;
}

.public-api-docs-content > :first-child {
    margin-top: 0;
}

.public-api-docs-content h1,
.public-api-docs-content h2,
.public-api-docs-content h3 {
    color: var(--public-ink);
    font-weight: 750;
    letter-spacing: -.025em;
}

.public-api-docs-content h1 {
    margin-bottom: 1rem;
    font-size: clamp(1.7rem, 3vw, 2.3rem);
}

.public-api-docs-content h2 {
    margin: 2.4rem 0 .9rem;
    padding-top: .4rem;
    border-top: 1px solid var(--public-border);
    font-size: 1.35rem;
}

.public-api-docs-content h3 {
    margin: 1.6rem 0 .7rem;
    font-size: 1.08rem;
}

.public-api-docs-content p,
.public-api-docs-content ul,
.public-api-docs-content ol {
    margin-bottom: 1rem;
}

.public-api-docs-content code {
    padding: .12em .38em;
    border: 1px solid #e3e8ef;
    border-radius: .38rem;
    background: #f6f8fb;
    color: #b4235a;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
    font-size: .88em;
    font-variant-ligatures: none;
}

.public-api-docs-content pre {
    position: relative;
    margin: 1rem 0 1.35rem;
    padding: 2.7rem 1.1rem 1.1rem;
    overflow-x: auto;
    border: 1px solid #1f2937;
    border-radius: .9rem;
    background: #0b1220;
    box-shadow: 0 .75rem 2rem rgba(11,18,32,.14);
    color: #dbe7f3;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
    font-size: .82rem;
    line-height: 1.65;
    tab-size: 4;
    -webkit-overflow-scrolling: touch;
}

.public-api-docs-content pre::before {
    content: "CODE";
    position: absolute;
    top: .7rem;
    right: .85rem;
    color: #7f93aa;
    font-family: Inter, system-ui, sans-serif;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .12em;
}

.public-api-docs-content pre:has(> code.language-bash)::before { content: "BASH"; }
.public-api-docs-content pre:has(> code.language-json)::before { content: "JSON"; }
.public-api-docs-content pre:has(> code.language-http)::before { content: "HTTP"; }
.public-api-docs-content pre:has(> code.language-text)::before { content: "TEXT"; }

.public-api-docs-content pre code {
    display: block;
    min-width: max-content;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    white-space: pre;
}

.public-api-docs-content pre code::selection,
.public-api-docs-content pre code *::selection {
    background: #334155;
    color: #fff;
}

.public-api-docs-content pre::-webkit-scrollbar {
    height: 10px;
}

.public-api-docs-content pre::-webkit-scrollbar-track {
    background: #111827;
}

.public-api-docs-content pre::-webkit-scrollbar-thumb {
    border: 2px solid #111827;
    border-radius: 999px;
    background: #475569;
}

.public-api-docs-content pre::-webkit-scrollbar-thumb:hover {
    background: #64748b;
}

.public-api-docs-content blockquote {
    margin: 1rem 0;
    padding: .9rem 1rem;
    border-left: 3px solid var(--public-primary);
    background: #f3f7fd;
    color: #334e68;
}

.public-api-docs-content blockquote > :last-child {
    margin-bottom: 0;
}

.public-api-docs-content table {
    width: 100%;
    margin: 1rem 0 1.5rem;
    border-collapse: collapse;
    font-size: .9rem;
}

.public-api-docs-content th,
.public-api-docs-content td {
    padding: .65rem .75rem;
    border: 1px solid var(--public-border);
    vertical-align: top;
    text-align: left;
}

.public-api-docs-content th {
    background: #f7f9fc;
    color: var(--public-ink);
    font-weight: 700;
}

@media (max-width: 991.98px) {
    .public-api-docs-shell {
        grid-template-columns: 1fr;
    }

    .public-api-docs-aside {
        position: static;
    }
}

@media (max-width: 767.98px) {
    .public-api-docs-content {
        font-size: .94rem;
    }

    .public-api-docs-content table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }

    .public-api-docs-content pre {
        font-size: .76rem;
    }
}


/* Public subscription plan pages and complete comparison */
.public-plan-heading { background: #f7f9fc; border-bottom: 1px solid var(--public-border); }
.public-plan-heading .lead { max-width: 780px; }
.public-plan-summary,
.public-plan-purchase,
.public-plan-limit,
.public-plan-capability,
.public-plan-future-item {
    border: 1px solid var(--public-border);
    border-radius: 1rem;
    background: #fff;
}
.public-plan-summary {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: .4rem;
}
.public-plan-summary.is-featured { border-color: #839ab5; }
.public-plan-summary-price { font-size: 1.35rem; font-weight: 750; letter-spacing: -.025em; margin: .4rem 0 .9rem; }
.public-plan-summary-price span { font-weight: 400; letter-spacing: 0; }
.public-plan-eyebrow { color: #426287; font-size: .7rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.public-plan-comparison-scroll { overflow-x: auto; border: 1px solid var(--public-border); border-radius: 1rem; background: #fff; }
.public-plan-comparison-scroll:focus-visible { outline: 2px solid #24569a; outline-offset: 3px; }
.public-plan-comparison { width: 100%; min-width: 760px; border-collapse: separate; border-spacing: 0; font-size: .87rem; }
.public-plan-comparison th,
.public-plan-comparison td { border-bottom: 1px solid #e8edf3; padding: .95rem .85rem; text-align: center; vertical-align: middle; }
.public-plan-comparison thead th { background: #f3f6fa; color: #24374b; font-weight: 750; white-space: nowrap; }
.public-plan-comparison th:first-child { position: sticky; left: 0; min-width: 225px; max-width: 275px; text-align: left; background: #fff; box-shadow: 1px 0 0 #e8edf3; z-index: 1; }
.public-plan-comparison thead th:first-child { background: #f3f6fa; z-index: 3; }
.public-plan-comparison .public-plan-table-section th { position: static; text-align: left; background: #eaf0f6; color: #334b65; font-size: .8rem; letter-spacing: .03em; }
.public-plan-comparison tr:last-child td,
.public-plan-comparison tr:last-child th { border-bottom: 0; }
.public-plan-compare-description { display: block; font-size: .74rem; font-weight: 400; color: #738397; line-height: 1.5; margin-top: .25rem; }
.public-plan-state { display: inline-flex; align-items: center; gap: .35rem; font-size: .79rem; font-weight: 700; white-space: nowrap; }
.public-plan-state.is-included { color: #22764d; }
.public-plan-state.is-excluded { color: #7c8793; }
.public-plan-short-feature { display: flex; align-items: baseline; gap: .55rem; padding: .33rem 0; font-size: .85rem; }
.public-plan-short-feature > span:first-child { flex-shrink: 0; font-weight: 750; }
.public-plan-short-feature.is-included > span:first-child { color: #22764d; }
.public-plan-short-feature.is-excluded { color: #89939f; }
.public-plan-list-heading { font-size: .77rem; font-weight: 750; color: #354d64; margin: 0 0 .7rem; }
.public-plan-detail-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: .86rem; text-decoration: none; font-weight: 700; }
.public-plan-detail-link:hover { text-decoration: underline; }
.public-plan-purchase { padding: 1.4rem; }
.public-plan-detail-price { font-size: clamp(1.9rem, 3vw, 2.5rem); font-weight: 800; letter-spacing: -.04em; }
.public-plan-detail-price span { font-size: 1rem; font-weight: 700; letter-spacing: 0; }
.public-plan-limit { padding: 1.3rem; display: flex; flex-direction: column; gap: .45rem; }
.public-plan-limit > span { color: #65768a; font-size: .8rem; }
.public-plan-limit strong { color: #20364c; font-size: 1.5rem; font-weight: 750; letter-spacing: -.025em; }
.public-plan-limit small { display: block; color: #7a8999; line-height: 1.45; }
.public-plan-capability { padding: 1.2rem 1.3rem; }
.public-plan-feature-details { border: 1px solid var(--public-border); border-radius: 1rem; overflow: hidden; background: #fff; }
.public-plan-feature-detail { display: grid; grid-template-columns: minmax(115px, 150px) minmax(0, 1fr); align-items: start; gap: 1.2rem; padding: 1.2rem 1.4rem; border-bottom: 1px solid #e8edf3; }
.public-plan-feature-detail:last-child { border-bottom: 0; }
.public-plan-future-item { padding: 1.1rem 1.25rem; background: #fafbfd; }
.public-plan-roadmap { padding: 1.4rem; background: #f6f8fb; border: 1px solid var(--public-border); border-radius: 1rem; }
.public-plan-detail-footer { border-top: 1px solid var(--public-border); padding-top: 2rem; }
@media (max-width: 575.98px) {
    .public-plan-feature-detail { grid-template-columns: 1fr; gap: .55rem; padding: 1rem; }
    .public-plan-roadmap { padding: 1rem; }
    .public-plan-summary { padding: 1.2rem; }
    .public-plan-comparison { font-size: .8rem; }
    .public-plan-comparison th, .public-plan-comparison td { padding: .8rem .65rem; }
    .public-plan-comparison th:first-child { min-width: 178px; max-width: 190px; }
}


/* Mobile overflow guardrails: constrain the causes, not the whole page. */
.public-navbar-brand,
.public-footer-brand {
    min-width: 0;
}
.public-navbar-brand .public-brand-text,
.public-footer-brand .public-brand-text {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.public-footer-brand { max-width: 100%; }
.public-footer-brand .public-brand-text { flex: 1 1 auto; }
.public-footer-brand .public-site-logo { flex: 0 1 auto; min-width: 0; }

/* User-authored URLs, images and code must not expand the page viewport. */
.public-prose,
.public-api-docs-content,
.public-plan-heading,
.public-plan-feature-detail {
    overflow-wrap: anywhere;
}
.public-prose img,
.public-prose video,
.public-api-docs-content img {
    max-width: 100%;
    height: auto;
}
.public-prose pre {
    max-width: 100%;
    overflow-x: auto;
}
.public-plan-summary,
.public-plan-purchase,
.public-plan-limit,
.public-plan-capability,
.public-plan-future-item,
.public-price,
.public-plan-summary-price,
.public-plan-detail-price {
    min-width: 0;
    overflow-wrap: anywhere;
}
/* Keep the desktop comparison's overflow inside its bounded container. */
.public-plan-comparison-scroll {
    width: 100%;
    max-width: 100%;
    overscroll-behavior-x: contain;
}

.public-plan-mobile-list { display: grid; gap: .9rem; }
.public-plan-mobile-item {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--public-border);
    border-radius: 1rem;
    background: #fff;
}
.public-plan-mobile-item[open] { border-color: #a4b7cc; }
.public-plan-mobile-summary {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: .2rem;
    padding: 1rem 3rem 1rem 1rem;
    cursor: pointer;
    list-style: none;
}
.public-plan-mobile-summary::-webkit-details-marker { display: none; }
.public-plan-mobile-summary::after {
    content: '+';
    position: absolute;
    top: 50%;
    right: 1.1rem;
    transform: translateY(-50%);
    font-size: 1.5rem;
    font-weight: 400;
    color: var(--public-primary);
}
.public-plan-mobile-item[open] .public-plan-mobile-summary::after { content: '−'; }
.public-plan-mobile-summary:focus-visible { outline: 2px solid var(--public-primary); outline-offset: -3px; }
.public-plan-mobile-title { font-weight: 750; overflow-wrap: anywhere; }
.public-plan-mobile-hint { font-size: .78rem; color: var(--public-muted); }
.public-plan-mobile-content { padding: 1rem; border-top: 1px solid var(--public-border); }
.public-plan-mobile-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: .8rem;
    padding: .7rem 0;
    border-bottom: 1px solid #edf1f6;
    font-size: .86rem;
}
.public-plan-mobile-row > :first-child { min-width: 0; overflow-wrap: anywhere; }
.public-plan-mobile-row > :last-child {
    flex: 0 0 auto;
    text-align: right;
    max-width: 48%;
    overflow-wrap: anywhere;
}
.public-plan-mobile-row strong { color: var(--public-ink); }

@media (max-width: 991.98px) {
    /* Leave room for the navbar toggle instead of letting logo + text
       claim more than the width of the phone. */
    .public-navbar-brand {
        flex: 0 1 auto;
        min-width: 0;
        max-width: calc(100% - 4.75rem);
        margin-right: .5rem;
    }
    .public-navbar-brand .public-site-logo {
        flex: 0 1 auto;
        min-width: 0;
        max-width: min(32vw, 124px);
        object-fit: contain;
    }
    .public-navbar-brand .public-brand-text { flex: 1 1 auto; }
    .public-header .navbar-toggler { flex: 0 0 auto; }
    .public-header .navbar-collapse { min-width: 0; flex-basis: 100%; }
}
@media (max-width: 767.98px) {
    .public-footer-brand .public-site-logo { max-width: min(40vw, 130px); }
    .public-prose table {
        display: block;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
    }
    .public-plan-mobile-list { display: grid; }
}
