/* CrossThread's permanent product shell.
   Left chooses the work. Center works through it. Paths unfolds the same Job. */

body.is-product-workspace-active,
.app-shell.is-product-workspace {
  --shell-canvas: #1c201c;
  --shell-panel: #252a24;
  --shell-raised: #2d332c;
  --shell-inset: #151915;
  --shell-border: #424941;
  --shell-control-border: #758075;
  --shell-muted: #a5ada2;
  --shell-text: #f1f0e9;
  --shell-subtle: #c8cec4;
  --shell-blue-bg: #192b43;
  --shell-blue-text: #a9cbff;
  --shell-green-bg: #193526;
  --shell-green-text: #8fddb0;
  --shell-amber-bg: #3b2a15;
  --shell-amber-text: #f4bf72;
  --shell-red-bg: #40201d;
  --shell-red-text: #f3a199;
  --paper: var(--shell-canvas);
  --paper-2: var(--shell-inset);
  --surface: var(--shell-raised);
  --line: var(--shell-border);
  --muted: var(--shell-muted);
  color-scheme: dark;
}

body.is-product-workspace-active { color: var(--shell-text); }
body.is-product-workspace-active .app-stage {
  min-height: 100svh;
  padding: 0;
}

.app-shell.is-product-workspace {
  color: var(--shell-text);
  grid-template: minmax(0, 1fr) / 264px minmax(420px, 1fr);
  width: 100%;
  max-width: none;
  height: 100svh;
  min-height: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  transition: grid-template-columns 180ms ease;
}

.job-workplane { display: contents; }

.app-shell.is-product-workspace .job-workplane {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template: minmax(0, 1fr) / minmax(420px, 1fr) 6px var(--job-panel-width, 344px);
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background-color: var(--shell-canvas);
  background-image:
    radial-gradient(circle at 84% -4%, rgb(215 255 67 / .055), transparent 22rem),
    linear-gradient(180deg, #20251f 0, var(--shell-canvas) 38%);
  background-position: center top, center top;
  background-size: auto, auto;
  transition: grid-template-columns 180ms ease;
}

.app-shell.is-product-workspace.is-workspace-grid-visible .job-workplane {
  background-image:
    linear-gradient(rgb(215 255 67 / .024) 1px, transparent 1px),
    linear-gradient(90deg, rgb(215 255 67 / .024) 1px, transparent 1px),
    radial-gradient(circle at 84% -4%, rgb(215 255 67 / .055), transparent 22rem),
    linear-gradient(180deg, #20251f 0, var(--shell-canvas) 38%);
  background-position: 0 0, 0 0, center top, center top;
  background-size: 32px 32px, 32px 32px, auto, auto;
}

.workspace-center {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr);
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: transparent;
  color: var(--shell-text, var(--ink));
}

.workspace-center > #view,
.conversation-scrubber-host { grid-area: 2 / 1; }

.conversation-scrubber-host {
  position: relative;
  z-index: 4;
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 0;
  overflow: visible;
  background: transparent;
}

.conversation-scrubber-host[hidden] { display: none; }

.is-product-workspace.is-path-map-open .workspace-center { overflow: visible; }
.is-product-workspace.is-path-map-open .workspace-center > #view {
  visibility: hidden;
  pointer-events: none;
}

.app-shell:not(.is-product-workspace) .workspace-center { grid-area: 1 / 1 / -1 / -1; }
.app-shell.is-product-workspace .workspace-center { grid-area: auto; }

.product-navigator {
  position: relative;
  z-index: 3;
  display: none;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #0f120f;
  color: #f6f4ed;
}

.is-product-workspace .product-navigator {
  display: flex;
  flex-direction: column;
}

.work-navigator { border-right: 1px solid rgb(255 255 255 / 0.09); }
.job-navigator {
  border-left: 0 solid var(--shell-border);
  background: transparent;
  color: var(--shell-text);
  container-type: inline-size;
}

.is-product-workspace.is-path-map-open .job-navigator,
.is-product-workspace.is-path-map-open .job-navigator .product-navigator-inner,
.is-product-workspace.is-path-map-open .job-navigator .product-navigator-scroll,
.is-product-workspace.is-path-map-open .job-navigator .job-panel-content,
.is-product-workspace.is-path-map-open .job-navigator .is-path-workfield,
.is-product-workspace.is-path-map-open .job-map-workfield,
.is-product-workspace.is-path-map-open .job-map-projection,
.is-product-workspace.is-path-map-open .path-statusline,
.is-product-workspace.is-path-map-open .job-map-scroll-content,
.is-product-workspace.is-path-map-open .job-map-canvas,
.is-product-workspace.is-path-map-open .job-map-after-canvas {
  background: transparent;
}

.is-product-workspace.is-path-map-open .job-navigator { border-left-color: transparent; }
.is-product-workspace.is-path-map-open .conversation-scrubber-host {
  display: block;
  background: transparent;
}

.job-panel-resizer {
  position: relative;
  z-index: 5;
  width: 6px;
  min-width: 6px;
  cursor: col-resize;
  touch-action: none;
}
.job-panel-resizer[hidden] { display: none; }

.job-panel-resizer::before {
  position: absolute;
  inset: 0 2px;
  background: var(--shell-border);
  content: "";
  transition: inset 120ms ease, background 120ms ease;
}

.job-panel-resizer:hover::before,
.job-panel-resizer:focus-visible::before,
.is-resizing-job-panel .job-panel-resizer::before {
  right: 1px;
  left: 1px;
  background: var(--acid);
}

.job-panel-resizer:focus-visible { outline: 2px solid rgb(215 255 67 / .72); outline-offset: -2px; }
.is-resizing-job-panel { cursor: col-resize; user-select: none; }
.is-resizing-job-panel .job-workplane { transition: none; }

.app-shell.is-product-workspace .app-header {
  border-bottom-color: rgb(255 255 255 / .055);
  background: rgb(31 36 31 / .94);
}

.app-shell.is-product-workspace .intelligence-workspace {
  background: transparent;
}

.app-shell.is-product-workspace .intelligence-composer {
  border-color: #4a5148;
  background: rgb(45 51 44 / .97);
  box-shadow: 0 -10px 34px rgb(0 0 0 / .28), inset 0 1px 0 rgb(255 255 255 / .035);
}

.app-shell.is-product-workspace .job-context-identity {
  background: rgb(45 51 44 / .7);
}

.product-navigator-inner {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: 0;
}

.product-navigator-head {
  display: grid;
  gap: 9px;
  padding: 15px 14px 12px;
  border-bottom: 1px solid rgb(255 255 255 / 0.09);
}

.job-navigator .product-navigator-head {
  border-bottom-color: var(--line);
  background: var(--shell-panel);
}

