/* ============================================================
   NET RENTALS — WEBHOOKS
   /css/marketing/developers/webhooks.css

   DEPENDS ON:
   /css/marketing/rentals-marketing-ui.css

   DESIGN LANGUAGE:
   - event monitoring / observability
   - deep slate / graphite
   - cyan signal accents
   - green / amber / red delivery states
   - payload inspectors
   - timestamp-heavy technical UI
   - matte surfaces
   - no gradients
   ============================================================ */


/* ============================================================
   01. TOKENS
   ============================================================ */

.webhook-docs-page {
    --wh-bg: #0d1014;
    --wh-bg-deep: #090c0f;
    --wh-bg-soft: #11151a;

    --wh-panel: #14191f;
    --wh-panel-raised: #181e25;
    --wh-panel-strong: #1d242c;

    --wh-border: #242c35;
    --wh-border-soft: #1b222a;
    --wh-border-strong: #35404b;

    --wh-text: #f4f7f9;
    --wh-text-soft: #c1c9d1;
    --wh-muted: #838d98;
    --wh-dim: #56616c;

    --wh-cyan: #67e8f9;
    --wh-cyan-strong: #22d3ee;
    --wh-cyan-soft: rgba(103,232,249,0.08);

    --wh-green: #4ade80;
    --wh-green-soft: rgba(74,222,128,0.08);

    --wh-amber: #fbbf24;
    --wh-amber-soft: rgba(251,191,36,0.08);

    --wh-red: #f87171;
    --wh-red-soft: rgba(248,113,113,0.08);

    --wh-blue: #60a5fa;
    --wh-purple: #c084fc;

    --wh-mono:
        "SFMono-Regular",
        "SF Mono",
        "Roboto Mono",
        "Cascadia Code",
        "Liberation Mono",
        Menlo,
        Consolas,
        monospace;

    background: var(--wh-bg);
    color: var(--wh-text);
}


/* ============================================================
   02. GLOBAL
   ============================================================ */

.webhook-docs-page,
.webhook-docs-page * {
    box-sizing: border-box;
}

.webhook-docs-page code,
.webhook-docs-page pre,
.webhook-docs-page time {
    font-family: var(--wh-mono);
}

.webhook-main {
    overflow: hidden;

    background: var(--wh-bg);
    color: var(--wh-text);
}

.webhook-shell {
    width: min(
        calc(100% - 40px),
        1180px
    );

    margin-inline: auto;
}


/* ============================================================
   03. GLOBAL HEADER
   ============================================================ */
/* Net Rentals white wordmark — dark developer header */
.webhook-site-header .nr-brand {
    margin-left: 40px;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    margin-left: 22px;
}

.webhook-site-header .nr-brand-logo {
    display: block;
    width: auto;
    height: 20px;
    max-width: 220px;
    object-fit: contain;
    object-position: left center;
}

