/* Public board pages (v3): /projects, /projects/<slug>, /crews, /money. Tokens come from tokens.css; base classes from v3.css. */
.v3-filter { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: flex-end; margin: 0 0 1.5rem; }
.v3-filter .v3-field { margin: 0; min-width: min(220px, 100%); }
.v3-filter .v3-field select { width: 100%; }
.v3-filter__count { margin: 0 0 1rem; font-weight: 700; color: var(--rz-text); }

.v3-objs { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); }
.v3-obj { background: var(--rz-surface); border: 1px solid var(--rz-line); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
.v3-obj__pic { aspect-ratio: 4 / 3; background-color: var(--rz-blue-soft); background-image: linear-gradient(rgba(26, 77, 124, .16) 1px, transparent 1px), linear-gradient(90deg, rgba(26, 77, 124, .16) 1px, transparent 1px); background-size: 24px 24px; }
.v3-obj__pic img { display: block; width: 100%; height: 100%; object-fit: cover; }
.v3-obj__body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.v3-obj__no { font: 700 .75rem var(--rz-font-display); letter-spacing: .04em; color: var(--rz-muted); margin: 0; }
.v3-obj__body h2, .v3-obj__body h3 { font-family: var(--rz-font); font-size: 1.1875rem; line-height: 1.3; margin: 0; letter-spacing: 0; }
.v3-obj__body p { margin: 0; font-size: .9375rem; }
.v3-obj__tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: auto; padding-top: .5rem; }
.v3-obj__more { font-weight: 700; margin-top: .5rem; }

.v3-facts { display: grid; grid-template-columns: max-content 1fr; gap: .6rem 1.5rem; margin: 0 0 1.5rem; }
.v3-facts dt { color: var(--rz-muted); font-size: .9375rem; }
.v3-facts dd { margin: 0; font-weight: 700; color: var(--rz-text); }
.v3-photos { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); }
.v3-photos img { display: block; width: 100%; height: auto; border-radius: 12px; border: 1px solid var(--rz-line); }
.v3-quote { border-left: 6px solid var(--rz-accent); margin: 0 0 1.5rem; padding: .25rem 0 .25rem 1.25rem; font-size: 1.125rem; color: var(--rz-text); }

.v3-sum { display: flex; flex-wrap: wrap; gap: 8px 12px; margin: 0 0 1.5rem; }
.v3-crewrow { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 16px; padding: 16px 20px; margin-bottom: 10px; background: var(--rz-surface); border: 1px solid var(--rz-line); border-radius: 12px; }
.v3-crewrow strong { display: block; color: var(--rz-text); }
.v3-crewrow span.v3-muted { font-size: .9375rem; }
.v3-chip-d { display: inline-block; font: 600 .8125rem var(--rz-font); padding: .2rem .7rem; border-radius: 999px; background: var(--rz-blue-soft); color: var(--rz-ink); white-space: nowrap; }
.v3-chip-d--ok { background: #E3F3EA; color: #1E7B4F; }
.v3-chip-d--busy { background: #FBE7DC; color: #7C2D12; }

.v3-ls { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); counter-reset: v3ls; }
.v3-ls > li { counter-increment: v3ls; background: var(--rz-surface); border: 1px solid var(--rz-line); border-radius: 16px; padding: 24px 24px 24px 24px; }
.v3-ls h3::before { content: counter(v3ls); display: inline-block; width: 28px; height: 28px; margin-right: .6rem; border-radius: 8px; background: var(--rz-ink); color: #fff; font: 700 .8125rem/28px var(--rz-font-display); text-align: center; }
.v3-ls p { margin: 0; font-size: .9375rem; }
