diff --git a/odoo-community-developers/index.html b/odoo-community-developers/index.html
index 7b47515..e82e680 100644
--- a/odoo-community-developers/index.html
+++ b/odoo-community-developers/index.html
@@ -336,6 +336,7 @@
display: flex;
flex-direction: column;
gap: 0.7rem;
+ position: relative; /* the OCA badge is anchored to the frame, not to the flow */
}
.dev-card > :last-child {
margin-bottom: 0;
@@ -373,6 +374,7 @@
font-size: 1.3rem;
color: var(--midnight);
margin: 0;
+ overflow-wrap: anywhere; /* a name with no space in it cannot push the card open */
}
.dev-focus {
margin: 0.15rem 0 0;
@@ -685,11 +687,13 @@
}
/* The OCA Member Profile badge — a link built from a link the freelancer
- supplied. It sits with the name, not in the links row. Never colour alone:
- it is a filled pill and its own words are the link text. */
+ supplied. It sits on the card's frame, top right, inset from the corner;
+ it stays in the DOM with the name (the name is read first). Never colour
+ alone: it is a filled pill and its own words are the link text. */
.dev-oca-badge {
- display: inline-block;
- margin-top: 0.3rem;
+ position: absolute;
+ top: 0.85rem;
+ right: 0.85rem;
font-size: 0.72rem;
line-height: 1.4;
padding: 0.15rem 0.6rem;
@@ -699,6 +703,15 @@
color: var(--midnight);
font-weight: 600;
}
+ /* Reserve the badge's band for the badge: the header starts below it, so the
+ name keeps the card's full width, wraps freely, and can never reach the
+ badge. A horizontal reserve was measured and rejected — at 375 px the card
+ leaves the name column 171 px, and the badge's 135 px would cut it to 42 px.
+ Without :has() there is no reserve; the badge then sits in the band above
+ the name's first line and still does not collide. */
+ .dev-card:has(.dev-oca-badge) {
+ padding-top: 3.15rem;
+ }
.dev-oca-badge:hover {
background: rgba(201, 162, 39, 0.32);
color: var(--midnight);