.webhook-site-header {
    border-bottom: 1px solid var(--wh-border);

    background: rgba(13,16,20,0.96);

    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.webhook-site-header .nr-nav-link,
.webhook-site-header .nr-nav-dropdown-button,
.webhook-site-header .nr-header-login {
    color: #b9c1ca;
}

.webhook-site-header .nr-nav-link:hover,
.webhook-site-header .nr-nav-dropdown-button:hover,
.webhook-site-header .nr-header-login:hover {
    color: #ffffff;
}

.webhook-site-header .nr-header-signup {
    border-color: #dce3e9;

    background: #e9eef2;
    color: #101317;
}

.webhook-site-header .nr-header-signup:hover {
    background: #ffffff;
    color: #090c0f;
}

.webhook-site-header .nr-menu-button span {
    background: #f4f7f9;
}


/* ============================================================
   04. DEVELOPER SUBNAV
   ============================================================ */

.webhook-devbar {
    position: sticky;
    top: 72px;
    z-index: 60;

    border-bottom: 1px solid var(--wh-border);

    background: rgba(9,12,15,0.95);

    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.webhook-devbar-inner {
    width: min(
        calc(100% - 40px),
        1180px
    );

    min-height: 50px;

    display: flex;
    align-items: center;

    gap: 8px;

    margin-inline: auto;
}

.webhook-devbar-inner > a {
    color: var(--wh-muted);

    font-family: var(--wh-mono);
    font-size: 0.69rem;
}

.webhook-devbar-inner > a:hover {
    color: var(--wh-text);
}

.webhook-devbar-inner > span {
    color: #414a54;

    font-family: var(--wh-mono);
    font-size: 0.68rem;
}

.webhook-devbar-inner > strong {
    color: #dce3e9;

    font-family: var(--wh-mono);
    font-size: 0.69rem;
    font-weight: 700;
}

.webhook-devbar nav {
    min-height: 50px;

    display: flex;
    align-items: center;

    gap: 22px;

    margin-left: auto;
}

.webhook-devbar nav a {
    position: relative;

    min-height: 50px;

    display: flex;
    align-items: center;

    color: #6f7a85;

    font-family: var(--wh-mono);
    font-size: 0.66rem;
    font-weight: 650;
}

.webhook-devbar nav a:hover,
.webhook-devbar nav a.is-active {
    color: #f4f7f9;
}

.webhook-devbar nav a.is-active::after {
    content: "";

    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;

    height: 1px;

    background: var(--wh-cyan);
}


/* ============================================================
   05. HERO
   ============================================================ */

.webhook-hero {
    padding:
        108px
        0
        92px;

    border-bottom: 1px solid var(--wh-border);

    background: var(--wh-bg-deep);
}

.webhook-hero .webhook-shell {
    display: grid;
    grid-template-columns:
        minmax(0, 0.82fr)
        minmax(540px, 1.18fr);

    gap: 66px;

    align-items: center;
}

.webhook-hero-copy {
    max-width: 600px;
}

.webhook-status-line {
    display: flex;
    align-items: center;

    gap: 9px;

    margin-bottom: 22px;

    color: #7d8994;

    font-family: var(--wh-mono);
    font-size: 0.64rem;
    font-weight: 750;

    letter-spacing: 0.09em;
}

.webhook-live-dot {
    width: 7px;
    height: 7px;

    border-radius: 50%;

    background: var(--wh-green);

    box-shadow:
        0 0 0 4px rgba(74,222,128,0.07);
}

.webhook-hero h1 {
    max-width: 600px;

    margin: 0;

    color: #f8fafb;

    font-size:
        clamp(
            3.7rem,
            7vw,
            6.5rem
        );

    line-height: 0.93;
    font-weight: 560;

    letter-spacing: -0.065em;
}

.webhook-hero-copy > p {
    max-width: 570px;

    margin:
        28px
        0
        0;

    color: #919ca7;

    font-size:
        clamp(
            1rem,
            1.6vw,
            1.18rem
        );

    line-height: 1.72;
}

.webhook-hero-actions {
    display: flex;
    flex-wrap: wrap;

    gap: 10px;

    margin-top: 32px;
}

.webhook-button-primary,
.webhook-button-secondary {
    min-height: 47px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding:
        0
        17px;

    border-radius: 7px;

    font-family: var(--wh-mono);
    font-size: 0.71rem;
    font-weight: 750;

    transition:
        background 150ms ease,
        border-color 150ms ease,
        color 150ms ease,
        transform 150ms ease;
}

.webhook-button-primary {
    border: 1px solid #9beaf4;

    background: var(--wh-cyan);
    color: #071013;
}

.webhook-button-primary:hover {
    border-color: #bdf3fa;

    background: #a5f3fc;

    transform: translateY(-1px);
}

.webhook-button-secondary {
    border: 1px solid var(--wh-border-strong);

    background: var(--wh-panel);
    color: #d1d8df;
}

.webhook-button-secondary:hover {
    border-color: #4b5966;

    background: var(--wh-panel-raised);
    color: #ffffff;

    transform: translateY(-1px);
}

.webhook-draft-warning {
    max-width: 560px;

    display: grid;

    gap: 5px;

    margin-top: 30px;
    padding:
        14px
        16px;

    border-left: 2px solid var(--wh-amber);

    background: rgba(251,191,36,0.035);
}

.webhook-draft-warning strong {
    color: #e7c76c;

    font-family: var(--wh-mono);
    font-size: 0.64rem;
    font-weight: 750;
}

.webhook-draft-warning span {
    color: #7f8993;

    font-size: 0.74rem;
    line-height: 1.55;
}


/* ============================================================
   06. HERO DELIVERY MONITOR
   ============================================================ */

.webhook-monitor {
    overflow: hidden;

    border: 1px solid var(--wh-border-strong);
    border-radius: 12px;

    background: #0b0e12;

    box-shadow:
        0 30px 80px rgba(0,0,0,0.32);
}

.webhook-monitor-top {
    min-height: 46px;

    display: grid;
    grid-template-columns:
        90px
        minmax(0, 1fr)
        auto;

    gap: 12px;

    align-items: center;

    padding:
        0
        14px;

    border-bottom: 1px solid var(--wh-border);

    background: #11151a;
}

.webhook-monitor-top > div {
    display: flex;

    gap: 5px;
}

.webhook-window-dot {
    width: 7px;
    height: 7px;

    border-radius: 50%;

    background: #404a54;
}

.webhook-monitor-top strong {
    color: #aab3bc;

    font-family: var(--wh-mono);
    font-size: 0.66rem;
    font-weight: 650;

    text-align: center;
}

.webhook-monitor-live {
    color: var(--wh-green);

    font-family: var(--wh-mono);
    font-size: 0.57rem;
    font-weight: 800;

    letter-spacing: 0.06em;
}

.webhook-monitor-body {
    min-height: 430px;

    display: grid;
    grid-template-columns:
        42%
        58%;
}

.webhook-delivery-list {
    border-right: 1px solid var(--wh-border);

    background: #0e1216;
}

.webhook-delivery-list-header {
    min-height: 42px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding:
        0
        12px;

    border-bottom: 1px solid var(--wh-border-soft);
}

.webhook-delivery-list-header span {
    color: #5f6b77;

    font-family: var(--wh-mono);
    font-size: 0.56rem;
    font-weight: 800;

    letter-spacing: 0.08em;
}

.webhook-delivery-list-header small {
    color: #47515b;

    font-family: var(--wh-mono);
    font-size: 0.55rem;
}

.webhook-delivery-row {
    width: 100%;
    min-height: 69px;

    display: grid;
    grid-template-columns:
        8px
        minmax(0, 1fr)
        auto;

    gap: 11px;

    align-items: center;

    padding:
        10px
        12px;

    border: 0;
    border-bottom: 1px solid var(--wh-border-soft);

    background: transparent;

    text-align: left;

    cursor: default;
}

.webhook-delivery-row.is-selected {
    background: #171d23;
}

.webhook-delivery-row.has-failed {
    background: rgba(248,113,113,0.025);
}

.delivery-status {
    width: 7px;
    height: 7px;

    border-radius: 50%;
}

.delivery-status.success {
    background: var(--wh-green);

    box-shadow:
        0 0 0 3px rgba(74,222,128,0.06);
}

.delivery-status.failed {
    background: var(--wh-red);

    box-shadow:
        0 0 0 3px rgba(248,113,113,0.06);
}

.webhook-delivery-row > div {
    min-width: 0;
}

.webhook-delivery-row code {
    display: block;

    overflow: hidden;

    color: #c7d0d8;

    font-size: 0.61rem;

    white-space: nowrap;
    text-overflow: ellipsis;
}

.webhook-delivery-row small {
    display: block;

    margin-top: 4px;

    color: #505b66;

    font-family: var(--wh-mono);
    font-size: 0.53rem;
}

.webhook-delivery-row > strong {
    color: var(--wh-green);

    font-family: var(--wh-mono);
    font-size: 0.59rem;
    font-weight: 700;
}

.webhook-delivery-row.has-failed > strong {
    color: var(--wh-red);
}


/* ============================================================
   07. PAYLOAD INSPECTOR
   ============================================================ */

.webhook-payload-inspector {
    min-width: 0;

    background: #0a0d10;
}

.webhook-inspector-head {
    min-height: 66px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 14px;

    padding:
        0
        16px;

    border-bottom: 1px solid var(--wh-border-soft);
}

.webhook-inspector-head > div {
    min-width: 0;

    }

.webhook-inspector-head span:first-child {
    display: block;

    margin-bottom: 4px;

    color: #515c67;

    font-family: var(--wh-mono);
    font-size: 0.54rem;
    font-weight: 800;

    letter-spacing: 0.08em;
}

.webhook-inspector-head strong {
    display: block;

    overflow: hidden;

    color: #dce3e9;

    font-family: var(--wh-mono);
    font-size: 0.68rem;

    white-space: nowrap;
    text-overflow: ellipsis;
}

.webhook-success-badge {
    flex: 0 0 auto;

    padding:
        5px
        7px;

    border: 1px solid rgba(74,222,128,0.16);
    border-radius: 5px;

    background: var(--wh-green-soft);
    color: var(--wh-green) !important;

    font-family: var(--wh-mono);
    font-size: 0.56rem !important;
    font-weight: 750 !important;
}

.webhook-payload-inspector pre {
    min-height: 274px;

    overflow-x: auto;

    margin: 0;
    padding: 20px;

    color: #cad2d9;

    font-family: var(--wh-mono);
    font-size: 0.66rem;
    line-height: 1.8;

    background: #0a0d10;
}

.webhook-payload-inspector pre code {
    font-family: inherit;
}

.json-key {
    color: var(--wh-blue);
}

.json-string {
    color: #a7e4b8;
}

.json-bool {
    color: var(--wh-purple);
}

.webhook-inspector-meta {
    display: grid;
    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    border-top: 1px solid var(--wh-border-soft);
}

.webhook-inspector-meta > div {
    min-width: 0;

    padding: 12px;

    border-right: 1px solid var(--wh-border-soft);
}

.webhook-inspector-meta > div:last-child {
    border-right: 0;
}

.webhook-inspector-meta span {
    display: block;

    margin-bottom: 4px;

    color: #4f5a65;

    font-size: 0.53rem;
}

.webhook-inspector-meta strong {
    display: block;

    overflow: hidden;

    color: #929da8;

    font-family: var(--wh-mono);
    font-size: 0.56rem;
    font-weight: 600;

    white-space: nowrap;
    text-overflow: ellipsis;
}


/* ============================================================
   08. METRICS STRIP
   ============================================================ */

.webhook-metrics {
    border-bottom: 1px solid var(--wh-border);

    background: #101419;
}

.webhook-metrics .webhook-shell {
    display: grid;
    grid-template-columns:
        repeat(
            4,
            minmax(0, 1fr)
        );
}

.webhook-metrics .webhook-shell > div {
    min-height: 98px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding:
        16px
        20px;

    border-right: 1px solid var(--wh-border);
}

.webhook-metrics .webhook-shell > div:first-child {
    border-left: 1px solid var(--wh-border);
}

.webhook-metrics span {
    margin-bottom: 7px;

    color: #56616d;

    font-family: var(--wh-mono);
    font-size: 0.55rem;
    font-weight: 800;

    letter-spacing: 0.08em;
}

.webhook-metrics strong {
    color: #b8c2cb;

    font-family: var(--wh-mono);
    font-size: 0.72rem;
    font-weight: 650;
}


/* ============================================================
   09. GENERIC SECTIONS
   ============================================================ */

.webhook-section {
    padding:
        104px
        0;

    border-bottom: 1px solid var(--wh-border);

    background: var(--wh-bg);
}

.webhook-section:nth-of-type(even) {
    background: #0f1318;
}

.webhook-section-header {
    max-width: 800px;

    margin-bottom: 52px;
}

.webhook-section-header > span,
.webhook-section-index {
    display: block;

    margin-bottom: 16px;

    color: var(--wh-cyan);

    font-family: var(--wh-mono);
    font-size: 0.62rem;
    font-weight: 800;

    letter-spacing: 0.09em;
}

.webhook-section-header h2,
.webhook-copy h2 {
    max-width: 760px;

    margin: 0;

    color: #f5f7f9;

    font-size:
        clamp(
            2.8rem,
            5vw,
            4.9rem
        );

    line-height: 0.98;
    font-weight: 560;

    letter-spacing: -0.055em;
}

.webhook-section-header p,
.webhook-copy > p {
    max-width: 660px;

    margin:
        20px
        0
        0;

    color: #85909b;

    font-size: 0.96rem;
    line-height: 1.72;
}

.webhook-section-header p code {
    padding:
        2px
        5px;

    border: 1px solid var(--wh-border);

    background: var(--wh-panel);

    color: #bac4cd;

    font-size: 0.80em;
}


/* ============================================================
   10. DELIVERY FLOW
   ============================================================ */

.webhook-flow-section {
    background: #0d1014;
}

.webhook-flow {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        42px
        minmax(0, 1fr)
        42px
        minmax(0, 1fr)
        42px
        minmax(0, 1fr);

    align-items: center;
}

.webhook-flow article {
    min-height: 252px;

    display: flex;
    flex-direction: column;

    padding: 22px;

    border: 1px solid var(--wh-border);
    border-radius: 8px;

    background: #12171c;
}

.webhook-step-number {
    margin-bottom: 44px;

    color: #56616b;

    font-family: var(--wh-mono);
    font-size: 0.62rem;
}

.webhook-flow article small {
    margin-bottom: 8px;

    color: var(--wh-cyan);

    font-family: var(--wh-mono);
    font-size: 0.57rem;
    font-weight: 750;

    letter-spacing: 0.08em;
}

.webhook-flow article strong {
    color: #e7ebef;

    font-size: 1rem;
    font-weight: 650;
}

.webhook-flow article p {
    margin:
        10px
        0
        0;

    color: #737f8a;

    font-size: 0.78rem;
    line-height: 1.62;
}

.webhook-flow > i {
    position: relative;

    height: 1px;

    background: #35404a;
}

.webhook-flow > i::after {
    content: "";

    position: absolute;
    top: 50%;
    right: 0;

    width: 6px;
    height: 6px;

    border-top: 1px solid #596774;
    border-right: 1px solid #596774;

    transform:
        translateY(-50%)
        rotate(45deg);
}


/* ============================================================
   11. TWO COLUMN LAYOUT
   ============================================================ */

.webhook-two-column,
.webhook-security-layout,
.webhook-v1-layout {
    display: grid;
    grid-template-columns:
        minmax(0, 0.82fr)
        minmax(480px, 1.18fr);

    gap: 70px;

    align-items: center;
}

.webhook-copy {
    max-width: 570px;
}


/* ============================================================
   12. COPY NOTE
   ============================================================ */

.webhook-copy-note {
    margin-top: 30px;
    padding:
        16px
        18px;

    border-left: 2px solid var(--wh-cyan);

    background: var(--wh-cyan-soft);
}

.webhook-copy-note span {
    display: block;

    margin-bottom: 7px;

    color: var(--wh-cyan);

    font-family: var(--wh-mono);
    font-size: 0.57rem;
    font-weight: 800;

    letter-spacing: 0.08em;
}

.webhook-copy-note p {
    margin: 0;

    color: #8d99a4;

    font-size: 0.78rem;
    line-height: 1.6;
}


/* ============================================================
   13. CODE WINDOW
   ============================================================ */

.webhook-code-window {
    overflow: hidden;

    border: 1px solid var(--wh-border-strong);
    border-radius: 10px;

    background: #090c0f;
}

.webhook-code-window > header {
    min-height: 48px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 16px;

    padding:
        0
        14px;

    border-bottom: 1px solid var(--wh-border);

    background: #12171c;
}

.webhook-code-window > header > div {
    min-width: 0;

    display: flex;
    align-items: center;

    gap: 10px;
}

.webhook-code-window > header code {
    overflow: hidden;

    color: #abb6c0;

    font-size: 0.64rem;

    white-space: nowrap;
    text-overflow: ellipsis;
}

.webhook-code-window > header > span {
    flex: 0 0 auto;

    color: #54616c;

    font-family: var(--wh-mono);
    font-size: 0.55rem;
}

.method {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 42px;

    padding:
        4px
        6px;

    border-radius: 4px;

    font-family: var(--wh-mono);
    font-size: 0.54rem;
    font-weight: 850;
}

.method.post {
    border: 1px solid rgba(74,222,128,0.16);

    background: var(--wh-green-soft);
    color: var(--wh-green);
}

.webhook-code-window pre {
    overflow-x: auto;

    margin: 0;
    padding: 22px;

    color: #cbd3da;

    font-family: var(--wh-mono);
    font-size: 0.70rem;
    line-height: 1.8;

    background: #090c0f;
}


/* ============================================================
   14. PAYLOAD ANATOMY
   ============================================================ */

.webhook-payload-section {
    background: #0d1115;
}

.webhook-payload-layout {
    display: grid;
    grid-template-columns:
        minmax(300px, 0.75fr)
        minmax(500px, 1.25fr);

    gap: 24px;

    align-items: start;
}

.webhook-payload-anatomy {
    border-top: 1px solid var(--wh-border);
}

.webhook-payload-anatomy article {
    display: grid;
    grid-template-columns:
        110px
        minmax(0, 1fr);

    gap: 16px;

    padding:
        18px
        0;

    border-bottom: 1px solid var(--wh-border);
}

.webhook-payload-anatomy article > code {
    align-self: start;
    justify-self: start;

    padding:
        5px
        7px;

    border: 1px solid var(--wh-border);
    border-radius: 4px;

    background: #14191f;
    color: var(--wh-cyan);

    font-size: 0.62rem;
}

.webhook-payload-anatomy strong {
    display: block;

    color: #d7dde3;

    font-size: 0.82rem;
    font-weight: 650;
}

.webhook-payload-anatomy p {
    margin:
        5px
        0
        0;

    color: #6f7b86;

    font-size: 0.74rem;
    line-height: 1.52;
}

.webhook-full-payload {
    position: sticky;
    top: 144px;
}


/* ============================================================
   15. SIGNATURE SECURITY
   ============================================================ */

.webhook-security-section {
    background: #101419;
}

.webhook-signature-card {
    padding: 22px;

    border: 1px solid var(--wh-border-strong);
    border-radius: 9px;

    background: #13191f;
}

.webhook-signature-card > div {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 16px;

    margin-bottom: 20px;
    padding-bottom: 18px;

    border-bottom: 1px solid var(--wh-border);
}

.webhook-signature-card span {
    color: #5d6975;

    font-family: var(--wh-mono);
    font-size: 0.58rem;
    font-weight: 800;

    letter-spacing: 0.08em;
}

.webhook-signature-card strong {
    color: #d9e0e6;

    font-family: var(--wh-mono);
    font-size: 0.77rem;
}

.webhook-signature-card > code {
    display: block;

    overflow-x: auto;

    padding: 14px;

    border: 1px solid var(--wh-border);
    border-radius: 6px;

    background: #0b0f13;
    color: #a8e1e8;

    font-size: 0.65rem;
    line-height: 1.6;

    white-space: nowrap;
}


/* ============================================================
   16. WEBHOOK HEADERS
   ============================================================ */

.webhook-header-table {
    overflow: hidden;

    margin-top: 46px;

    border: 1px solid var(--wh-border);
    border-radius: 8px;

    background: #10151a;
}

.webhook-header-table > div {
    display: grid;
    grid-template-columns:
        minmax(220px, 0.8fr)
        minmax(0, 1.2fr);

    align-items: center;

    min-height: 58px;

    border-bottom: 1px solid var(--wh-border);
}

.webhook-header-table > div:last-child {
    border-bottom: 0;
}

.webhook-header-table > div > * {
    min-width: 0;

    padding:
        13px
        16px;
}

.webhook-header-table > div > *:first-child {
    border-right: 1px solid var(--wh-border);
}

.webhook-header-table-head {
    min-height: 42px !important;

    background: #171d23;
}

.webhook-header-table-head span {
    color: #606c77;

    font-family: var(--wh-mono);
    font-size: 0.57rem;
    font-weight: 800;

    letter-spacing: 0.06em;
}

.webhook-header-table code {
    overflow: hidden;

    color: #9ba6b0;

    font-size: 0.64rem;

    white-space: nowrap;
    text-overflow: ellipsis;
}

.webhook-header-table > div:not(.webhook-header-table-head) code:first-child {
    color: #b6e8ed;
}


/* ============================================================
   17. SECURITY RULES
   ============================================================ */

.webhook-security-rules {
    display: grid;
    grid-template-columns:
        repeat(
            5,
            minmax(0, 1fr)
        );

    margin-top: 14px;

    border-top: 1px solid var(--wh-border);
    border-left: 1px solid var(--wh-border);
}

.webhook-security-rules article {
    min-height: 132px;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    padding: 17px;

    border-right: 1px solid var(--wh-border);
    border-bottom: 1px solid var(--wh-border);

    background: #11161b;
}

.webhook-security-rules span {
    color: #56616b;

    font-family: var(--wh-mono);
    font-size: 0.58rem;
}

.webhook-security-rules strong {
    color: #bec7cf;

    font-size: 0.76rem;
    line-height: 1.4;
    font-weight: 600;
}


/* ============================================================
   18. DELIVERY DASHBOARD
   ============================================================ */

.webhook-deliveries-section {
    background: #0c1014;
}

.webhook-delivery-dashboard {
    overflow: hidden;

    border: 1px solid var(--wh-border-strong);
    border-radius: 10px;

    background: #101419;
}

.webhook-dashboard-header {
    min-height: 70px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 18px;

    padding:
        0
        18px;

    border-bottom: 1px solid var(--wh-border);

    background: #151b21;
}

.webhook-dashboard-header > div {
    min-width: 0;
}

.webhook-dashboard-header strong {
    display: block;

    color: #dce2e7;

    font-size: 0.88rem;
    font-weight: 650;
}

.webhook-dashboard-header span {
    display: block;

    margin-top: 3px;

    color: #596570;

    font-family: var(--wh-mono);
    font-size: 0.57rem;
}

.webhook-dashboard-header button {
    min-height: 36px;

    padding:
        0
        11px;

    border: 1px solid var(--wh-border-strong);
    border-radius: 6px;

    background: #1a2128;
    color: #c3ccd4;

    font-family: var(--wh-mono);
    font-size: 0.61rem;
    font-weight: 650;
}

.webhook-dashboard-columns,
.webhook-dashboard-row {
    display: grid;
    grid-template-columns:
        120px
        minmax(220px, 1fr)
        90px
        90px
        110px;

    gap: 14px;

    align-items: center;
}

.webhook-dashboard-columns {
    min-height: 40px;

    padding:
        0
        16px;

    border-bottom: 1px solid var(--wh-border);

    background: #0f1419;
}

.webhook-dashboard-columns span {
    color: #4f5a64;

    font-family: var(--wh-mono);
    font-size: 0.54rem;
    font-weight: 800;

    letter-spacing: 0.06em;
}

.webhook-dashboard-row {
    min-height: 64px;

    padding:
        0
        16px;

    border-bottom: 1px solid var(--wh-border-soft);

    background: #101419;
}

.webhook-dashboard-row:last-child {
    border-bottom: 0;
}

.webhook-dashboard-row.is-warning {
    background: rgba(251,191,36,0.018);
}

.webhook-dashboard-row.is-failed {
    background: rgba(248,113,113,0.018);
}

.webhook-dashboard-row code {
    overflow: hidden;

    color: #bdc6ce;

    font-size: 0.64rem;

    white-space: nowrap;
    text-overflow: ellipsis;
}

.webhook-dashboard-row > span:not(.delivery-chip),
.webhook-dashboard-row time {
    color: #6d7883;

    font-family: var(--wh-mono);
    font-size: 0.59rem;
}

.webhook-dashboard-row > strong {
    color: #aab4bd;

    font-family: var(--wh-mono);
    font-size: 0.61rem;
}

.webhook-dashboard-row.is-failed > strong {
    color: var(--wh-red);
}

.webhook-dashboard-row.is-warning > strong {
    color: var(--wh-amber);
}


/* ============================================================
   19. DELIVERY CHIPS
   ============================================================ */

.delivery-chip {
    justify-self: start;

    padding:
        5px
        7px;

    border-radius: 999px;

    font-family: var(--wh-mono);
    font-size: 0.55rem;
    font-weight: 750;
}

.delivery-chip.success {
    border: 1px solid rgba(74,222,128,0.15);

    background: var(--wh-green-soft);
    color: var(--wh-green);
}

.delivery-chip.retrying {
    border: 1px solid rgba(251,191,36,0.15);

    background: var(--wh-amber-soft);
    color: var(--wh-amber);
}

.delivery-chip.failed {
    border: 1px solid rgba(248,113,113,0.15);

    background: var(--wh-red-soft);
    color: var(--wh-red);
}


/* ============================================================
   20. RETRY TIMELINE
   ============================================================ */

.webhook-retry-section {
    background: #101419;
}

.webhook-retry-timeline {
    display: grid;
    grid-template-columns:
        1fr
        22px
        1fr
        22px
        1fr
        22px
        1fr
        22px
        1fr
        22px
        1fr
        22px
        1fr;

    align-items: center;
}

.webhook-retry-timeline > div {
    min-width: 0;

    padding:
        16px
        12px;

    border: 1px solid var(--wh-border);
    border-radius: 6px;

    background: #151b21;

    text-align: center;
}

.webhook-retry-timeline > div span {
    display: block;

    margin-bottom: 14px;

    color: #4f5b66;

    font-family: var(--wh-mono);
    font-size: 0.53rem;
}

.webhook-retry-timeline > div strong {
    display: block;

    color: #d1d8de;

    font-size: 0.70rem;
    font-weight: 650;

    white-space: nowrap;
}

.webhook-retry-timeline > div small {
    display: block;

    margin-top: 5px;

    color: #65717c;

    font-size: 0.56rem;
}

.webhook-retry-timeline > i {
    height: 1px;

    background: #36414b;
}


/* ============================================================
   21. EVENT CATALOG
   ============================================================ */

.webhook-event-catalog {
    background: #0b0f13;
}

.webhook-event-groups {
    border-top: 1px solid var(--wh-border);
}

.webhook-event-groups details {
    border-bottom: 1px solid var(--wh-border);
}

.webhook-event-groups summary {
    min-height: 68px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 18px;

    padding:
        0
        4px;

    list-style: none;

    cursor: pointer;
}

.webhook-event-groups summary::-webkit-details-marker {
    display: none;
}

.webhook-event-groups summary::after {
    content: "+";

    margin-left: 12px;

    color: #56616c;

    font-family: var(--wh-mono);
    font-size: 0.88rem;
}

.webhook-event-groups details[open] summary::after {
    content: "−";
}

.webhook-event-groups summary > div {
    display: flex;
    align-items: center;

    gap: 11px;

    min-width: 0;
}

.webhook-event-groups summary strong {
    color: #d1d8de;

    font-size: 0.85rem;
    font-weight: 620;
}

.webhook-event-groups summary small {
    margin-left: auto;

    color: #56616c;

    font-family: var(--wh-mono);
    font-size: 0.56rem;
}

.catalog-dot {
    width: 7px;
    height: 7px;

    border-radius: 50%;

    background: #68737e;

    flex-shrink: 0;
}

.catalog-dot.booking,
.catalog-dot.rental {
    background: var(--wh-cyan);
}

.catalog-dot.payment,
.catalog-dot.deposit {
    background: var(--wh-green);
}

.catalog-dot.identity,
.catalog-dot.customer {
    background: var(--wh-blue);
}

.catalog-dot.agreement,
.catalog-dot.insurance {
    background: var(--wh-purple);
}

.catalog-dot.pickup,
.catalog-dot.return {
    background: #38bdf8;
}

.catalog-dot.access,
.catalog-dot.fleet {
    background: #94a3b8;
}

.catalog-dot.mileage {
    background: var(--wh-amber);
}

.catalog-dot.charge,
.catalog-dot.dispute {
    background: #fb7185;
}

.catalog-dot.message {
    background: #2dd4bf;
}

.catalog-dot.website,
.catalog-dot.team {
    background: #a3e635;
}

.webhook-event-grid {
    display: grid;
    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap: 7px;

    padding:
        0
        0
        18px
        18px;
}

.webhook-event-grid code {
    min-width: 0;

    overflow: hidden;

    padding:
        9px
        10px;

    border: 1px solid var(--wh-border-soft);
    border-radius: 5px;

    background: #11161b;
    color: #8f9ba6;

    font-size: 0.61rem;

    white-space: nowrap;
    text-overflow: ellipsis;
}


/* ============================================================
   22. V1 EVENTS
   ============================================================ */

.webhook-v1-section {
    background: #101419;
}

.webhook-v1-layout {
    align-items: start;
}

.webhook-v1-events {
    display: grid;
    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap: 7px;
}

.webhook-v1-events code {
    min-width: 0;

    overflow: hidden;

    padding:
        11px
        12px;

    border: 1px solid var(--wh-border);
    border-radius: 5px;

    background: #151b21;
    color: #a6b0ba;

    font-size: 0.62rem;

    white-space: nowrap;
    text-overflow: ellipsis;
}


/* ============================================================
   23. TESTING
   ============================================================ */

.webhook-testing-section {
    background: #0b0f13;
}

.webhook-inline-link {
    display: inline-flex;
    align-items: center;

    gap: 10px;

    margin-top: 26px;

    color: #b5e8ed;

    font-family: var(--wh-mono);
    font-size: 0.68rem;
    font-weight: 700;
}

.webhook-inline-link span {
    transition: transform 150ms ease;
}

.webhook-inline-link:hover {
    color: var(--wh-cyan);
}

.webhook-inline-link:hover span {
    transform: translateX(4px);
}


/* ============================================================
   24. END CTA
   ============================================================ */

.webhook-end {
    padding:
        104px
        0;

    border-bottom: 1px solid var(--wh-border);

    background: #11161b;
}

.webhook-end .webhook-shell {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        auto;

    gap: 60px;

    align-items: end;
}

.webhook-end > .webhook-shell > div {
    max-width: 720px;
}

.webhook-end > .webhook-shell > div > span {
    display: block;

    margin-bottom: 16px;

    color: var(--wh-cyan);

    font-family: var(--wh-mono);
    font-size: 0.61rem;
    font-weight: 800;

    letter-spacing: 0.09em;
}

.webhook-end h2 {
    margin: 0;

    color: #f5f7f9;

    font-size:
        clamp(
            3rem,
            5.5vw,
            5.2rem
        );

    line-height: 0.96;
    font-weight: 560;

    letter-spacing: -0.06em;
}

.webhook-end p {
    max-width: 600px;

    margin:
        20px
        0
        0;

    color: #838f9a;

    font-size: 0.94rem;
    line-height: 1.65;
}

.webhook-end nav {
    display: flex;
    flex-direction: column;

    gap: 9px;

    min-width: 190px;
}

.webhook-end-primary,
.webhook-end-secondary {
    min-height: 45px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding:
        0
        15px;

    border-radius: 6px;

    font-family: var(--wh-mono);
    font-size: 0.67rem;
    font-weight: 700;
}

.webhook-end-primary {
    border: 1px solid #99ecf5;

    background: var(--wh-cyan);
    color: #071013;
}

.webhook-end-primary:hover {
    background: #a5f3fc;
}

.webhook-end-secondary {
    border: 1px solid var(--wh-border-strong);

    background: #171d23;
    color: #aeb8c1;
}

.webhook-end-secondary:hover {
    border-color: #4b5966;

    color: #ffffff;
}


/* ============================================================
   25. FOOTER
   ============================================================ */

.webhook-footer {
    border-top: 0;

    background: #090c0f;
}

.webhook-footer .nr-footer-group summary {
    color: #b8c1ca;
}

.webhook-footer .nr-footer-links a,
.webhook-footer .nr-footer-description,
.webhook-footer .nr-footer-country,
.webhook-footer .nr-footer-copyright,
.webhook-footer .nr-footer-legal a {
    color: #65717c;
}

.webhook-footer .nr-footer-description a {
    color: #8d99a4;
}

.webhook-footer .nr-footer-links a:hover,
.webhook-footer .nr-footer-description a:hover,
.webhook-footer .nr-footer-legal a:hover {
    color: #ffffff;
}


/* ============================================================
   26. TABLET
   ============================================================ */

@media (max-width: 1080px) {

    .webhook-hero .webhook-shell,
    .webhook-two-column,
    .webhook-security-layout,
    .webhook-v1-layout {
        grid-template-columns: 1fr;

        gap: 50px;
    }

    .webhook-hero-copy,
    .webhook-copy {
        max-width: 720px;
    }

    .webhook-monitor,
    .webhook-code-window,
    .webhook-signature-card {
        max-width: 840px;
    }

    .webhook-security-rules {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
    }

    .webhook-retry-timeline {
        grid-template-columns:
            repeat(
                7,
                minmax(100px, 1fr)
            );

        gap: 7px;

        overflow-x: auto;

        padding-bottom: 6px;
    }

    .webhook-retry-timeline > i {
        display: none;
    }
}


/* ============================================================
   27. MEDIUM
   ============================================================ */

@media (max-width: 900px) {

    .webhook-devbar {
        top: 64px;
    }

    .webhook-section,
    .webhook-end {
        padding:
            80px
            0;
    }

    .webhook-flow {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        gap: 10px;
    }

    .webhook-flow > i {
        display: none;
    }

    .webhook-payload-layout {
        grid-template-columns: 1fr;

        gap: 32px;
    }

    .webhook-full-payload {
        position: static;
    }

    .webhook-dashboard-columns,
    .webhook-dashboard-row {
        grid-template-columns:
            112px
            minmax(180px, 1fr)
            70px
            70px
            100px;
    }

    .webhook-delivery-dashboard {
        overflow-x: auto;
    }

    .webhook-dashboard-columns,
    .webhook-dashboard-row {
        min-width: 760px;
    }

    .webhook-event-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .webhook-end .webhook-shell {
        grid-template-columns: 1fr;

        gap: 36px;
    }

    .webhook-end nav {
        flex-direction: row;

        min-width: 0;
    }
}


/* ============================================================
   28. MOBILE
   ============================================================ */

@media (max-width: 700px) {

    .webhook-shell,
    .webhook-devbar-inner {
        width: min(
            calc(100% - 28px),
            1180px
        );
    }

    .webhook-devbar-inner > a,
    .webhook-devbar-inner > span {
        display: none;
    }

    .webhook-devbar nav {
        gap: 16px;
    }

    .webhook-hero {
        padding:
            76px
            0
            64px;
    }

    .webhook-hero h1 {
        font-size:
            clamp(
                3.1rem,
                15vw,
                4.8rem
            );
    }

    .webhook-hero-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .webhook-button-primary,
    .webhook-button-secondary {
        width: 100%;
    }

    .webhook-monitor-body {
        grid-template-columns: 1fr;
    }

    .webhook-delivery-list {
        border-right: 0;
        border-bottom: 1px solid var(--wh-border);
    }

    .webhook-delivery-row:nth-of-type(n + 5) {
        display: none;
    }

    .webhook-payload-inspector pre {
        min-height: 240px;
    }

    .webhook-metrics .webhook-shell {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .webhook-metrics .webhook-shell > div:first-child {
        border-left: 0;
    }

    .webhook-metrics .webhook-shell > div:nth-child(2) {
        border-right: 0;
    }

    .webhook-metrics .webhook-shell > div:nth-child(-n + 2) {
        border-bottom: 1px solid var(--wh-border);
    }

    .webhook-flow {
        grid-template-columns: 1fr;
    }

    .webhook-flow article {
        min-height: 210px;
    }

    .webhook-security-rules {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .webhook-header-table {
        overflow-x: auto;
    }

    .webhook-header-table > div {
        min-width: 680px;
    }

    .webhook-event-grid {
        padding-left: 0;
    }

    .webhook-v1-events {
        grid-template-columns: 1fr;
    }

    .webhook-end nav {
        display: grid;
        grid-template-columns: 1fr;
    }
}


/* ============================================================
   29. SMALL MOBILE
   ============================================================ */

@media (max-width: 520px) {

    .webhook-section-header h2,
    .webhook-copy h2 {
        font-size:
            clamp(
                2.5rem,
                12vw,
                3.5rem
            );
    }

    .webhook-monitor {
        border-radius: 8px;
    }

    .webhook-monitor-top {
        grid-template-columns:
            62px
            minmax(0, 1fr)
            auto;
    }

    .webhook-window-dot {
        width: 6px;
        height: 6px;
    }

    .webhook-delivery-row {
        min-height: 64px;
    }

    .webhook-payload-inspector pre {
        padding:
            17px
            14px;

        font-size: 0.60rem;
    }

    .webhook-inspector-meta {
        grid-template-columns: 1fr;
    }

    .webhook-inspector-meta > div {
        border-right: 0;
        border-bottom: 1px solid var(--wh-border-soft);
    }

    .webhook-inspector-meta > div:last-child {
        border-bottom: 0;
    }

    .webhook-metrics .webhook-shell {
        grid-template-columns: 1fr;
    }

    .webhook-metrics .webhook-shell > div {
        min-height: 78px;

        border-right: 0;
        border-bottom: 1px solid var(--wh-border);
    }

    .webhook-metrics .webhook-shell > div:last-child {
        border-bottom: 0;
    }

    .webhook-code-window pre {
        padding: 17px;

        font-size: 0.62rem;
    }

    .webhook-payload-anatomy article {
        grid-template-columns: 1fr;

        gap: 10px;
    }

    .webhook-signature-card > div {
        align-items: flex-start;
        flex-direction: column;
    }

    .webhook-signature-card > code {
        font-size: 0.58rem;
    }

    .webhook-security-rules {
        grid-template-columns: 1fr;
    }

    .webhook-security-rules article {
        min-height: 100px;
    }

    .webhook-event-groups summary {
        min-height: 64px;
    }

    .webhook-event-groups summary small {
        display: none;
    }

    .webhook-event-grid {
        grid-template-columns: 1fr;
    }

    .webhook-end h2 {
        font-size:
            clamp(
                2.8rem,
                13vw,
                4rem
            );
    }
}


/* ============================================================
   30. FOCUS
   ============================================================ */

.webhook-docs-page a:focus-visible,
.webhook-docs-page button:focus-visible,
.webhook-docs-page summary:focus-visible {
    outline: 1px solid var(--wh-cyan);
    outline-offset: 4px;
}


/* ============================================================
   31. REDUCED MOTION
   ============================================================ */

@media (prefers-reduced-motion: reduce) {

    .webhook-button-primary,
    .webhook-button-secondary,
    .webhook-inline-link span {
        transition: none;
    }
}

/* =========================================================
   WEBHOOKS — DARK MOBILE NAV
   ========================================================= */

@media (max-width: 899px) {

    /* Keep developer header dark while menu is open */
    .webhook-docs-page .webhook-site-header,
    .webhook-docs-page .webhook-site-header.nr-menu-active {
        background: #080b0e !important;
        border-bottom-color: #252b31 !important;
    }

    /* Entire mobile navigation */
    .webhook-docs-page .nr-mobile-nav {
        background: #080b0e !important;
        color: #f7f7f8 !important;
    }

    .webhook-docs-page .nr-mobile-nav-body {
        background: #080b0e !important;
    }

    /* Main category rows */
    .webhook-docs-page .nr-mobile-nav summary,
    .webhook-docs-page .nr-mobile-nav-link {
        color: #f7f7f8 !important;
        border-color: #252b31 !important;
    }

    .webhook-docs-page .nr-mobile-nav summary svg {
        color: #f7f7f8 !important;
        stroke: currentColor !important;
    }

    /* Expanded links */
    .webhook-docs-page .nr-mobile-nav-sub a {
        color: #8d96a0 !important;
    }

    .webhook-docs-page .nr-mobile-nav-sub a:hover,
    .webhook-docs-page .nr-mobile-nav-sub a:active {
        color: #ffffff !important;
    }

    /* Divider above account actions */
    .webhook-docs-page .nr-mobile-nav-divider {
        background: #252b31 !important;
        border-color: #252b31 !important;
    }

    /* Login / signup */
    .webhook-docs-page .nr-mobile-nav-login {
        color: #63d9eb !important;
    }

    .webhook-docs-page .nr-mobile-nav-signup {
        color: #f7f7f8 !important;
    }

    /* Hamburger / X */
    .webhook-docs-page .nr-menu-button span {
        background: #ffffff !important;
    }

    /* Keep the white Net Rentals logo positioned properly */
    .webhook-docs-page .nr-brand,
    .webhook-site-header .nr-brand {
        display: flex;
        align-items: center;
        width: auto;
        margin-left: 0 !important;
        padding-left: 0 !important;
        transform: none !important;
    }

    .webhook-docs-page .nr-brand-logo,
    .webhook-site-header .nr-brand-logo {
        display: block;
        width: auto !important; /* Let aspect ratio dictate width */
        height: 66px !important; /* Match desktop/API reference height */
        max-width: 140px !important;
        margin: 0 !important;
        transform: none !important;
        object-fit: contain;
        object-position: left center !important;
    }
}
