
.cn-opp-shell{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:22px;align-items:start}.cn-opp-compose{position:sticky;top:92px;padding:22px;border:1px solid rgba(41,31,19,.14);border-radius:20px;background:#fffaf1;box-shadow:0 12px 35px rgba(54,39,20,.06)}.cn-opp-gate{margin-top:12px;padding:14px;border-radius:14px;background:#f0e7d8;color:#5e554a;font-size:13px;line-height:1.5}.cn-opp-compose form{display:grid;gap:13px;margin-top:16px}.cn-opp-compose label{display:grid;gap:7px;font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:#554a3d}.cn-opp-compose label span{font-weight:600;letter-spacing:0;text-transform:none;color:#8c8173}.cn-opp-compose input,.cn-opp-compose select,.cn-opp-compose textarea{width:100%;border:1px solid rgba(41,31,19,.16);border-radius:12px;background:#fff;padding:12px 13px;color:#1c1813;font:500 14px/1.45 system-ui,-apple-system,sans-serif;outline:none}.cn-opp-compose textarea{resize:vertical}.cn-opp-compose input:focus,.cn-opp-compose select:focus,.cn-opp-compose textarea:focus{border-color:#aa7928;box-shadow:0 0 0 3px rgba(170,121,40,.1)}.cn-opp-compose small{justify-self:end;color:#8d8173;font-size:10px}.cn-opp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cn-opp-board{min-width:0}.cn-opp-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:15px}.cn-opp-toolbar strong{font-size:11px;letter-spacing:.14em}.cn-opp-toolbar [data-opp-result-count]{display:block;margin-top:4px;color:#8b8176;font-size:11px}.cn-opp-filter-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.cn-opp-filter{border:1px solid rgba(41,31,19,.14);background:transparent;border-radius:999px;padding:8px 10px;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.cn-opp-filter.is-active{background:#1a1713;color:#fff;border-color:#1a1713}.cn-opps[data-opp-list]{display:grid;gap:11px}.cn-opp-card{display:grid;grid-template-columns:minmax(110px,140px) minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px;border:1px solid rgba(41,31,19,.13);border-radius:17px;background:rgba(255,250,241,.74)}.cn-opp-card:hover{border-color:rgba(170,121,40,.42)}.cn-opp-left{display:grid;gap:6px}.cn-opp-tag{width:max-content}.cn-opp-pay{width:max-content;padding:5px 8px;border-radius:999px;background:#eee3d2;color:#584a39;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.cn-opp-card h3{margin:0 0 7px;font:600 20px/1.1 Georgia,serif;color:#17130f}.cn-opp-card p{margin:0;color:#665d53;font-size:13px;line-height:1.55}.cn-opp-byline{margin-top:8px;font-size:10px;color:#8a7e70}.cn-opp-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.cn-opp-interest.is-on{background:#1c1813;color:#fff}.cn-opp-empty{padding:30px;border:1px dashed rgba(41,31,19,.18);border-radius:16px;text-align:center;color:#83796d;font-size:13px}.cn-opp-deadline{color:#9b6c20;font-weight:700}@media(max-width:900px){.cn-opp-shell{grid-template-columns:1fr}.cn-opp-compose{position:static}.cn-opp-toolbar{display:block}.cn-opp-filter-row{justify-content:flex-start;margin-top:10px}.cn-opp-card{grid-template-columns:1fr}.cn-opp-actions{justify-content:flex-start}}@media(max-width:560px){.cn-opp-form-grid{grid-template-columns:1fr}.cn-opp-card{padding:16px}.cn-opp-card h3{font-size:19px}}

/* V11.9.21 — opportunities also travel through the main feed */
.cn-opportunity-feed-post{border-left:3px solid currentColor;background:linear-gradient(180deg,rgba(255,248,232,.82),rgba(255,255,255,.64))}
.cn-opportunity-feed-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px}
.cn-opportunity-feed-pill{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border:1px solid rgba(37,31,24,.22);border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.cn-opportunity-feed-post.is-closed{opacity:.66}
.cn-opportunity-feed-post.is-closed .cn-opportunity-feed-pill:first-child{text-decoration:line-through}
.cn-opportunity-title{margin:4px 0 8px;font-size:clamp(20px,3vw,30px);line-height:1.02}
.cn-opportunity-feed-meta{font-size:12px;opacity:.72;margin-bottom:8px}
.cn-opportunity-feed-post .cn-post-copy{white-space:pre-line}

/* V11.9.23 — Opportunity feed typography + threaded-grid alignment fix.
   Opportunity cards are children of the Threads-style two-column feed grid.
   Keep all opportunity content in the main text column so headings never collapse
   into the 44px avatar rail. */
.cn-view[data-cn-view="feed"] .cn-opportunity-feed-post .cn-opportunity-feed-head,
.cn-view[data-cn-view="feed"] .cn-opportunity-feed-post .cn-opportunity-title,
.cn-view[data-cn-view="feed"] .cn-opportunity-feed-post .cn-opportunity-feed-meta{
  grid-column:2;
  min-width:0;
}
.cn-view[data-cn-view="feed"] .cn-opportunity-feed-post .cn-opportunity-feed-head{
  margin:0 0 8px;
}
.cn-view[data-cn-view="feed"] .cn-opportunity-feed-post .cn-opportunity-title{
  margin:8px 0 2px;
  font:700 21px/1.16 Georgia,serif;
  letter-spacing:-.015em;
  overflow-wrap:anywhere;
  word-break:normal;
}
.cn-view[data-cn-view="feed"] .cn-opportunity-feed-post .cn-post-copy{
  font:500 15px/1.5 system-ui,sans-serif;
  margin-top:8px;
  white-space:pre-line;
  overflow-wrap:anywhere;
}
.cn-view[data-cn-view="feed"] .cn-opportunity-feed-post .cn-opportunity-feed-meta{
  margin:8px 0 0;
  font:600 11.5px/1.35 system-ui,sans-serif;
  color:#817a72;
}
.cn-view[data-cn-view="feed"] .cn-opportunity-feed-post .cn-actions{
  flex-wrap:wrap;
  row-gap:10px;
}
@media(max-width:760px){
  .cn-view[data-cn-view="feed"] .cn-opportunity-feed-post .cn-opportunity-title{
    font-size:19px;
    line-height:1.18;
  }
  .cn-view[data-cn-view="feed"] .cn-opportunity-feed-post .cn-post-copy{
    font-size:14.5px;
    line-height:1.48;
  }
  .cn-view[data-cn-view="feed"] .cn-opportunity-feed-pill{
    min-height:25px;
    padding:4px 8px;
    font-size:9px;
  }
}

/* V11.9.26 — definitive feed-column lock.
   Opportunity feed posts do not currently render an avatar, so every direct
   content item must be explicitly anchored to the threaded feed's text column.
   This prevents CSS auto-placement from ever dropping the headline/pills into
   the narrow avatar rail. */
.cn-view[data-cn-view="feed"] .cn-opportunity-feed-post > *{
  grid-column:2 !important;
  min-width:0;
  max-width:100%;
}
.cn-view[data-cn-view="feed"] .cn-opportunity-feed-post .cn-opportunity-title{
  width:auto;
  max-width:100%;
  font:700 21px/1.18 Georgia,serif !important;
  letter-spacing:-.012em;
  word-break:normal !important;
  overflow-wrap:break-word !important;
  hyphens:none;
}
.cn-view[data-cn-view="feed"] .cn-opportunity-feed-post .cn-post-copy{
  width:auto;
  max-width:100%;
  font:500 15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}
@media(max-width:760px){
  .cn-view[data-cn-view="feed"] .cn-opportunity-feed-post .cn-opportunity-title{
    font-size:19px !important;
    line-height:1.2 !important;
  }
  .cn-view[data-cn-view="feed"] .cn-opportunity-feed-post .cn-post-copy{
    font-size:14.5px !important;
    line-height:1.48 !important;
  }
}
