/* Биржа и профили мастеров: та же тема (theme.css), mobile-first */
.jb-top { position: sticky; top: 0; z-index: 10; background: var(--color-surface); border-bottom: 1px solid var(--color-border); }
.jb-top__row { display: flex; align-items: center; justify-content: space-between; gap: 8px; max-width: 960px; margin: 0 auto; padding: 10px 16px; }
.jb-top .brand { font-weight: 700; color: var(--color-text); text-decoration: none; }
.jb-nav { display: flex; gap: 2px; max-width: 960px; margin: 0 auto; padding: 0 8px; overflow-x: auto; }
.jb-nav a { padding: 8px 10px; color: var(--color-muted); text-decoration: none; white-space: nowrap; font-size: var(--font-size-sm); }
.jb-nav a.is-active { color: var(--color-primary); font-weight: 600; border-bottom: 2px solid var(--color-primary); }
.jb-main { max-width: 960px; margin: 0 auto; padding: 16px 16px 40px; }
.jb-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.jb-grid { display: grid; gap: 12px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .jb-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .jb-grid--3 { grid-template-columns: repeat(3, 1fr); } }
.jb-card { display: block; color: var(--color-text); text-decoration: none; }
.jb-card h3 { margin: 0 0 4px; }
.jb-person { display: flex; gap: 12px; align-items: center; }
.jb-avatar { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; flex: none; background: var(--color-primary-soft); display: inline-flex; align-items: center; justify-content: center; color: var(--color-primary); font-weight: 700; font-size: 22px; }
.jb-avatar--lg { width: 96px; height: 96px; font-size: 32px; }
.jb-portfolio { display: grid; gap: 8px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 640px) { .jb-portfolio { grid-template-columns: repeat(3, 1fr); } }
.jb-portfolio figure { margin: 0; }
.jb-portfolio img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius); display: block; }
.jb-portfolio figcaption { font-size: var(--font-size-sm); color: var(--color-muted); margin-top: 2px; overflow-wrap: anywhere; }
.jb-verified { display: inline-flex; align-items: center; gap: 4px; color: var(--color-success); font-weight: 600; }
.jb-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.jb-salary { font-weight: 700; white-space: nowrap; }
.jb-share { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.jb-share img { width: 120px; height: 120px; }
.jb-share input { flex: 1; min-width: 0; }
.jb-msg { padding: 8px 12px; border-radius: var(--radius); margin-bottom: 8px; background: var(--color-bg); overflow-wrap: anywhere; }
.jb-msg--mine { background: var(--color-primary-soft); }
.jb-msg img { max-width: 220px; border-radius: var(--radius); display: block; margin-top: 4px; }
.jb-steps { margin: 0; padding-left: 20px; }
.jb-steps li { margin-bottom: 4px; }
.jb-steps .done { color: var(--color-success); }
.jb-pre { white-space: pre-line; overflow-wrap: anywhere; }
.jb-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 4px 8px; }
.jb-head .badge { white-space: normal; }
.jb-person > div, .jb-person > form { min-width: 0; }
.jb-person input[type=file], .jb-share input, .jb-portfolio input { max-width: 100%; min-width: 0; }
