/* One vertical rhythm for public pages, account panels and administration. */
:root{--section-gap:32px;--block-gap:24px;--card-padding:24px;--text-gap:16px;--control-gap:12px}
.dev-content{flex:1;min-width:0}
.dev-content main.container{display:flex;flex-direction:column;gap:var(--section-gap);padding-bottom:0}
.dev-content main.container:has(>.ip-developer){padding-bottom:0}
.dev-content main.container>*{margin-block:0}
.dev-content main.container>.hero,.dev-content main.container>.page-heading,.dev-content main.container>.feature-strip{padding-block:0}
.dev-content main.container>.api-grid{margin-block:0;gap:var(--block-gap)}
.dev-content main.container>.name-banner{margin:0;padding:var(--card-padding)}
.dev-content .hero>*:last-child,.dev-content .page-heading>*:last-child,.dev-content .feature-strip>*:last-child{margin-bottom:0}
.dev-content .page-heading h1,.dev-content .hero h1{margin-bottom:var(--text-gap)}
.dev-content .hero .lead{margin-bottom:var(--block-gap)}
.dev-content .hero .muted{margin-top:var(--text-gap)}
.dev-content .feature-strip>p{margin:var(--text-gap) 0}
.dev-content .feature-tags{margin:var(--text-gap) 0 0}
.dev-content .card{padding:var(--card-padding);min-width:0}
.dev-content .legal-body{overflow-wrap:anywhere;hyphens:auto}
.dev-content .card>:first-child{margin-top:0}
.dev-content .card>:last-child{margin-bottom:0}
.dev-content .pricing-section,.dev-content .product-pricing{display:flex;flex-direction:column;gap:var(--block-gap)}
.dev-content .pricing-section>*,.dev-content .product-pricing>*{margin-block:0}
.dev-content .pricing-grid{gap:var(--block-gap)}
.dev-content .pricing-grid>.card,.dev-content .product-plan-grid>.card{margin-bottom:0}
.dev-content .legal-body section{margin-block:var(--block-gap)}
.dev-content .legal-body>section:last-child{margin-bottom:0}
.dev-content .legal-body section>:first-child{margin-top:0}
.dev-content .legal-body section>:last-child{margin-bottom:0}
.dev-content>.partners{margin-block:var(--section-gap);padding-block:0}
.dev-content>.partners h2{margin-bottom:var(--text-gap)}
footer{margin-top:0}

/* A visible panel owns its gaps; nested cards never add a second bottom margin. */
.ip-developer{display:flex;flex-direction:column;gap:var(--block-gap);margin:0;padding:0}
.ip-developer>h1,.ip-admin>h1{margin:0}
.ip-developer #account-member,.ip-developer #staff-dashboard,.ip-developer [role=tabpanel],
.ip-developer #account-guest,.ip-developer #product-subscriptions,.ip-developer #staff-providers,
.ip-developer #staff-catalog,.ip-developer #staff-settings,.ip-developer #staff-closures{display:flex;flex-direction:column;gap:var(--block-gap);min-width:0}
.ip-developer #account-member>*,.ip-developer #staff-dashboard>*,.ip-developer [role=tabpanel]>*,
.ip-developer #account-guest>*,.ip-developer #product-subscriptions>*,.ip-developer #staff-providers>*,
.ip-developer #staff-catalog>*,.ip-developer #staff-settings>*,.ip-developer #staff-closures>*{margin-block:0}
.ip-developer .account-tabs{margin:0;gap:8px}
.ip-developer .account-metrics:empty,.ip-developer :is(#product-subscriptions,#staff-providers,#staff-catalog,#staff-settings,#staff-closures):empty{display:none}
.ip-developer .info{padding:var(--card-padding)}
.ip-developer .info>:first-child{margin-top:0}
.ip-developer .info>:last-child{margin-bottom:0}
.ip-developer .account-metrics,.ip-developer .account-columns,.ip-developer .catalogue-list{gap:var(--block-gap)}
.ip-developer .account-metrics>.info,.ip-developer .account-columns>.info,.ip-developer .catalogue-list>.info{margin:0}
.ip-developer .actions{gap:var(--control-gap)}
.ip-developer .catalogue-list,.ip-developer .catalogue-form{margin:0}
.ip-developer #staff-settings .integration-tabs{margin:0}
.ip-developer .integration-panel{display:flex;flex-direction:column;gap:var(--block-gap)}
.ip-developer .integration-panel>*{margin-block:0}
.ip-developer .integration-mode{padding-bottom:var(--block-gap)}
.ip-developer .account-table-wrap{margin-block:var(--text-gap)}
.ip-developer [role=tabpanel]>.account-table-wrap{margin-block:0}
.ip-developer [role=tabpanel]>#api-statistics-filters{margin-block:0}
.ip-developer .product-plan-grid{gap:var(--block-gap)}
.ip-developer .billing-plans{gap:var(--block-gap)}
.ip-developer .billing-plans>.card{margin-bottom:0}
@media(max-width:700px){
 :root{--section-gap:24px;--block-gap:20px;--card-padding:20px}
 .ip-developer .account-columns{display:grid;grid-template-columns:1fr}
}
