.fs-shell, .fs-people-access {
  --fs-ink: var(--navy, #172033);
  --fs-muted: var(--slate, #667085);
  --fs-line: var(--border, #e4e7ec);
  --fs-panel: var(--surface, #fff);
  --fs-soft: #f7f8fb;
  --fs-purple: #6f3bd1;
  --fs-purple-soft: #f2ecff;
  --fs-orange: #f47a2a;
  --fs-yellow: #f6c744;
  --fs-green: #198754;
  --fs-green-soft: #eaf8f0;
  --fs-red: #c4323f;
  --fs-red-soft: #fff0f1;
  color: var(--fs-ink);
}

.fs-shell {
  display: grid;
  gap: 18px;
  max-width: 1540px;
  margin: 0 auto;
}

:is(.fs-shell, .fs-people-access) *, :is(.fs-shell, .fs-people-access) *::before, :is(.fs-shell, .fs-people-access) *::after { box-sizing: border-box; }
:is(.fs-shell, .fs-people-access) :is(button, input, select, textarea) { font: inherit; }
:is(.fs-shell, .fs-people-access) button { -webkit-tap-highlight-color: transparent; }

.fs-people-access { min-width: 0; }
.fs-people-filter { display: flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 700; }
.fs-people-empty { padding: 0 16px; color: var(--fs-muted); font-size: 12px; }
.fs-people-access .fs-connection-time { white-space: normal; line-height: 1.5; }
.fs-access-state { display: grid; gap: 6px; min-width: 0; }
.fs-access-detail { color: var(--fs-muted); font-size: 11px; line-height: 1.5; }
.fs-access-row > * { min-width: 0; overflow-wrap: anywhere; }
.fs-people-access .fs-toolbar-right { flex-shrink: 0; }
.fs-people-access .fs-row-actions { flex-wrap: wrap; }

.fs-hero {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 26px;
  border: 1px solid rgba(111, 59, 209, .18);
  border-radius: 18px;
  background:
    radial-gradient(circle at 92% 15%, rgba(246, 199, 68, .24), transparent 27%),
    radial-gradient(circle at 72% 120%, rgba(244, 122, 42, .17), transparent 38%),
    linear-gradient(135deg, #171023 0%, #2a173d 55%, #382029 100%);
  color: #fff;
  box-shadow: 0 18px 50px rgba(27, 20, 45, .13);
}

.fs-hero::after {
  content: "";
  position: absolute;
  inset: auto -80px -125px auto;
  width: 270px;
  height: 270px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(255,255,255,.035), 0 0 0 78px rgba(255,255,255,.025);
  pointer-events: none;
}

.fs-hero-copy { position: relative; z-index: 1; max-width: 760px; }
.fs-kicker { display: block; margin-bottom: 8px; color: #ffc669; font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.fs-hero h1 { margin: 0; font-size: clamp(27px, 3vw, 40px); line-height: 1.08; letter-spacing: -.035em; }
.fs-hero p { margin: 10px 0 0; max-width: 700px; color: rgba(255,255,255,.72); font-size: 14px; line-height: 1.6; }
.fs-beta-pill { display: inline-flex; align-items: center; gap: 7px; margin-top: 15px; padding: 7px 10px; border: 1px solid rgba(255,255,255,.15); border-radius: 999px; background: rgba(255,255,255,.08); color: rgba(255,255,255,.84); font-size: 11px; font-weight: 700; }
.fs-beta-pill i { width: 7px; height: 7px; border-radius: 50%; background: #ffc857; box-shadow: 0 0 0 4px rgba(255,200,87,.13); }

.fs-hero-actions { position: relative; z-index: 1; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.fs-btn {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 39px;
  padding: 9px 13px;
  border: 1px solid var(--fs-line);
  border-radius: 9px;
  background: var(--fs-panel);
  color: var(--fs-ink);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.15;
  cursor: pointer;
  transition: border-color .16s ease, transform .16s ease, background .16s ease, box-shadow .16s ease;
}
.fs-btn:hover:not(:disabled) { transform: translateY(-1px); border-color: rgba(111,59,209,.42); box-shadow: 0 7px 18px rgba(27,20,45,.08); }
.fs-btn:focus-visible { outline: 3px solid rgba(111,59,209,.22); outline-offset: 2px; }
.fs-btn:disabled { cursor: not-allowed; opacity: .48; }
.fs-btn.primary { border-color: transparent; background: linear-gradient(115deg, var(--fs-purple), #9147c7 61%, #e86d31); color: #fff; box-shadow: 0 8px 22px rgba(111,59,209,.2); }
.fs-btn.danger { border-color: rgba(196,50,63,.25); color: var(--fs-red); background: var(--fs-red-soft); }
.fs-btn.ghost { border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.09); color: #fff; backdrop-filter: blur(10px); }
.fs-btn.small { min-height: 32px; padding: 6px 9px; font-size: 11px; border-radius: 8px; }
.fs-btn.icon-only { width: 34px; min-height: 34px; padding: 0; }

.fs-connection {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 13px 15px;
  border: 1px solid var(--fs-line);
  border-radius: 12px;
  background: var(--fs-panel);
}
.fs-connection-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: #eef1f6; color: var(--fs-muted); }
.fs-connection strong, .fs-connection span { display: block; }
.fs-connection strong { font-size: 12px; }
.fs-connection span { margin-top: 2px; color: var(--fs-muted); font-size: 11px; line-height: 1.4; }
.fs-connection.connected { border-color: rgba(25,135,84,.24); background: var(--fs-green-soft); }
.fs-connection.connected .fs-connection-mark { background: #d7f2e2; color: var(--fs-green); }
.fs-connection.checking .fs-connection-mark { background: var(--fs-purple-soft); color: var(--fs-purple); }
.fs-connection.failed { border-color: rgba(196,50,63,.2); background: var(--fs-red-soft); }
.fs-connection.failed .fs-connection-mark { background: #ffe1e4; color: var(--fs-red); }
.fs-connection-time { color: var(--fs-muted); font-size: 10px; white-space: nowrap; }

.fs-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.fs-metric { padding: 17px; border: 1px solid var(--fs-line); border-radius: 14px; background: var(--fs-panel); box-shadow: 0 8px 25px rgba(22,31,50,.035); }
.fs-metric-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--fs-muted); font-size: 11px; font-weight: 750; }
.fs-metric-icon { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 9px; background: var(--fs-soft); color: var(--fs-purple); }
.fs-metric-value { margin-top: 10px; font-size: 27px; font-weight: 850; letter-spacing: -.04em; }
.fs-metric p { margin: 5px 0 0; color: var(--fs-muted); font-size: 10px; line-height: 1.45; }

.fs-access-model { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.fs-role-card { position: relative; overflow: hidden; min-height: 180px; padding: 18px; border: 1px solid var(--fs-line); border-radius: 14px; background: var(--fs-panel); }
.fs-role-card::after { content: ""; position: absolute; right: -25px; bottom: -45px; width: 115px; height: 115px; border-radius: 50%; background: var(--role-soft); opacity: .75; }
.fs-role-top { position: relative; z-index: 1; display: flex; align-items: center; gap: 11px; }
.fs-role-icon { display: grid; place-items: center; flex: 0 0 auto; width: 40px; height: 40px; border-radius: 12px; background: var(--role-soft); color: var(--role-tone); }
.fs-role-top strong { display: block; font-size: 14px; }
.fs-role-top span { display: block; margin-top: 2px; color: var(--fs-muted); font-size: 10px; }
.fs-role-card ul { position: relative; z-index: 1; display: grid; gap: 7px; margin: 15px 0 0; padding: 0; list-style: none; }
.fs-role-card li { display: flex; gap: 8px; color: var(--fs-muted); font-size: 11px; line-height: 1.4; }
.fs-role-card li::before { content: ""; flex: 0 0 auto; width: 5px; height: 5px; margin-top: 5px; border-radius: 50%; background: var(--role-tone); }
.fs-role-card.assessor { --role-tone: #6f3bd1; --role-soft: #f1eafe; }
.fs-role-card.supplier { --role-tone: #d5651f; --role-soft: #fff0e6; }
.fs-role-card.supervisor { --role-tone: #198754; --role-soft: #e9f7ef; }

.fs-web-only { display: flex; align-items: flex-start; gap: 11px; padding: 13px 15px; border: 1px solid #e6d8b5; border-radius: 12px; background: #fffbef; color: #735516; }
.fs-web-only strong { display: block; font-size: 11px; }
.fs-web-only span { display: block; margin-top: 3px; color: #8d7137; font-size: 10px; line-height: 1.45; }

.fs-workspace { border: 1px solid var(--fs-line); border-radius: 16px; background: var(--fs-panel); overflow: hidden; }
.fs-tabs { display: flex; gap: 3px; padding: 8px; border-bottom: 1px solid var(--fs-line); background: var(--fs-soft); overflow-x: auto; }
.fs-tab { appearance: none; min-height: 35px; padding: 7px 12px; border: 0; border-radius: 8px; background: transparent; color: var(--fs-muted); font-size: 11px; font-weight: 750; white-space: nowrap; cursor: pointer; }
.fs-tab.active { background: var(--fs-panel); color: var(--fs-purple); box-shadow: 0 1px 4px rgba(23,32,51,.08); }
.fs-tab-count { display: inline-grid; place-items: center; min-width: 19px; height: 19px; margin-left: 6px; padding: 0 5px; border-radius: 999px; background: #ececf2; color: var(--fs-muted); font-size: 9px; }
.fs-tab.active .fs-tab-count { background: var(--fs-purple-soft); color: var(--fs-purple); }

.fs-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px; border-bottom: 1px solid var(--fs-line); }
.fs-toolbar-left, .fs-toolbar-right { display: flex; align-items: center; gap: 8px; }
.fs-search { position: relative; min-width: 260px; }
.fs-search svg { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: var(--fs-muted); pointer-events: none; }
.fs-search input { width: 100%; height: 37px; padding: 8px 11px 8px 35px; border: 1px solid var(--fs-line); border-radius: 9px; background: var(--fs-panel); color: var(--fs-ink); font-size: 11px; outline: none; }
.fs-search input:focus { border-color: rgba(111,59,209,.45); box-shadow: 0 0 0 3px rgba(111,59,209,.1); }
.fs-filter { height: 37px; padding: 7px 28px 7px 10px; border: 1px solid var(--fs-line); border-radius: 9px; background: var(--fs-panel); color: var(--fs-ink); font-size: 11px; outline: none; }

.fs-list { display: grid; }
.fs-assignment { display: grid; grid-template-columns: minmax(220px, 1.25fr) minmax(165px, .8fr) minmax(150px, .75fr) minmax(118px, .55fr) auto; gap: 16px; align-items: center; padding: 16px; border-bottom: 1px solid var(--fs-line); }
.fs-assignment:last-child { border-bottom: 0; }
.fs-assignment:hover { background: rgba(111,59,209,.018); }
.fs-job strong, .fs-assignee strong { display: block; font-size: 12px; }
.fs-job span, .fs-assignee span, .fs-work-meta span { display: block; margin-top: 3px; color: var(--fs-muted); font-size: 10px; line-height: 1.4; }
.fs-job-address { max-width: 420px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fs-role-label { display: inline-flex; align-items: center; gap: 6px; width: fit-content; padding: 5px 8px; border-radius: 999px; background: var(--fs-purple-soft); color: var(--fs-purple); font-size: 9px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.fs-role-label.supplier { background: #fff0e6; color: #b55216; }
.fs-role-label.site-supervisor { background: #e9f7ef; color: #147346; }
.fs-deadline strong { display: block; font-size: 11px; }
.fs-deadline span { display: block; margin-top: 3px; color: var(--fs-muted); font-size: 10px; }
.fs-deadline.overdue strong { color: var(--fs-red); }
.fs-priority { display: inline-grid; place-items: center; width: 31px; height: 25px; border-radius: 7px; background: #f0f1f4; color: var(--fs-muted); font-size: 9px; font-weight: 850; }
.fs-priority.p1 { background: #ffe7e9; color: var(--fs-red); }
.fs-priority.p2 { background: #fff1e5; color: #b8581f; }
.fs-priority.p3 { background: #fff9df; color: #806412; }
.fs-sync { display: inline-flex; align-items: center; gap: 6px; margin-top: 7px; color: var(--fs-muted); font-size: 9px; font-weight: 700; }
.fs-sync::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #98a2b3; }
.fs-sync.synced::before { background: var(--fs-green); }
.fs-sync.failed::before { background: var(--fs-red); }
.fs-sync.publishing::before { background: var(--fs-purple); box-shadow: 0 0 0 3px rgba(111,59,209,.12); }
.fs-row-actions { display: flex; justify-content: flex-end; gap: 6px; }

.fs-empty { display: grid; place-items: center; min-height: 290px; padding: 35px; text-align: center; }
.fs-empty-mark { display: grid; place-items: center; width: 54px; height: 54px; margin: 0 auto 13px; border-radius: 16px; background: var(--fs-purple-soft); color: var(--fs-purple); }
.fs-empty h3 { margin: 0; font-size: 15px; }
.fs-empty p { max-width: 470px; margin: 7px auto 15px; color: var(--fs-muted); font-size: 11px; line-height: 1.55; }

.fs-feed { display: grid; }
.fs-feed-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 15px; border-bottom: 1px solid var(--fs-line); }
.fs-feed-item:last-child { border-bottom: 0; }
.fs-feed-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: var(--fs-purple-soft); color: var(--fs-purple); }
.fs-feed-icon.rfi { background: #fff4e5; color: #b85e20; }
.fs-feed-copy strong { display: block; font-size: 12px; }
.fs-feed-copy p { margin: 4px 0 0; color: var(--fs-muted); font-size: 11px; line-height: 1.5; }
.fs-feed-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; color: var(--fs-muted); font-size: 9px; }

.fs-access-list { display: grid; }
.fs-access-row { display: grid; grid-template-columns: minmax(200px, 1fr) minmax(150px, .75fr) minmax(150px, .75fr) auto; gap: 14px; align-items: center; padding: 15px; border-bottom: 1px solid var(--fs-line); }
.fs-access-row:last-child { border-bottom: 0; }
.fs-access-person strong { display: block; font-size: 12px; }
.fs-access-person span { display: block; margin-top: 3px; color: var(--fs-muted); font-size: 10px; }
.fs-invite-link { display: flex; align-items: center; gap: 6px; min-width: 0; }
.fs-invite-link > div { min-width: 0; }
.fs-invite-link code { display: block; max-width: 270px; padding: 6px 7px; overflow: hidden; border-radius: 6px; background: var(--fs-soft); color: var(--fs-muted); font: 9px/1.3 ui-monospace, SFMono-Regular, Menlo, monospace; text-overflow: ellipsis; white-space: nowrap; }
.fs-invite-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.fs-invite-actions .fs-btn { text-decoration: none; }
.fs-status { display: inline-flex; align-items: center; gap: 6px; width: fit-content; padding: 5px 8px; border-radius: 999px; background: #eff1f5; color: var(--fs-muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.fs-status.active, .fs-status.accepted, .fs-status.published, .fs-status.completed { background: var(--fs-green-soft); color: var(--fs-green); }
.fs-status.revoked, .fs-status.expired, .fs-status.failed, .fs-status.access-revoked { background: var(--fs-red-soft); color: var(--fs-red); }
.fs-status.suspended, .fs-status.routing-required { background: #fff1e5; color: #b8581f; }
.fs-status.pending-delivery { background: #fff8dd; color: #806412; }
.fs-status.delivered { background: var(--fs-green-soft); color: var(--fs-green); }
.fs-status.draft { background: #fff8dd; color: #806412; }

.fs-routing-boundary { display: flex; align-items: flex-start; gap: 11px; margin: 14px; padding: 12px 13px; border: 1px solid #e7d9b6; border-radius: 11px; background: #fffbef; color: #76591c; }
.fs-routing-boundary strong { display: block; font-size: 11px; }
.fs-routing-boundary span { display: block; margin-top: 3px; color: #8b713b; font-size: 10px; line-height: 1.45; }
.fs-notification-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 15px; border-bottom: 1px solid var(--fs-line); }
.fs-notification-row:last-child { border-bottom: 0; }
.fs-routing-error { color: var(--fs-red) !important; }

.fs-modal-backdrop {
  position: fixed;
  z-index: 1200;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: rgba(10, 13, 20, .66);
  backdrop-filter: blur(5px);
}
.fs-modal { width: min(720px, 100%); max-height: min(880px, calc(100dvh - 40px)); overflow: hidden; border: 1px solid rgba(255,255,255,.16); border-radius: 16px; background: var(--fs-panel); box-shadow: 0 26px 90px rgba(0,0,0,.28); }
.fs-modal.wide { width: min(880px, 100%); }
.fs-modal form { display: flex; flex-direction: column; max-height: inherit; }
.fs-modal-head, .fs-modal-foot { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 18px; }
.fs-modal-head { border-bottom: 1px solid var(--fs-line); }
.fs-modal-head h2 { margin: 0; font-size: 17px; }
.fs-modal-head p { margin: 4px 0 0; color: var(--fs-muted); font-size: 10px; }
.fs-modal-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 18px; }
.fs-modal-foot { border-top: 1px solid var(--fs-line); background: var(--fs-soft); }
.fs-modal-foot > span { color: var(--fs-muted); font-size: 9px; line-height: 1.4; }
.fs-modal-actions { display: flex; gap: 8px; }
.fs-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.fs-field { display: grid; gap: 6px; min-width: 0; }
.fs-field.full { grid-column: 1 / -1; }
.fs-field > span { color: var(--fs-ink); font-size: 10px; font-weight: 800; }
.fs-field > small { color: var(--fs-muted); font-size: 9px; line-height: 1.4; }
.fs-field input, .fs-field select, .fs-field textarea { width: 100%; min-height: 41px; padding: 9px 10px; border: 1px solid var(--fs-line); border-radius: 9px; background: var(--fs-panel); color: var(--fs-ink); font-size: 11px; outline: none; }
.fs-field textarea { min-height: 98px; resize: vertical; line-height: 1.5; }
.fs-field input:focus, .fs-field select:focus, .fs-field textarea:focus { border-color: rgba(111,59,209,.48); box-shadow: 0 0 0 3px rgba(111,59,209,.1); }
.fs-role-preview { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: 10px; padding: 11px; border: 1px solid var(--fs-line); border-radius: 10px; background: var(--fs-soft); }
.fs-role-preview strong { display: block; font-size: 10px; }
.fs-role-preview span { display: block; margin-top: 3px; color: var(--fs-muted); font-size: 9px; line-height: 1.4; }
.fs-honesty { grid-column: 1 / -1; padding: 11px; border: 1px solid #e7d9b6; border-radius: 10px; background: #fffbef; color: #7a5d21; font-size: 9px; line-height: 1.5; }
.fs-honesty.fs-error { border-color: rgba(196,50,63,.28); background: var(--fs-red-soft); color: var(--fs-red); }

.fs-provider-gates { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.fs-provider-gate { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 10px; align-items: start; padding: 13px; border: 1px solid var(--fs-line); border-radius: 12px; background: var(--fs-panel); }
.fs-provider-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: var(--fs-purple); background: var(--fs-purple-soft); }
.fs-provider-gate strong, .fs-provider-gate span { display: block; }
.fs-provider-gate strong { font-size: 11px; }
.fs-provider-gate div > span { margin-top: 4px; color: var(--fs-muted); font-size: 9px; line-height: 1.45; }
.fs-provider-gate i { padding: 4px 7px; border-radius: 999px; background: #fffbef; color: #7a5d21; font-size: 8px; font-style: normal; font-weight: 800; text-transform: uppercase; white-space: nowrap; }

html[data-theme="dark"] :is(.fs-shell, .fs-people-access) {
  --fs-ink: #f3f2f7;
  --fs-muted: #a9a6b2;
  --fs-line: rgba(255,255,255,.1);
  --fs-panel: #19171d;
  --fs-soft: #201e25;
  --fs-purple-soft: rgba(151,93,235,.16);
  --fs-green-soft: rgba(25,135,84,.16);
  --fs-red-soft: rgba(196,50,63,.16);
}
html[data-theme="dark"] .fs-web-only, html[data-theme="dark"] .fs-honesty { border-color: rgba(246,199,68,.2); background: rgba(246,199,68,.08); color: #e9c875; }
html[data-theme="dark"] .fs-routing-boundary { border-color: rgba(246,199,68,.2); background: rgba(246,199,68,.08); color: #e9c875; }
html[data-theme="dark"] .fs-routing-boundary span { color: #b9a376; }
html[data-theme="dark"] .fs-web-only span { color: #b9a376; }
html[data-theme="dark"] .fs-role-card.assessor { --role-soft: rgba(151,93,235,.15); }
html[data-theme="dark"] .fs-role-card.supplier { --role-soft: rgba(244,122,42,.14); }
html[data-theme="dark"] .fs-role-card.supervisor { --role-soft: rgba(25,135,84,.15); }
html[data-theme="dark"] .fs-role-label.supplier { background: rgba(244,122,42,.14); color: #ff9f67; }
html[data-theme="dark"] .fs-role-label.site-supervisor { background: rgba(25,135,84,.15); color: #63d59b; }
html[data-theme="dark"] .fs-priority { background: #28262d; }
html[data-theme="dark"] .fs-priority.p1 { background: rgba(196,50,63,.18); }
html[data-theme="dark"] .fs-priority.p2 { background: rgba(244,122,42,.15); color: #ff9d62; }
html[data-theme="dark"] .fs-priority.p3 { background: rgba(246,199,68,.12); color: #e6c755; }
html[data-theme="dark"] .fs-status { background: #28262d; }

@media (max-width: 1180px) {
  .fs-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fs-assignment { grid-template-columns: minmax(220px, 1.2fr) minmax(155px, .8fr) minmax(125px, .7fr) auto; }
  .fs-assignment .fs-work-meta { display: none; }
}

@media (max-width: 860px) {
  .fs-hero { flex-direction: column; }
  .fs-hero-actions { justify-content: flex-start; }
  .fs-access-model { grid-template-columns: 1fr; }
  .fs-provider-gates { grid-template-columns: 1fr; }
  .fs-role-card { min-height: 0; }
  .fs-toolbar { align-items: stretch; flex-direction: column; }
  .fs-toolbar-left, .fs-toolbar-right { width: 100%; }
  .fs-search { flex: 1; min-width: 0; }
  .fs-assignment { grid-template-columns: 1fr auto; gap: 12px; }
  .fs-assignment > :not(.fs-job):not(.fs-row-actions) { grid-column: 1 / -1; }
  .fs-assignment .fs-work-meta { display: block; }
  .fs-row-actions { grid-column: 2; grid-row: 1; }
  .fs-access-row { grid-template-columns: 1fr auto; }
  .fs-access-row > :nth-child(2), .fs-access-row > :nth-child(3) { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .fs-hero { padding: 20px; border-radius: 14px; }
  .fs-metrics { grid-template-columns: 1fr; }
  .fs-toolbar-left, .fs-toolbar-right { flex-wrap: wrap; }
  .fs-filter { flex: 1; min-width: 130px; }
  .fs-form-grid { grid-template-columns: 1fr; }
  .fs-field.full, .fs-role-preview, .fs-honesty { grid-column: 1; }
  .fs-modal-backdrop { place-items: end center; padding: 0; }
  .fs-modal, .fs-modal.wide { width: 100%; max-height: calc(100dvh - 28px); border-radius: 18px 18px 0 0; }
  .fs-modal-foot { align-items: stretch; flex-direction: column; }
  .fs-modal-actions { width: 100%; }
  .fs-modal-actions .fs-btn { flex: 1; }
  .fs-feed-item, .fs-notification-row { grid-template-columns: auto minmax(0, 1fr); }
  .fs-feed-item > .fs-btn, .fs-notification-row > .fs-btn { grid-column: 2; justify-self: start; }
}

[data-fs-supplier-field][hidden] { display: none !important; }