.product-navigator-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.product-navigator-title > div {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.product-navigator-title strong {
  overflow: hidden;
  font-size: 15px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.work-navigator-brand {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 9px;
  padding: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: left;
}

.work-navigator-brand > span:last-child { display: grid; min-width: 0; gap: 2px; }
.work-navigator-brand strong { overflow: hidden; font-size: 13px; letter-spacing: -.035em; text-overflow: ellipsis; white-space: nowrap; }
.work-navigator-brand small { overflow: hidden; color: #9ba096; font: 700 7px "SFMono-Regular", Consolas, monospace; letter-spacing: .07em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }

.product-navigator-title small {
  overflow: hidden;
  color: #9ba096;
  font: 700 9px "SFMono-Regular", Consolas, monospace;
  letter-spacing: .06em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.job-navigator .product-navigator-title small { color: var(--muted); }

.navigator-new-job {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 42px;
  border-radius: 11px;
  background: var(--acid);
  color: var(--ink);
  font-size: 12px;
  font-weight: 820;
  cursor: pointer;
}

.navigator-search {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  min-height: 38px;
  padding: 0 10px;
  border: 1px solid rgb(255 255 255 / 0.12);
  border-radius: 10px;
  background: rgb(255 255 255 / 0.06);
  color: #b7bbb3;
  font-size: 11px;
  cursor: pointer;
}

.product-navigator-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 11px 10px 18px;
  scrollbar-width: thin;
}

.navigator-group { display: grid; gap: 3px; margin-bottom: 14px; }
.navigator-group-title {
  margin: 0;
  padding: 4px 8px;
  color: #747b70;
  font: 800 9px "SFMono-Regular", Consolas, monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.job-navigator .navigator-group-title { color: var(--muted); }

.navigator-row,
.navigator-job-row,
.job-panel-tab {
  width: 100%;
  border-radius: 9px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: left;
}

.navigator-row {
  display: grid;
  grid-template-columns: 25px minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  min-height: 38px;
  padding: 6px 8px;
}

.navigator-row:hover,
.navigator-row.is-active,
.navigator-job-row:hover,
.navigator-job-row.is-active { background: rgb(255 255 255 / 0.08); }

.navigator-row > span:first-child { display: grid; place-items: center; color: #aeb4aa; }
.navigator-row strong { font-size: 12px; }
.navigator-row small,
.navigator-row em {
  color: #858b81;
  font: normal 700 9px "SFMono-Regular", Consolas, monospace;
}

.navigator-row em {
  padding: 3px 5px;
  border-radius: 999px;
  background: rgb(255 255 255 / 0.07);
}

.navigator-subrows {
  display: grid;
  gap: 2px;
  margin: 1px 0 5px 32px;
  padding-left: 8px;
  border-left: 1px solid rgb(215 255 67 / .22);
}

.navigator-subrows button {
  min-height: 29px;
  padding: 4px 7px;
  border-radius: 7px;
  background: transparent;
  color: #aeb3aa;
  font-size: 10px;
  cursor: pointer;
  text-align: left;
}

.navigator-subrows button:hover { background: rgb(255 255 255 / .07); color: #fff; }
.navigator-capability-note {
  display: grid;
  gap: 6px;
  margin: 3px 5px;
  padding: 11px;
  border: 1px dashed rgb(255 255 255 / .15);
  border-radius: 11px;
  background: rgb(255 255 255 / .035);
}

.navigator-capability-note strong { font-size: 13px; }
.navigator-capability-note p { margin: 0; color: #a2a79e; font-size: 11px; line-height: 1.45; }
.navigator-capability-note small { color: #858b81; font-size: 9px; line-height: 1.4; }
.navigator-capability-note button {
  justify-self: start;
  min-height: 34px;
  padding: 0 9px;
  border-radius: 8px;
  background: var(--acid);
  color: var(--ink);
  font-size: 10px;
  font-weight: 780;
  cursor: pointer;
}

.navigator-job-list { display: grid; gap: 3px; }
.navigator-job-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 7px;
  padding: 8px;
}

.navigator-job-row strong {
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.navigator-job-row p {
  grid-column: 1 / -1;
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  color: #969c92;
  font-size: 10px;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.navigator-job-row small { color: #8b9187; font-size: 9px; white-space: nowrap; }
.navigator-list-state {
  padding: 10px 8px;
  color: #92988e;
  font-size: 10px;
  line-height: 1.45;
}

.navigator-list-state button {
  display: block;
  margin-top: 7px;
  padding: 7px 9px;
  border-radius: 8px;
  background: rgb(255 255 255 / 0.09);
  color: #fff;
  font-size: 10px;
  cursor: pointer;
}

.request-surface-head,
.request-bucket > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.request-surface-head { padding: 0 5px 5px; }
.request-surface-head > div { display: grid; gap: 2px; }
.request-surface-head .navigator-group-title { padding: 0; }
.request-surface-head small { color: #858b81; font-size: 9px; }
.request-surface-head button {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 8px;
  border-radius: 7px;
  background: rgb(255 255 255 / .07);
  color: #d6dad2;
  font-size: 9px;
  cursor: pointer;
}
.request-bucket { display: grid; gap: 5px; margin: 0 4px 12px; }
.request-bucket > header { padding: 0 4px; }
.request-bucket > header strong { color: #cdd2ca; font-size: 10px; }
.request-bucket > header span { color: #858b81; font: 700 9px "SFMono-Regular", Consolas, monospace; }
.work-request-row {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 7px;
  width: 100%;
  padding: 9px 8px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: rgb(255 255 255 / .045);
  color: #f0f1ed;
  text-align: left;
  cursor: pointer;
}
.work-request-row:hover { border-color: rgb(215 255 67 / .24); background: rgb(255 255 255 / .075); }
.work-request-row > span:first-child { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 7px; background: rgb(215 255 67 / .08); color: var(--acid); }
.work-request-row > span:last-child { display: grid; gap: 2px; min-width: 0; }
.work-request-row strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.work-request-row small { color: #8f958c; font-size: 9px; }
.work-request-row p { display: -webkit-box; overflow: hidden; margin: 2px 0 0; color: #aeb3aa; font-size: 9px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.work-request-row.is-safety { border-color: rgb(243 161 153 / .38); background: var(--shell-red-bg); }
.work-request-row.is-safety > span:first-child { background: rgb(243 161 153 / .12); color: var(--shell-red-text); }
.navigator-list-state.is-error { color: #f3a199; }

.job-panel-content { display: grid; gap: 9px; }
.job-navigator .product-navigator-scroll { background: var(--shell-panel); }
.job-navigator .job-panel-content { align-content: start; min-height: 100%; }
.job-navigator .product-navigator-scroll.has-job-map { overflow: hidden; padding: 0; background: transparent; }
.job-navigator .job-panel-content.has-job-map { display: block; height: 100%; min-height: 0; }
.job-panel-card {
  display: grid;
  gap: 6px;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: var(--surface);
}

.job-panel-card h3 { margin: 0; font-size: 14px; }
.job-panel-card p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.job-panel-card ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.job-panel-card li { display: grid; gap: 2px; padding-top: 6px; border-top: 1px solid var(--line); font-size: 11px; line-height: 1.35; }
.job-panel-card li:first-child { padding-top: 0; border-top: 0; }
.job-panel-card li small { color: var(--muted); font-size: 9px; }
.job-panel-card.is-empty { border-style: dashed; background: transparent; }
.job-panel-card.is-stop { border-color: #dca79f; background: var(--red-bg); color: var(--red); }
.job-panel-card.is-stop p { color: #81473f; }
.job-panel-card button,
.job-panel-action {
  justify-self: start;
  min-height: 32px;
  padding: 0 9px;
  border-radius: 8px;
  background: var(--ink);
  color: #fff;
  font-size: 10px;
  font-weight: 760;
  cursor: pointer;
}

.job-panel-eyebrow { color: var(--acid); font: 800 9px "SFMono-Regular", Consolas, monospace; letter-spacing: .08em; text-transform: uppercase; }

.intake-location-card {
  display: grid;
  gap: 12px;
  justify-self: center;
  width: min(100%, 560px);
  padding: 15px;
  border: 1px solid rgb(215 255 67 / .24);
  border-radius: 16px;
  background: rgb(30 36 29 / .9);
  box-shadow: 0 16px 34px rgb(0 0 0 / .18);
}

.intake-location-heading { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 9px; }
.intake-location-heading > span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: rgb(215 255 67 / .1); color: var(--acid); }
.intake-location-heading div { display: grid; gap: 3px; }
.intake-location-heading small { color: var(--acid); font: 800 8px "SFMono-Regular", Consolas, monospace; letter-spacing: .08em; }
.intake-location-heading h2 { margin: 0; color: var(--shell-text); font-size: 17px; letter-spacing: -.025em; }
.intake-location-heading p,
.intake-location-card > small { margin: 0; color: var(--shell-muted); font-size: 10px; line-height: 1.45; }

.intake-location-form,
.account-location-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 76px auto;
  gap: 7px;
  align-items: end;
}

.intake-location-form label,
.account-location-form label,
.nearby-help-form label { display: grid; gap: 4px; min-width: 0; }
.intake-location-form label.is-wide,
.account-location-form label.is-wide { grid-column: 1 / -1; }
.intake-location-form label span,
.account-location-form label span,
.nearby-help-form label span { color: var(--shell-muted); font-size: 9px; font-weight: 720; }
.intake-location-form input,
.account-location-form input,
.nearby-help-form input,
.nearby-help-form select,
.saved-location-rename input {
  min-width: 0;
  height: 38px;
  padding: 0 9px;
  border: 1px solid var(--shell-control-border);
  border-radius: 9px;
  outline: 0;
  background: var(--shell-inset);
  color: var(--shell-text);
  font: 650 11px var(--font);
}
.intake-location-form input:focus,
.account-location-form input:focus,
.nearby-help-form input:focus,
.nearby-help-form select:focus,
.saved-location-rename input:focus { border-color: var(--acid); box-shadow: 0 0 0 2px rgb(215 255 67 / .12); }
.intake-location-form button,
.account-location-form button,
.nearby-help-form button,
.intake-location-actions button,
.account-location-actions button {
  min-height: 38px;
  padding: 0 11px;
  border-radius: 9px;
  background: var(--acid);
  color: var(--ink);
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}
.intake-location-actions,
.account-location-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.intake-location-actions button:last-child,
.account-location-actions button.is-quiet { border: 1px solid var(--shell-control-border); background: transparent; color: var(--shell-subtle); }
.intake-location-card button:disabled,
.account-context-settings button:disabled { cursor: wait; opacity: .55; }
.intake-location-error { margin: 0; color: var(--shell-red-text); font-size: 10px; line-height: 1.4; }

.account-context-settings { display: grid; gap: 8px; }
.account-display-settings > button {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 42px;
  padding: 7px 9px;
  border: 1px solid var(--shell-control-border);
  background: transparent;
  color: var(--shell-text);
  text-align: left;
}
.account-display-settings > button[aria-pressed="true"] {
  border-color: rgb(215 255 67 / .55);
  background: rgb(215 255 67 / .08);
}
.account-display-settings > button > span { display: grid; gap: 1px; }
.account-display-settings > button strong { font-size: 11px; }
.account-display-settings > button small { color: var(--shell-muted); font-size: 9px; }
.account-location-form { grid-template-columns: minmax(0, 1fr) 54px; }
.account-location-form button { grid-column: 1 / -1; justify-self: stretch; }
.account-location-actions { display: grid; grid-template-columns: 1fr; }
.account-location-actions button { justify-self: stretch; }

.saved-location-list { display: grid; gap: 8px; }
.saved-location-card {
  display: grid;
  gap: 7px;
  padding: 10px;
  border: 1px solid var(--shell-border);
  border-radius: 11px;
  background: var(--shell-inset);
}
.saved-location-card.is-default { border-color: rgb(215 255 67 / .42); }
.saved-location-card-head { display: grid; grid-template-columns: 27px minmax(0, 1fr); align-items: center; gap: 7px; }
.saved-location-card-head > span { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 8px; background: rgb(215 255 67 / .1); color: var(--acid); }
.saved-location-card-head div { display: grid; gap: 1px; min-width: 0; }
.saved-location-card-head strong { overflow: hidden; color: var(--shell-text); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.saved-location-card-head small,
.saved-location-card > small { color: var(--shell-muted); font-size: 9px; line-height: 1.4; }
.saved-location-card > p { margin: 0; color: var(--shell-subtle); font-size: 10px; line-height: 1.4; }
.saved-location-rename { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; }
.saved-location-rename button,
.saved-location-actions button {
  min-height: 34px;
  padding: 0 9px;
  border-radius: 8px;
  background: var(--shell-raised);
  color: var(--shell-text);
  font-size: 9px;
  font-weight: 760;
}
.saved-location-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.saved-location-actions button.is-quiet { color: var(--shell-red-text); }
.saved-location-uses { display: grid; gap: 5px; padding-top: 2px; }
.saved-location-uses span { display: flex; justify-content: space-between; gap: 8px; color: var(--shell-subtle); font-size: 9px; }
.saved-location-uses small { color: var(--shell-muted); text-align: right; }

.nearby-help-card { gap: 10px; }
.nearby-help-form { display: grid; gap: 7px; }
.nearby-help-form button { justify-self: stretch; }
.nearby-help-state { display: grid; gap: 4px; padding: 9px; border-radius: 9px; background: var(--shell-inset); color: var(--shell-subtle); font-size: 10px; line-height: 1.4; }
.nearby-help-state.is-error { background: var(--shell-red-bg); color: var(--shell-red-text); }
.nearby-help-state a { color: var(--acid); font-weight: 760; }
.nearby-listings li { padding: 0 !important; border: 0 !important; }
.nearby-listings a { display: grid; gap: 3px; padding: 9px; border: 1px solid var(--shell-border); border-radius: 10px; background: var(--shell-inset); color: var(--shell-text); text-decoration: none; }
.nearby-listings a:hover { border-color: rgb(215 255 67 / .38); }
.nearby-listings a span { color: var(--acid); font-size: 9px; text-transform: capitalize; }

.next-move-card { border-left: 3px solid var(--shell-control-border); }
.next-move-card.needs-you { border-color: var(--acid); background: rgb(215 255 67 / .055); }
.participation-stale { color: var(--shell-amber-text); font-size: 9px; line-height: 1.4; }
.participant-list li {
  grid-template-columns: 31px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}
.participant-list li > span:last-child { display: grid; gap: 2px; min-width: 0; }
.participant-avatar { display: grid; place-items: center; width: 29px; height: 29px; border-radius: 50%; background: var(--shell-inset); color: var(--acid); font-size: 10px; font-weight: 800; }
.participants-card > button { display: inline-flex; align-items: center; gap: 5px; margin-top: 3px; background: var(--acid); color: #151814; }
.participation-form label,
.selected-work-request form label { display: grid; gap: 4px; }
.participation-form label > span,
.selected-work-request form label > span { color: var(--shell-muted); font-size: 9px; font-weight: 720; }
.participation-form input,
.participation-form select,
.participation-form textarea,
.selected-work-request textarea {
  width: 100%;
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid var(--shell-control-border);
  border-radius: 9px;
  outline: 0;
  background: var(--shell-inset);
  color: var(--shell-text);
  font: 650 11px var(--font);
  resize: vertical;
}
.participation-form select,
.participation-form input { min-height: 37px; }
.participation-form textarea:focus,
.participation-form input:focus,
.participation-form select:focus,
.selected-work-request textarea:focus { border-color: var(--acid); box-shadow: 0 0 0 2px rgb(215 255 67 / .12); }
.participation-form > button { justify-self: stretch; background: var(--acid); color: #151814; }
.selected-work-request { border-color: rgb(169 203 255 / .3); background: var(--shell-blue-bg); }
.selected-work-request.is-safety { border-color: rgb(243 161 153 / .42); background: var(--shell-red-bg); }
.selected-work-request > small { color: var(--shell-blue-text); font-size: 9px; }
.request-response-controls { display: grid; gap: 7px; padding-top: 3px; }
.request-response-controls form { display: grid; gap: 7px; }
.request-response-controls button.is-quiet { border: 1px solid var(--shell-control-border); background: transparent; color: var(--shell-subtle); }
.job-panel-inline-error { display: flex; align-items: center; justify-content: space-between; gap: 7px; padding: 8px 10px; border: 1px solid rgb(244 191 114 / .34); border-radius: 9px; background: var(--shell-amber-bg); color: var(--shell-amber-text); font-size: 9px; line-height: 1.35; }
.job-panel-inline-error button { flex: 0 0 auto; padding: 5px 7px; border-radius: 6px; background: rgb(255 255 255 / .1); color: inherit; font-size: 9px; cursor: pointer; }
.share-job-link { display: grid; gap: 9px; }
.share-job-link label { display: grid; gap: 5px; }
.share-job-link label span { color: var(--muted); font-size: 10px; font-weight: 750; }
.share-job-link input { width: 100%; min-width: 0; height: 42px; padding: 0 10px; border: 1px solid var(--line); border-radius: 9px; background: var(--paper-2); color: var(--shell-text, var(--ink)); font-size: 11px; }
.job-context-identity {
  padding: 9px 11px;
  border-bottom: 1px solid var(--line);
  background: rgb(45 51 44 / .7);
}

.job-context-identity p { display: grid; gap: 2px; margin: 0; }
.job-context-identity strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.job-context-identity span { color: var(--muted); font-size: 10px; }

.navigator-backdrop { display: none; }

.workspace-shell-header {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 44px;
  align-items: center;
  width: 100%;
}

.workspace-shell-title {
  grid-column: 2;
  display: grid;
  justify-items: center;
  min-width: 0;
  color: var(--shell-text);
  text-align: center;
}

.workspace-shell-title strong { font-size: 12px; line-height: 1.05; letter-spacing: -.02em; }
.workspace-shell-title small { margin-top: 2px; color: var(--muted); font: 700 6px "SFMono-Regular", Consolas, monospace; letter-spacing: .08em; text-transform: uppercase; }
.workspace-shell-toggle {
  position: relative;
  width: 40px;
  height: 40px;
  border-color: transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--muted);
}

.workspace-shell-toggle:hover {
  border-color: var(--shell-border);
  background: rgb(255 255 255 / .055);
  color: var(--shell-text);
}

.workspace-shell-toggle[aria-expanded="true"] {
  border-color: var(--shell-border);
  background: var(--shell-inset);
  color: var(--shell-text);
}
.workspace-shell-toggle .toggle-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.app-shell.is-product-workspace .workspace-starters button {
  border-color: rgb(255 255 255 / .085);
  background: rgb(255 255 255 / .018);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .025);
  color: var(--shell-muted);
  transition: border-color 140ms ease, background 140ms ease, transform 140ms ease;
}

.app-shell.is-product-workspace .workspace-starters button > span {
  background: rgb(215 255 67 / .075);
  color: var(--acid);
}

.app-shell.is-product-workspace .workspace-starters button:hover {
  border-color: rgb(215 255 67 / .28);
  background: rgb(255 255 255 / .045);
  color: var(--shell-text);
  transform: translateY(-1px);
}

.app-shell.is-product-workspace .workspace-starters button.is-active {
  border-color: rgb(215 255 67 / .72);
  background: rgb(215 255 67 / .07);
  box-shadow: inset 0 -2px 0 var(--acid);
  color: var(--shell-text);
}

.app-shell.is-product-workspace .workspace-starters button.is-active > span {
  background: var(--ink);
  color: var(--acid);
}

.crossthread-glyph { display: block; flex: none; overflow: visible; }
.workspace-empty-mark.is-alignment-glyph {
  --ct-glyph-ink: rgb(241 240 233 / .55);
  --ct-glyph-accent: rgb(215 255 67 / .68);
  width: clamp(152px, 18vw, 192px);
  height: clamp(152px, 18vw, 192px);
  overflow: visible;
  border-radius: 0;
  background: transparent;
  opacity: .07;
  filter: none;
  transform: scale(1.1);
  transform-origin: center;
}
.workspace-empty-mark.is-alignment-glyph .crossthread-operational-mark {
  width: 100%;
  height: 100%;
}
.workspace-empty-mark.is-alignment-glyph.is-entering {
  animation: shell-mark-presence 9200ms cubic-bezier(.45, 0, .35, 1) both;
  animation-delay: var(--alignment-motion-delay, 0ms);
}
.workspace-empty-mark.is-alignment-glyph.is-settled { opacity: .07; transform: scale(1.1); }
@keyframes shell-mark-presence {
  0% { opacity: 0; transform: scale(.96); }
  6%, 76% { opacity: .22; transform: scale(1); }
  85% { opacity: .24; transform: scale(1); }
  92%, 94% { opacity: .3; transform: scale(1); }
  97% { opacity: .21; transform: scale(1.06); }
  100% { opacity: .07; transform: scale(1.1); }
}

.crossthread-operational-mark {
  position: relative;
  display: block;
  overflow: visible;
  pointer-events: none;
}

.crossthread-operational-mark__assembly,
.crossthread-operational-mark__reticle,
.crossthread-operational-mark__crosshair,
.crossthread-operational-mark__left-bracket,
.crossthread-operational-mark__right-bracket,
.crossthread-operational-mark__fastener,
.crossthread-operational-mark__lock-ring,
.crossthread-operational-mark__lock-dot {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform-origin: 50% 50%;
}

.crossthread-operational-mark svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.crossthread-operational-mark__crosshair { opacity: .28; }
.crossthread-operational-mark__lock-ring { opacity: 0; transform: scale(1.75); }
.crossthread-operational-mark__lock-dot { opacity: .76; }

.crossthread-operational-mark.is-operational-motion .crossthread-operational-mark__assembly {
  animation: shell-assembly-align 9200ms cubic-bezier(.45, 0, .55, 1) var(--alignment-motion-delay, 0ms) both;
}
.crossthread-operational-mark.is-operational-motion .crossthread-operational-mark__reticle {
  animation: shell-reticle-acquire 9200ms cubic-bezier(.45, 0, .55, 1) var(--alignment-motion-delay, 0ms) both;
}
.crossthread-operational-mark.is-operational-motion .crossthread-operational-mark__fastener {
  transform: rotate(45deg);
}
.crossthread-operational-mark.is-operational-motion .crossthread-operational-mark__crosshair {
  animation: shell-crosshair-focus 9200ms linear var(--alignment-motion-delay, 0ms) both;
}
.crossthread-operational-mark.is-operational-motion .crossthread-operational-mark__left-bracket {
  animation: shell-left-bracket-arrive 9200ms cubic-bezier(.22, .78, .18, 1) var(--alignment-motion-delay, 0ms) both;
}
.crossthread-operational-mark.is-operational-motion .crossthread-operational-mark__right-bracket {
  animation: shell-right-bracket-arrive 9200ms cubic-bezier(.22, .78, .18, 1) var(--alignment-motion-delay, 0ms) both;
}
.crossthread-operational-mark.is-operational-motion .crossthread-operational-mark__lock-ring {
  animation: shell-lock-pulse 9200ms linear var(--alignment-motion-delay, 0ms) both;
}
.crossthread-operational-mark.is-operational-motion .crossthread-operational-mark__lock-dot {
  animation: shell-lock-dot 9200ms linear var(--alignment-motion-delay, 0ms) both;
}

@keyframes shell-assembly-align {
  0%, 85% { transform: rotate(0) scale(1); }
  92%, 96% { transform: rotate(-45deg) scale(1); }
  100% { transform: rotate(-45deg) scale(1.02); }
}

@keyframes shell-reticle-acquire {
  0%, 8% { transform: translateX(-16px) rotate(0); }
  18%, 29% { transform: translateX(9px) rotate(0); }
  39%, 50% { transform: translateX(-6px) rotate(0); }
  60%, 68% { transform: translateX(0) rotate(0); }
  76%, 100% { transform: translateX(0) rotate(45deg); }
}

@keyframes shell-crosshair-focus {
  0%, 5% { opacity: 0; }
  10%, 100% { opacity: .28; }
}

@keyframes shell-left-bracket-arrive {
  0%, 3% { opacity: 0; transform: translateX(-46px); }
  13%, 100% { opacity: 1; transform: translateX(0); }
}

@keyframes shell-right-bracket-arrive {
  0%, 3% { opacity: 0; transform: translateX(46px); }
  13%, 100% { opacity: 1; transform: translateX(0); }
}

@keyframes shell-lock-pulse {
  0%, 78% { opacity: 0; transform: scale(.4); }
  82% { opacity: .72; transform: scale(.55); }
  90%, 100% { opacity: 0; transform: scale(1.75); }
}

@keyframes shell-lock-dot {
  0%, 78% { opacity: 0; }
  82%, 96% { opacity: .9; }
  100% { opacity: .76; }
}

.job-navigator .intelligence-perception-panel,
.job-navigator .workspace-artifacts,
.job-navigator .intelligence-case-panel,
.job-navigator .intelligence-open-requests { margin: 0; }
.job-navigator .intelligence-grounded-image { width: 100% !important; }
.job-navigator .workspace-artifact { grid-template-columns: 27px minmax(0, 1fr); padding: 9px; }
.job-navigator .workspace-artifact span { font-size: 9px; }
.job-navigator .workspace-artifact strong { font-size: 12px; }
.job-navigator .workspace-artifact p { font-size: 10px; }
.job-navigator .workspace-artifact button { font-size: 10px; }
.job-navigator .workspace-artifact-actions { display: grid; grid-template-columns: 1fr; }
.job-navigator .workspace-artifact button { width: 100%; }
.job-navigator .workspace-quick-replies { display: grid; grid-template-columns: 1fr; }
.job-navigator .workspace-measurement-form { grid-template-columns: minmax(0, 1fr) auto; }
.job-navigator .workspace-measurement-form button { grid-column: 1 / -1; }
.job-navigator .intelligence-case-panel summary { padding: 10px; }
.job-navigator .intelligence-case-body { padding: 0 9px 9px; }
.job-navigator .workspace-case-sections h3 { font-size: 11px; }
.job-navigator .workspace-case-sections p,
.job-navigator .workspace-case-sections li { font-size: 10px; }
.job-navigator .workspace-case-sections li small { font-size: 9px; }
.job-navigator .intelligence-panel-head strong { font-size: 11px; }
.job-navigator .intelligence-panel-head small,
.job-navigator .intelligence-observation-list small,
.job-navigator .intelligence-observation-list em { font-size: 9px; }
.job-navigator .intelligence-observation-list strong { font-size: 11px; }

.workspace-model-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 0 3px;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.35;
}

.workspace-model-row button {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 7px;
  border-radius: 999px;
  background: var(--paper-2);
  color: var(--shell-subtle);
  font-size: 9px;
  font-weight: 760;
  cursor: pointer;
}

.workspace-pillar-context {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) 40px;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 4px 4px 4px 8px;
  border: 1px solid rgb(215 255 67 / .3);
  border-radius: 12px;
  background: rgb(215 255 67 / .095);
}

.workspace-pillar-context-icon {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: var(--ink);
  color: var(--acid);
}

.workspace-pillar-context > span:nth-child(2) {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.workspace-pillar-context small {
  color: var(--acid);
  font: 800 8px "SFMono-Regular", Consolas, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.workspace-pillar-context strong {
  overflow: hidden;
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workspace-pillar-context button {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
}

.workspace-pillar-context button:hover {
  background: rgb(255 255 255 / .06);
  color: var(--shell-text);
}

.app-shell.is-product-workspace :is(button, input, textarea, select):focus-visible,
body.is-product-workspace-active .bottom-sheet :is(button, input, textarea, select):focus-visible {
  outline-color: rgb(215 255 67 / .72);
}

.app-shell.is-product-workspace :where(
  .workspace-case-prompts button,
  .workspace-opening strong,
  .intelligence-pending-actions button,
  .intelligence-photo-button,
  .intelligence-tool-button,
  .garage-load-more,
  .garage-link-form input
) {
  color: var(--shell-text);
}

.app-shell.is-product-workspace :where(
  .workspace-case-prompts button,
  .intelligence-pending-actions button,
  .workspace-topbar > button,
  .workspace-model-row button
) {
  border-color: var(--shell-control-border);
}

.app-shell.is-product-workspace .intelligence-message-body {
  box-shadow: 0 7px 20px rgb(0 0 0 / .16);
}

.app-shell.is-product-workspace .intelligence-message.is-person .intelligence-message-body {
  border-color: #555e53;
  background: #353c34;
}

.app-shell.is-product-workspace .intelligence-block:not(.is-request):not(.is-warning):not(.is-case):not(.is-aftercare),
.app-shell.is-product-workspace .intelligence-block.is-tool {
  color: var(--shell-text);
}

.app-shell.is-product-workspace .intelligence-block.is-request,
.app-shell.is-product-workspace .intelligence-open-requests,
.app-shell.is-product-workspace .workspace-question-card {
  border-color: #426a9a;
  background: var(--shell-blue-bg);
  color: var(--shell-blue-text);
}

.app-shell.is-product-workspace .intelligence-block.is-warning,
.app-shell.is-product-workspace .intelligence-limitations {
  border-color: #7a5729;
  background: var(--shell-amber-bg);
  color: var(--shell-amber-text);
}

.app-shell.is-product-workspace .intelligence-block.is-case,
.app-shell.is-product-workspace .intelligence-case-body li {
  border-color: rgb(215 255 67 / .58);
  background: rgb(215 255 67 / .075);
  color: var(--shell-text);
}

.app-shell.is-product-workspace .intelligence-block.is-aftercare {
  background: #30233b;
  color: #d9b5ef;
}

.app-shell.is-product-workspace :is(
  .intelligence-block.is-request,
  .intelligence-block.is-warning,
  .intelligence-block.is-case,
  .intelligence-block.is-path-options,
  .intelligence-block.is-aftercare
) span {
  color: inherit;
  opacity: .82;
}

.app-shell.is-product-workspace .intelligence-block.is-path-options {
  border: 1px solid #4d6245;
  background: rgb(63 78 56 / .42);
  color: var(--shell-text);
}

.intelligence-block.is-path-options > div { display: grid; gap: 7px; min-width: 0; }
.intelligence-block.is-path-options > div > p { display: grid; gap: 2px; margin: 0; }
.intelligence-block.is-path-options .path-options-summary { color: inherit; font-size: 9px; line-height: 1.45; }
.intelligence-block.is-path-options ul { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.intelligence-block.is-path-options li { display: grid; gap: 2px; padding: 7px; border: 1px solid rgb(215 255 67 / .14); border-radius: 8px; background: rgb(0 0 0 / .12); }
.intelligence-block.is-path-options li strong { font-size: 9px; }
.intelligence-block.is-path-options li span,
.intelligence-block.is-path-options li small,
.intelligence-block.is-path-options .path-options-missing span { color: var(--shell-muted); font-size: 8px; line-height: 1.4; }
.intelligence-block.is-path-options .path-options-missing { display: grid; gap: 2px; padding: 7px; border-left: 2px solid var(--acid); }

.app-shell.is-product-workspace .workspace-question-head small { color: var(--shell-blue-text); opacity: .78; }
.app-shell.is-product-workspace .workspace-quick-replies button,
.app-shell.is-product-workspace .workspace-unknown-button,
.app-shell.is-product-workspace .workspace-measurement-form input {
  border-color: #5d7fa7;
  background: rgb(255 255 255 / .055);
  color: var(--shell-blue-text);
}

.app-shell.is-product-workspace .intelligence-composer textarea {
  color: var(--shell-text);
  caret-color: var(--acid);
}

.app-shell.is-product-workspace .intelligence-composer textarea::placeholder { color: #929b90; }
.app-shell.is-product-workspace .intelligence-consent input { accent-color: var(--acid); }
.app-shell.is-product-workspace .workspace-eyebrow,
.app-shell.is-product-workspace .workspace-artifact:not(.is-stop) > svg { color: var(--acid); }
.app-shell.is-product-workspace .workspace-empty-mark.is-alignment-glyph { filter: none; }
.app-shell.is-product-workspace .workspace-availability i { background: #62d397; }
.app-shell.is-product-workspace .workspace-availability.is-offline { color: var(--shell-amber-text); }

.app-shell.is-product-workspace .workspace-attention,
.app-shell.is-product-workspace .workspace-artifact.is-stop,
.app-shell.is-product-workspace .job-panel-card.is-stop,
.app-shell.is-product-workspace .intelligence-error {
  border-color: #8e4842;
  background: var(--shell-red-bg);
  color: var(--shell-red-text);
}

.app-shell.is-product-workspace .intelligence-direct-question {
  margin: 0;
  color: var(--shell-text);
  font-weight: 680;
}

.app-shell.is-product-workspace .intelligence-error-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.app-shell.is-product-workspace .workspace-composer .intelligence-error {
  flex-wrap: wrap;
}

.app-shell.is-product-workspace .workspace-composer .intelligence-error > span {
  flex: 1 1 220px;
}

.app-shell.is-product-workspace .workspace-artifact.is-stop :is(p, span),
.app-shell.is-product-workspace .job-panel-card.is-stop p { color: inherit; opacity: .84; }

.app-shell.is-product-workspace .workspace-attention.is-check {
  border-color: #7a6530;
  background: var(--shell-amber-bg);
  color: var(--shell-amber-text);
}

.is-product-workspace .workspace-composer .intelligence-composer-row {
  grid-template-columns: 42px minmax(0, 1fr) 36px 42px;
}

.workspace-attention {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 8px;
  width: calc(100% - 28px);
  margin: 0 14px 8px;
  padding: 9px 10px;
  border: 1px solid #d8a59e;
  border-radius: 11px;
  background: var(--red-bg);
  color: var(--red);
  cursor: pointer;
  text-align: left;
}

.workspace-attention.is-check {
  border-color: #c8b36d;
  background: #fff7d8;
  color: #64551c;
}

.workspace-attention > span:nth-child(2) { display: grid; gap: 2px; }
.workspace-attention strong { font-size: 11px; }
.workspace-attention small { color: inherit; font-size: 9px; line-height: 1.35; opacity: .82; }

body.is-product-workspace-active .bottom-sheet {
  border-color: #515950;
  background: var(--shell-raised);
  color: var(--shell-text);
}

body.is-product-workspace-active .bottom-sheet :where(.sheet-close, .order-item .part-sequence) {
  background: var(--shell-inset);
  color: var(--shell-text);
}

body.is-product-workspace-active .bottom-sheet :where(
  .spec-cell,
  .alternative-card,
  .order-item,
  .garage-select-item,
  .feedback-option,
  .sheet-action
) {
  background: var(--shell-panel);
  color: var(--shell-text);
}

body.is-product-workspace-active .bottom-sheet :where(
  .alternative-card,
  .garage-select-item,
  .feedback-option,
  .sheet-action
) { border-color: var(--shell-control-border); }

body.is-product-workspace-active .bottom-sheet .sheet-action.is-primary {
  border-color: var(--acid);
  background: var(--ink);
  color: #fff;
}

body.is-product-workspace-active .bottom-sheet .alternative-card.is-current,
body.is-product-workspace-active .bottom-sheet .rule-banner {
  border-color: #3e825b;
  background: var(--shell-green-bg);
  color: var(--shell-green-text);
}

body.is-product-workspace-active .bottom-sheet .alternative-card.is-risky,
body.is-product-workspace-active .bottom-sheet .rule-banner.is-block {
  border-color: #8e4842;
  background: var(--shell-red-bg);
  color: var(--shell-red-text);
}

body.is-product-workspace-active .bottom-sheet .rule-banner.is-warn {
  border-color: #7a5729;
  background: var(--shell-amber-bg);
  color: var(--shell-amber-text);
}

body.is-product-workspace-active .bottom-sheet .rule-banner span { color: inherit; opacity: .82; }

.pilot-access-form {
  display: grid;
  gap: 12px;
  padding: 0 16px 18px;
}

.pilot-access-form label { display: grid; gap: 6px; }
.pilot-access-form label span {
  color: var(--shell-muted);
  font-size: 9px;
  font-weight: 760;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.pilot-access-form input {
  width: 100%;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--shell-control-border);
  border-radius: 10px;
  outline: 0;
  background: var(--shell-inset);
  color: var(--shell-text);
  font: 700 13px/1.2 "SFMono-Regular", Consolas, monospace;
}

.pilot-access-form input:focus {
  border-color: var(--acid);
  box-shadow: 0 0 0 3px rgb(215 255 67 / .12);
}

.pilot-access-error {
  margin: 0 16px 12px;
  padding: 10px 11px;
  border: 1px solid #8e4842;
  border-radius: 10px;
  background: var(--shell-red-bg);
  color: var(--shell-red-text);
  font-size: 10px;
  line-height: 1.45;
}

.is-product-workspace.is-left-closed { grid-template-columns: 0 minmax(420px, 1fr); }
.is-product-workspace.is-left-closed.is-right-closed { grid-template-columns: 0 minmax(420px, 1fr); }
.is-product-workspace.is-right-closed .job-workplane { grid-template-columns: minmax(420px, 1fr) 0 0; }
.is-product-workspace.is-path-map-open:not(.is-right-closed) .job-workplane {
  grid-template-columns: var(--path-spine-width, 84px) 6px minmax(0, 1fr);
}
.is-product-workspace.is-left-closed .work-navigator,
.is-product-workspace.is-right-closed .job-navigator { visibility: hidden; }
.is-product-workspace.is-right-closed .job-panel-resizer { visibility: hidden; }

@media (min-width: 1181px) {
  .is-product-workspace.is-path-map-open .app-header {
    min-width: 0;
    padding-right: 4px;
    padding-left: 4px;
    overflow: hidden;
    border-bottom-color: transparent;
    background: transparent;
  }
  .is-product-workspace.is-path-map-open .workspace-shell-header {
    grid-template-columns: 34px 34px;
    justify-content: center;
    gap: 4px;
    width: 72px;
    max-width: 100%;
    margin-inline: auto;
  }
  .is-product-workspace.is-path-map-open .workspace-shell-toggle {
    width: 34px;
    height: 34px;
  }
  .is-product-workspace.is-path-map-open .workspace-shell-title { display: none; }
}

@media (max-width: 1180px) {
  .app-shell.is-product-workspace {
    --work-drawer-width: min(82vw, 320px);
    --job-drawer-width: min(92vw, 420px);
  }

  .app-shell.is-product-workspace,
  .is-product-workspace.is-left-closed,
  .is-product-workspace.is-right-closed,
  .is-product-workspace.is-left-closed.is-right-closed {
    grid-template: minmax(0, 1fr) / minmax(0, 1fr);
  }

  .app-shell.is-product-workspace .job-workplane,
  .is-product-workspace.is-right-closed .job-workplane {
    grid-area: 1 / 1;
    grid-template: minmax(0, 1fr) / minmax(0, 1fr);
    z-index: auto;
  }

  .job-panel-resizer { display: none; }

  .is-product-workspace .workspace-center { z-index: auto; grid-area: 1 / 1; }
  .app-shell.is-product-workspace .app-header { z-index: 4; }
  .is-product-workspace .product-navigator {
    position: absolute;
    top: 0;
    bottom: 0;
    width: var(--work-drawer-width);
    visibility: visible;
    box-shadow: 0 18px 55px rgb(0 0 0 / .35);
    transition: transform 180ms ease, visibility 180ms ease;
  }

  .is-product-workspace .work-navigator { left: 0; transform: translateX(-105%); }
  .is-product-workspace .job-navigator { right: 0; width: var(--job-drawer-width); border-left-color: var(--shell-border); background: var(--shell-panel); transform: translateX(105%); }
  .is-product-workspace:not(.is-left-closed) .work-navigator { transform: translateX(0); }
  .is-product-workspace:not(.is-right-closed) .job-navigator { transform: translateX(0); }
  .is-product-workspace.is-left-closed .work-navigator,
  .is-product-workspace.is-right-closed .job-navigator { visibility: hidden; }
  .workspace-shell-toggle {
    position: fixed;
    z-index: 5;
    top: 10px;
    transition: left 180ms ease, right 180ms ease, border-color 140ms ease, background 140ms ease;
    pointer-events: auto;
  }
  .workspace-shell-toggle.is-left-sidebar { left: 10px; }
  .workspace-shell-toggle.is-right-sidebar { right: 10px; }
  .is-product-workspace:not(.is-left-closed) .workspace-shell-toggle.is-left-sidebar { left: calc(var(--work-drawer-width) - 48px); }
  .is-product-workspace:not(.is-right-closed) .workspace-shell-toggle.is-right-sidebar { right: calc(var(--job-drawer-width) - 48px); }
  .is-product-workspace:not(.is-left-closed) .work-navigator .product-navigator-head { padding-right: 58px; }
  .is-product-workspace:not(.is-right-closed) .job-navigator .product-navigator-head { padding-left: 58px; }
  .is-product-workspace:not(.is-left-closed) .app-header,
  .is-product-workspace:not(.is-right-closed) .app-header {
    border-bottom-color: transparent;
    background: transparent;
    backdrop-filter: none;
    pointer-events: none;
  }
  /* Expanded Paths compresses workspace-center to the narrow Conversation
     rail while both shell toggles remain fixed to the viewport edges. Keep
     the header's hit-testing box viewport-wide so its pointer-enabled fixed
     buttons stay above the Paths toolbar instead of falling through to a
     lens beneath them. The header itself remains pointer-transparent. */
  .is-product-workspace.is-path-map-open:not(.is-right-closed) .app-header {
    width: 100vw;
    max-width: none;
    overflow: visible;
  }
  .is-product-workspace:not(.is-left-closed) .workspace-shell-title,
  .is-product-workspace:not(.is-right-closed) .workspace-shell-title { visibility: hidden; }
  .navigator-backdrop {
    position: absolute;
    z-index: 2;
    inset: 0;
    display: block;
    border: 0;
    background: rgb(0 0 0 / .42);
  }
  .navigator-backdrop[hidden] { display: none; }

  /* Paths is not a drawer. On tablet the divider remains the resizable seam
     between the real Conversation rail and the transparent decision field. */
  .app-shell.is-product-workspace.is-path-map-open:not(.is-right-closed) .job-workplane,
  .is-product-workspace.is-path-map-open:not(.is-right-closed) .job-workplane {
    grid-template: minmax(0, 1fr) / var(--path-spine-width, 84px) 6px minmax(0, 1fr);
    overflow: hidden;
  }
  .is-product-workspace.is-path-map-open:not(.is-right-closed) .workspace-center {
    position: relative;
    /* The phone Paths toolbar is a later sibling with its own stacking
       context. Keep the narrow Conversation rail one layer above it so the
       viewport-fixed shell toggles inside the rail remain the real hit
       targets instead of letting a lens underneath consume the tap. The
       rail itself stays only 56px wide on phones and its header stays
       pointer-transparent, so this does not turn Paths into an overlay. */
    z-index: 4;
    grid-area: 1 / 1;
    width: auto;
    pointer-events: auto;
  }
  .is-product-workspace.is-path-map-open:not(.is-right-closed) .job-navigator {
    position: relative;
    inset: auto;
    z-index: 3;
    grid-area: 1 / 3;
    width: auto;
    visibility: visible;
    border-left: 0;
    background: transparent;
    transform: none;
    box-shadow: none;
    transition: none;
  }
  .is-product-workspace.is-path-map-open:not(.is-right-closed) .job-panel-resizer:not([hidden]) {
    display: block;
    grid-area: 1 / 2;
    visibility: visible;
  }
  .is-product-workspace.is-path-map-open:not(.is-right-closed) .job-workplane:has(.job-panel-resizer[hidden]) {
    grid-template: minmax(0, 1fr) / var(--path-spine-width, 84px) minmax(0, 1fr);
  }
  .is-product-workspace.is-path-map-open:not(.is-right-closed) .job-workplane:has(.job-panel-resizer[hidden]) .job-navigator {
    grid-area: 1 / 2;
    border-left: 1px solid var(--shell-border);
  }
  .is-product-workspace.is-path-map-open:not(.is-right-closed) .workspace-shell-title { display: none; }
  .is-product-workspace.is-path-map-open:not(.is-right-closed) .workspace-shell-toggle.is-left-sidebar { left: 10px; }
  .is-product-workspace.is-path-map-open:not(.is-right-closed) .workspace-shell-toggle.is-right-sidebar { right: 10px; }
}

@media (max-width: 600px) {
  /* A phone keeps the same one-workplane composition but fixes the rail at a
     finger-sized 56px; the field pans instead of introducing a drawer. */
  .app-shell.is-product-workspace.is-path-map-open:not(.is-right-closed) .job-workplane,
  .is-product-workspace.is-path-map-open:not(.is-right-closed) .job-workplane,
  .is-product-workspace.is-path-map-open:not(.is-right-closed) .job-workplane:has(.job-panel-resizer[hidden]) {
    grid-template: minmax(0, 1fr) / 56px minmax(0, 1fr);
  }
  .is-product-workspace.is-path-map-open:not(.is-right-closed) .job-panel-resizer,
  .is-product-workspace.is-path-map-open:not(.is-right-closed) .job-panel-resizer:not([hidden]) { display: none; }
  .is-product-workspace.is-path-map-open:not(.is-right-closed) .job-navigator {
    grid-area: 1 / 2;
    border-left: 1px solid var(--shell-border);
  }
}

@media (max-width: 900px) {
  .app-shell.is-product-workspace {
    width: 100%;
    height: 100svh;
    min-height: 0;
  }
  .workspace-shell-title small { display: none; }
}

@media (max-width: 420px) {
  .app-header { padding-right: 10px; padding-left: 10px; }
  .workspace-shell-title strong { font-size: 11px; }
  .workspace-model-row { align-items: flex-start; flex-direction: column; }
  .intake-location-card { padding: 12px; }
  .intake-location-form { grid-template-columns: minmax(0, 1fr) 64px; }
  .intake-location-form button { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  html:not(.force-motion) .app-shell.is-product-workspace,
  html:not(.force-motion) .product-navigator,
  html:not(.force-motion) .job-workplane { transition-duration: .01ms; }
}

/* Job documents — the ledger made printable. The in-app view is a paper-true
   document card inside the document sheet; the print block below removes every
   piece of app chrome so print-to-PDF emits only the open document. */
.ct-job-documents-panel {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.ct-job-documents-toolbar {
  position: sticky;
  z-index: 1;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  background: var(--shell-panel);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
}
.ct-job-documents-toolbar-actions { display: inline-flex; gap: 6px; }
.ct-job-documents-toolbar button {
  padding: 5px 10px;
  border: 1px solid var(--shell-control-border);
  border-radius: 7px;
  background: transparent;
  color: var(--shell-text);
  font: inherit;
  font-size: 11px;
  letter-spacing: normal;
  text-transform: none;
  cursor: pointer;
}
.ct-job-documents-toolbar button:hover { border-color: var(--acid); }
.ct-job-documents-body { display: grid; gap: 10px; padding: 12px; }
.ct-job-documents-intro { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.ct-job-documents-list { display: grid; gap: 8px; }
.ct-job-documents-entry {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  color: var(--shell-text);
  font: inherit;
  text-align: left;
}
.ct-job-documents-entry strong { font-size: 13px; }
.ct-job-documents-entry small { color: var(--muted); font-size: 11px; line-height: 1.45; }
.ct-job-documents-entry span { justify-self: start; font-size: 11px; color: var(--acid); }
button.ct-job-documents-entry { cursor: pointer; }
button.ct-job-documents-entry:hover { border-color: var(--acid); }
.ct-job-documents-entry.is-unavailable { opacity: .75; }
.ct-job-documents-entry.is-unavailable .ct-job-documents-missing { color: var(--shell-amber-text); }
.ct-job-documents-loading,
.ct-job-documents-error { display: grid; gap: 6px; padding: 18px 12px; }
.ct-job-documents-loading h2,
.ct-job-documents-error h2 { margin: 0; font-size: 14px; }
.ct-job-documents-loading p,
.ct-job-documents-error p { margin: 0; color: var(--muted); font-size: 12px; }
.ct-job-documents-error ul { margin: 0; padding-left: 18px; color: var(--shell-amber-text); font-size: 12px; }
.ct-job-documents-error button {
  justify-self: start;
  margin-top: 4px;
  padding: 6px 12px;
  border: 1px solid var(--shell-control-border);
  border-radius: 7px;
  background: transparent;
  color: var(--shell-text);
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}

.ct-job-document {
  display: grid;
  gap: 18px;
  max-width: 720px;
  padding: 26px 26px 22px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fbfaf6;
  color: #1d201c;
  line-height: 1.5;
}
.ct-job-document h1 { margin: 0; font-size: 21px; letter-spacing: -.01em; }
.ct-job-document h2 {
  margin: 0 0 8px;
  padding-bottom: 4px;
  border-bottom: 1px solid #d8d6cc;
  font-size: 12px;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: #5c6157;
}
.ct-job-document-standing {
  display: grid;
  gap: 6px;
  padding: 10px 12px;
  border: 1px solid #d8d6cc;
  border-left: 4px solid #8b9186;
  border-radius: 6px;
  background: #f1efe7;
}
.ct-job-document-standing-label { font-weight: 600; font-size: 13px; }
.ct-job-document-standing small { color: #5c6157; font-size: 11px; }
.ct-job-document-standing code { font-size: 11px; }
.ct-job-document-standing.is-verified_24h,
.ct-job-document-standing.is-verified_30d { border-left-color: #3d7d55; background: #ecf3ec; }
.ct-job-document-standing.is-provisional { border-left-color: #b98a2f; background: #f6f1e2; }
.ct-job-document-standing.is-failed { border-left-color: #a43e33; background: #f6e9e6; }
.ct-job-document-checkpoints { margin: 0; padding-left: 18px; font-size: 12px; color: #3c4038; }
.ct-doc-section { display: grid; gap: 8px; }
.ct-doc-block {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 8px 10px;
  border: 1px solid #e3e1d7;
  border-radius: 6px;
  background: #fff;
}
.ct-doc-block p { margin: 0; font-size: 13px; }
.ct-doc-block.is-quote { border-left: 3px solid #8b9186; font-style: italic; }
.ct-doc-block.is-step { border-left: 3px solid #3d6d7d; }
.ct-doc-block.is-material { border-left: 3px solid #7d6a3d; }
.ct-doc-block.is-event { border-left: 3px solid #6d7d3d; }
.ct-doc-block.is-gap {
  padding: 8px 10px;
  border: 1px dashed #c9c6b9;
  border-radius: 6px;
  background: transparent;
  color: #6d7166;
  font-size: 12px;
  font-style: italic;
}
.ct-doc-block-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.ct-doc-provenance {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  padding: 1px 7px;
  border: 1px solid #d8d6cc;
  border-radius: 999px;
  background: #f1efe7;
  font-size: 10px;
  font-style: normal;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #5c6157;
}
.ct-doc-provenance code { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-transform: none; }
.ct-doc-recorded-at { font-size: 10px; font-style: normal; color: #8a8e82; }
.ct-doc-gaps {
  display: flex;
  gap: 8px;
  align-items: baseline;
  padding-top: 8px;
  border-top: 1px solid #d8d6cc;
  font-size: 11px;
  color: #6d7166;
}
.ct-doc-identity { margin: 0; font-size: 9px; color: #8a8e82; word-break: break-all; }

@media print {
  /* Only the open document prints: chrome that cannot contain it is removed,
     every ancestor is unhidden/unclipped, and the paper card becomes the page. */
  body.ct-printing-document * { visibility: hidden; }
  body.ct-printing-document .ct-job-document,
  body.ct-printing-document .ct-job-document * { visibility: visible; }
  body.ct-printing-document .app-header,
  body.ct-printing-document .work-navigator,
  body.ct-printing-document .workspace-center,
  body.ct-printing-document .job-panel-resizer,
  body.ct-printing-document .navigator-backdrop,
  body.ct-printing-document .sheet-backdrop,
  body.ct-printing-document .toast,
  body.ct-printing-document .ct-job-documents-toolbar,
  body.ct-printing-document .product-navigator-head { display: none !important; }
  body.ct-printing-document,
  body.ct-printing-document .app-stage,
  body.ct-printing-document .app-shell,
  body.ct-printing-document .job-workplane,
  body.ct-printing-document .job-navigator,
  body.ct-printing-document .product-navigator-inner,
  body.ct-printing-document .product-navigator-scroll,
  body.ct-printing-document .job-panel-content,
  body.ct-printing-document .bottom-sheet,
  body.ct-printing-document #sheet-content,
  body.ct-printing-document .ct-job-documents-panel,
  body.ct-printing-document .ct-job-documents-body {
    position: static !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
  }
  body.ct-printing-document .bottom-sheet {
    inset: auto !important;
    max-width: none !important;
    transform: none !important;
  }
  body.ct-printing-document .ct-job-document {
    max-width: none;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: #fff;
    color: #000;
  }
  body.ct-printing-document .ct-doc-section { break-inside: avoid; }
}

/* ---- Follow-through reconciliation: person-reported document origin,
   person-recorded work (Record lens), and the release-equivalent sheet.
   Maintenance care vocabulary only. ---- */

/* Person-reported origin: the person's own words, distinct from authored flow
   text or instrument-verified ledger. Marked visibly so a person-reported step
   is never mistaken for a verified one. */
.ct-doc-reported {
  display: inline-flex;
  align-items: center;
  padding: 1px 7px;
  border: 1px solid #d8c9a6;
  border-radius: 999px;
  background: #f6efdd;
  font-size: 10px;
  font-style: normal;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #7a6a3d;
}

/* Record lens: person-asserted work entries. */
.record-work-form { display: grid; gap: 6px; }
.record-work-form textarea,
.record-work-form input {
  width: 100%;
  padding: 8px 9px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--paper-2);
  color: inherit;
  font: inherit;
  font-size: 12px;
}

.record-work-form textarea { min-height: 56px; resize: vertical; }
.record-work-form button { justify-self: start; }
.record-work-error { margin: 0; color: var(--shell-red-text, #a03a30); font-size: 10px; line-height: 1.4; }
.recorded-work-list li span { font-size: 11px; line-height: 1.4; }

/* Optional person-reported spend inputs (release-equivalent sheet). */
.aftercare-spend-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 6px; }
.aftercare-spend-fields label { display: grid; gap: 3px; }
.aftercare-spend-fields span { color: var(--muted); font-size: 9px; }
.aftercare-spend-fields input {
  min-height: 34px;
  padding: 0 9px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper-2);
  color: inherit;
  font: inherit;
  font-size: 12px;
}

/* Release-equivalent sheet: disclosure, per-Case check-in preference, spend. */
.return-service-form { display: grid; gap: 12px; }
.aftercare-disclosure {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--paper-2);
}

.aftercare-disclosure p { margin: 0; font-size: 11px; line-height: 1.5; }
.aftercare-optout { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 9px; align-items: start; cursor: pointer; }
.aftercare-optout input { margin-top: 2px; accent-color: var(--acid); }
.aftercare-optout span { display: grid; gap: 2px; }
.aftercare-optout strong { font-size: 12px; }
.aftercare-optout small { color: var(--muted); font-size: 10px; line-height: 1.4; }
.aftercare-spend-details summary { font-size: 11px; font-weight: 720; cursor: pointer; }
.aftercare-spend-details summary small { color: var(--muted); font-size: 9px; letter-spacing: .05em; text-transform: uppercase; }
.aftercare-spend-details .aftercare-spend-fields { margin-top: 8px; }
