/* New client: the five-step modal, the Project brief modal and the landing
   cards that open them. ORA's own language: lavender aurora behind a glass
   panel, round gradient icon marks before titles, no eyebrow labels. Sizes
   are larger than the cockpit's dialogs on purpose (40px titles, 56px
   inputs, 52px buttons, targets of at least 44px). */

body.nc-open { overflow: hidden; }

.nc-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(27, 18, 44, .42);
  backdrop-filter: blur(9px);
  -webkit-backdrop-filter: blur(9px);
}

.nc-modal {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: 60px minmax(0, 1fr) 88px;
  width: min(1200px, calc(100vw - 48px));
  height: min(860px, calc(100vh - 48px));
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .66);
  border-radius: 24px;
  background:
    radial-gradient(circle at 8% -6%, rgba(167, 139, 250, .26), transparent 40%),
    radial-gradient(circle at 104% 108%, rgba(129, 140, 248, .2), transparent 46%),
    linear-gradient(135deg, rgba(255, 255, 255, .95), rgba(246, 242, 255, .9));
  box-shadow: 0 32px 100px -38px rgba(27, 16, 66, .72), inset 0 1px 0 rgba(255, 255, 255, .9);
  backdrop-filter: blur(28px) saturate(150%);
  -webkit-backdrop-filter: blur(28px) saturate(150%);
  color: var(--ink);
  font-family: var(--sans);
}
.nc-modal *, .nc-modal *::before, .nc-modal *::after { box-sizing: border-box; }
/* The step a new step replaces, fading out over it (turn() in new-client.js). */
.nc-modal { position: relative; }
.nc-modal > .nc-ghost { position: absolute; z-index: 3; margin: 0; pointer-events: none; }

/* ---- top bar ------------------------------------------------------------ */
.nc-top {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 14px 0 26px;
  border-bottom: 1px solid rgba(132, 112, 184, .16);
}
.nc-brand { color: #4b20ba; font: 800 16px/1 var(--serif); letter-spacing: -.01em; }
.nc-top-title { color: var(--ink-2); font-size: 15px; font-weight: 700; }
.nc-top-client { overflow: hidden; color: var(--mute-2); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.nc-close {
  display: grid;
  width: 44px;
  height: 44px;
  margin-left: auto;
  place-items: center;
  border: 1px solid rgba(91, 65, 145, .16);
  border-radius: 50%;
  background: rgba(255, 255, 255, .6);
  color: #4d4162;
  font-size: 18px;
  cursor: pointer;
}
.nc-close:hover { background: #fff; }

/* ---- frame: rail + content ---------------------------------------------- */
.nc-frame { display: grid; grid-template-columns: 280px minmax(0, 1fr); min-height: 0; }
.nc-rail {
  overflow: auto;
  padding: 28px 18px;
  border-right: 1px solid rgba(132, 112, 184, .14);
  background: rgba(255, 255, 255, .34);
}
.nc-rail ol { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.nc-rail-item {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 52px;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 14px;
  background: transparent;
  color: var(--mute);
  font: inherit;
  text-align: left;
}
button.nc-rail-item { cursor: pointer; }
button.nc-rail-item:hover { background: rgba(255, 255, 255, .7); }
.nc-rail-step.is-current .nc-rail-item { border-color: rgba(126, 87, 235, .22); background: rgba(255, 255, 255, .8); color: var(--ink); box-shadow: 0 12px 30px -24px rgba(77, 52, 139, .6); }
.nc-rail-number {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 1.5px solid var(--lav-200);
  border-radius: 50%;
  background: rgba(255, 255, 255, .8);
  color: var(--mute);
  font-size: 14px;
  font-weight: 800;
}
.nc-rail-step.is-current .nc-rail-number { border-color: transparent; background: var(--brand-grad); color: #fff; }
.nc-rail-step.is-done .nc-rail-number { border-color: transparent; background: var(--lav-100); color: var(--lav-600); }
.nc-rail-copy { display: grid; min-width: 0; gap: 2px; }
.nc-rail-copy strong { color: inherit; font-size: 16px; font-weight: 750; }
.nc-rail-step.is-done .nc-rail-copy strong { color: var(--ink-2); }
.nc-rail-copy small { overflow: hidden; color: var(--mute-2); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.nc-rail-phone { display: none; }

.nc-content { overflow: auto; padding: 40px 48px 48px; }
.nc-column { max-width: 760px; }

/* ---- headings ----------------------------------------------------------- */
.nc-heading { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 18px; align-items: start; }
.nc-mark.lp-destination-mark { width: 56px; height: 56px; border-radius: 999px; background: linear-gradient(145deg, rgba(255, 255, 255, .92), rgba(221, 214, 254, .9)); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7), 0 12px 26px -18px rgba(93, 40, 239, .8); }
.nc-mark i { color: var(--lav-600); font-size: 24px; }
.nc-heading h2 { margin: 2px 0 0; color: #151120; font: 750 40px/1.05 var(--serif); letter-spacing: -.035em; }
.nc-heading h2:focus { outline: none; }
.nc-lede { max-width: 640px; margin: 12px 0 0; color: #5f6680; font-size: 17px; line-height: 1.55; }

/* ---- fields ------------------------------------------------------------- */
.nc-fields { display: grid; gap: 22px; margin-top: 34px; }
.nc-field { display: grid; gap: 8px; }
.nc-field > span { color: var(--ink-2); font-size: 15px; font-weight: 700; }
.nc-field input {
  width: 100%;
  height: 56px;
  padding: 0 16px;
  border: 1px solid rgba(132, 112, 184, .32);
  border-radius: 12px;
  background: rgba(255, 255, 255, .86);
  color: var(--ink);
  font: 500 18px var(--sans);
}
.nc-field input:focus-visible { border-color: var(--lav-500); outline: 3px solid rgba(124, 58, 237, .2); outline-offset: 1px; }
.nc-field input[readonly] { border-style: dashed; background: rgba(255, 255, 255, .45); color: var(--ink-3); }
.nc-field small { color: var(--mute-2); font-size: 14px; }
.nc-created { display: flex; align-items: center; gap: 8px; margin: 0; color: #237a57; font-size: 15px; font-weight: 700; }
.nc-created i { font-size: 20px; }

.nc-error, .nc-notice, .nc-hint, .nc-empty { font-size: 15px; line-height: 1.55; }
.nc-error { margin: 18px 0 0; padding: 12px 14px; border: 1px solid rgba(166, 83, 87, .26); border-radius: 12px; background: rgba(255, 246, 246, .86); color: #8b343a; }
.nc-notice { margin: 18px 0 0; padding: 12px 14px; border: 1px solid rgba(124, 58, 237, .18); border-radius: 12px; background: rgba(247, 245, 255, .9); color: var(--ink-3); }
.nc-hint { margin: 16px 0 0; color: var(--mute-2); font-size: 14px; }
.nc-empty { margin: 28px 0 0; color: var(--mute); }
.nc-link { display: inline; min-height: 0; padding: 0; border: 0; background: none; color: var(--lav-600); font: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.nc-link:focus-visible { outline: 2px solid var(--lav-400); outline-offset: 2px; border-radius: 3px; }
.nc-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---- footer and buttons ------------------------------------------------- */
.nc-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 0 32px;
  border-top: 1px solid rgba(132, 112, 184, .16);
  background: rgba(255, 255, 255, .6);
}
.nc-status { display: -webkit-box; min-width: 0; margin: 0; overflow: hidden; color: var(--mute); font-size: 15px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.nc-buttons { display: flex; flex: none; gap: 12px; }
.nc-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  height: 52px;
  padding: 0 24px;
  border: 1px solid rgba(99, 45, 235, .28);
  border-radius: 12px;
  background: rgba(255, 255, 255, .72);
  color: #5d28ef;
  font: 750 16px var(--sans);
  white-space: nowrap;
  cursor: pointer;
  transition: transform .16s ease, box-shadow .2s ease, background .2s ease;
}
.nc-button:hover:not(:disabled) { transform: translateY(-1px); background: #fff; box-shadow: 0 12px 28px -18px rgba(76, 39, 170, .6); }
.nc-button:focus-visible { outline: 3px solid rgba(93, 40, 239, .32); outline-offset: 2px; }
.nc-button:disabled { cursor: wait; opacity: .7; }
.nc-button.is-primary { min-width: 180px; border-color: transparent; background: var(--brand-grad); color: #fff; box-shadow: 0 10px 26px -15px rgba(79, 43, 196, .85); }
.nc-button.is-primary:hover:not(:disabled) { background: var(--brand-grad); box-shadow: 0 14px 30px -14px rgba(79, 43, 196, .95); }
.nc-button.is-small { min-width: 0; height: 44px; padding: 0 16px; font-size: 15px; }
.nc-button.is-danger { border-color: rgba(163, 64, 58, .32); color: #a3403a; }

/* Delete client: a small confirm, not the full stepper. */
.nc-modal.is-compact { grid-template-rows: 60px auto auto; width: min(620px, calc(100vw - 32px)); height: auto; max-height: calc(100vh - 48px); }
.nc-modal.is-compact .nc-content { padding: 30px 32px 8px; overflow: auto; }
.nc-modal.is-compact .nc-column { max-width: none; }
.nc-modal.is-compact .nc-foot { padding: 16px 32px 22px; }
.nc-delete-list { margin: 20px 0 0; padding-left: 20px; color: var(--ink-2); font-size: 15px; line-height: 1.6; }
.nc-delete-running { display: flex; gap: 10px; align-items: flex-start; margin: 18px 0 22px; padding: 12px 14px; border: 1px solid rgba(176, 124, 34, .3); border-radius: 12px; background: rgba(255, 248, 232, .9); color: #7a5412; font-size: 15px; line-height: 1.45; }
.nc-delete-running i { margin-top: 2px; font-size: 17px; }
.nc-button.is-danger:not([disabled]) { background: #a3403a; border-color: transparent; color: #fff; }

.nc-loading { display: flex; align-items: center; justify-content: center; gap: 12px; color: var(--mute); font-size: 16px; grid-row: 2 / 4; }
.nc-loading i { color: var(--lav-600); font-size: 22px; animation: nc-spin 1s linear infinite; }

/* ---- project brief composer (the Ask ORA composer, larger) -------------- */
.nc-composer {
  display: grid;
  gap: 10px;
  margin-top: 30px;
  padding: 14px;
  border: 1px solid rgba(132, 112, 184, .3);
  border-radius: 16px;
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 18px 42px -36px rgba(77, 52, 139, .55);
}
.nc-composer:focus-within { border-color: var(--lav-400); box-shadow: 0 0 0 3px rgba(124, 58, 237, .14); }
.nc-compose-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.nc-compose-row textarea {
  width: 100%;
  min-height: 180px;
  padding: 6px 4px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font: 500 18px/1.5 var(--sans);
  resize: vertical;
}
.nc-compose-row textarea:focus { outline: none; }
.nc-clip { display: grid; width: 48px; height: 48px; place-items: center; border: 1px solid #dbd0e4; border-radius: 12px; background: #fff; color: #6520ab; font-size: 20px; cursor: pointer; }
.nc-clip:hover, .nc-clip:focus-visible { border-color: #8b43dd; background: #f8f2ff; outline: none; }
.nc-counter { margin: 0; color: var(--mute-2); font-size: 13px; text-align: right; }
.nc-counter:empty { display: none; }
.nc-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.nc-chip {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 36px;
  max-width: 100%;
  overflow: hidden;
  padding: 0 4px 0 12px;
  border: 1px solid #e3d8ee;
  border-radius: 999px;
  background: #faf8fc;
  color: #3f3350;
  font-size: 14px;
  font-weight: 650;
}
.nc-chip > i { color: var(--lav-600); }
.nc-chip-name { overflow: hidden; max-width: 280px; text-overflow: ellipsis; white-space: nowrap; }
.nc-chip-progress { color: #7a6690; font-size: 13px; }
.nc-chip-progress:empty { display: none; }
.nc-chip.is-uploading { padding-right: 12px; }
.nc-chip.is-failed { border-color: #ebc9c6; background: #fff6f5; color: #9d3b35; }
.nc-chip.is-failed .nc-chip-progress { color: #9d3b35; }
.nc-chip-bar { position: absolute; right: 0; bottom: 0; left: 0; height: 3px; background: #efe6fb; }
.nc-chip-bar i { display: block; height: 100%; background: #7823dc; transition: width .2s ease; }
.nc-chip button { position: relative; display: grid; width: 30px; height: 30px; flex: none; place-items: center; border: 0; border-radius: 50%; background: transparent; color: inherit; cursor: pointer; }
.nc-chip button::after { content: ""; position: absolute; inset: -7px; }
.nc-chip button:hover, .nc-chip button:focus-visible { background: #efe6fb; outline: none; }

/* ---- evidence ----------------------------------------------------------- */
.nc-attest { display: flex; align-items: flex-start; gap: 12px; margin-top: 26px; padding: 14px 16px; border: 1px solid rgba(142, 104, 35, .26); border-radius: 12px; background: rgba(255, 250, 239, .85); color: #5f4a1c; font-size: 15px; line-height: 1.5; cursor: pointer; }
.nc-attest input { width: 22px; height: 22px; flex: none; margin: 1px 0 0; accent-color: var(--lav-600); }
.nc-banner { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; margin-top: 22px; padding: 14px 16px; border: 1px solid rgba(166, 107, 23, .3); border-radius: 12px; background: #fff8ec; color: #5f4a1c; font-size: 15px; line-height: 1.5; }
.nc-banner > i { color: #a66b17; font-size: 22px; }
.nc-banner strong { display: block; color: #4d3a12; }
.nc-banner-actions { margin-top: 6px; }
.nc-drop {
  display: grid;
  justify-items: center;
  gap: 14px;
  margin-top: 26px;
  padding: 46px 24px;
  border: 2px dashed rgba(124, 58, 237, .34);
  border-radius: 18px;
  background: rgba(255, 255, 255, .56);
  text-align: center;
  transition: background .2s ease, border-color .2s ease;
}
.nc-drop > i { color: var(--lav-600); font-size: 38px; }
.nc-drop-copy { display: grid; gap: 6px; }
.nc-drop-copy strong { color: var(--ink); font-size: 19px; }
.nc-drop-copy small { color: var(--mute-2); font-size: 14px; }
.nc-drop-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.nc-drop.is-dragging { border-color: var(--lav-500); background: rgba(237, 233, 254, .8); }
.nc-drop.is-locked { border-color: rgba(132, 112, 184, .3); background: rgba(255, 255, 255, .3); }
.nc-drop.is-locked > i, .nc-drop.is-locked strong { color: var(--mute-2); }
.nc-drop.is-slim { grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; justify-items: start; gap: 14px; padding: 10px 12px 10px 18px; text-align: left; }
.nc-drop.is-slim > i { font-size: 24px; }
.nc-drop.is-slim strong { font-size: 16px; }

.nc-uploads { margin-top: 22px; }
.nc-summary { display: grid; gap: 8px; }
.nc-summary-line { margin: 0; color: var(--ink); font-size: 16px; font-weight: 750; }
.nc-summary-line:empty { display: none; }
.nc-progress { height: 6px; overflow: hidden; border-radius: 999px; background: #ece5f8; }
.nc-progress i { display: block; height: 100%; width: 0; border-radius: inherit; background: var(--brand-grad); transition: width .3s ease; }
.nc-summary-problems { margin: 0; color: var(--mute); font-size: 14px; }
.nc-summary-problems:empty { display: none; }
.nc-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 6px; }
.nc-filter { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px; border: 1px solid rgba(132, 112, 184, .28); border-radius: 999px; background: rgba(255, 255, 255, .8); color: var(--ink-3); font: 700 14px var(--sans); white-space: nowrap; cursor: pointer; }
.nc-filter b { color: var(--mute-2); font-weight: 800; }
.nc-filter[aria-pressed="true"] { border-color: transparent; background: #5d28ef; color: #fff; }
.nc-filter[aria-pressed="true"] b { color: rgba(255, 255, 255, .8); }
.nc-filter:focus-visible { outline: 3px solid rgba(93, 40, 239, .32); outline-offset: 2px; }

.nc-files { margin: 0; padding: 0; border-top: 1px solid rgba(132, 112, 184, .14); list-style: none; }
.nc-file {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) 76px minmax(150px, 230px) 88px;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: 6px 4px;
  border-bottom: 1px solid rgba(132, 112, 184, .12);
  content-visibility: auto;
  contain-intrinsic-size: auto 56px;
}
.nc-row-icon { color: var(--mute-3); font-size: 20px; }
.nc-file.is-uploaded .nc-row-icon { color: #237a57; }
.nc-file.is-failed .nc-row-icon, .nc-file.is-unfinished .nc-row-icon { color: #a3403a; }
.nc-file.is-unsupported .nc-row-icon { color: #9d6b66; }
.nc-file.is-hashing .nc-row-icon, .nc-file.is-preparing .nc-row-icon, .nc-file.is-uploading .nc-row-icon, .nc-file.is-finishing .nc-row-icon { color: var(--lav-600); animation: nc-spin 1s linear infinite; }
.nc-row-name { display: grid; min-width: 0; }
.nc-row-name strong { overflow: hidden; color: var(--ink); font-size: 15px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.nc-row-name small { overflow: hidden; color: var(--mute-2); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.nc-row-size { color: var(--mute); font-size: 14px; text-align: right; white-space: nowrap; }
.nc-row-status { display: grid; gap: 5px; min-width: 0; color: var(--ink-3); font-size: 14px; }
.nc-file.is-failed .nc-row-status, .nc-file.is-unfinished .nc-row-status { color: #8b343a; }
.nc-file.is-skipped .nc-row-status, .nc-file.is-unsupported .nc-row-status { color: var(--mute); }
.nc-row-bar { height: 3px; overflow: hidden; border-radius: 999px; background: #efe6fb; }
.nc-row-bar i { display: block; height: 100%; background: #7823dc; transition: width .2s ease; }
.nc-row-actions { justify-self: end; }
.nc-row-action { min-height: 44px; padding: 0 12px; border: 0; border-radius: 10px; background: transparent; color: var(--lav-600); font: 750 14px var(--sans); cursor: pointer; }
.nc-row-action:hover, .nc-row-action:focus-visible { background: rgba(124, 58, 237, .08); outline: none; }
.nc-bulk { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 14px; }
.nc-remove-all { margin-left: auto; min-height: 44px; }
.nc-confirm { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border-radius: 12px; background: #fff6f5; }
.nc-confirm p { flex: 1 1 260px; margin: 0; color: #6d2f33; font-size: 15px; }

/* ---- focus & runs -------------------------------------------------------- */
.nc-section { margin-top: 32px; }
.nc-section h3 { margin: 0 0 12px; color: var(--ink-2); font-size: 17px; font-weight: 800; }
.nc-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.nc-section-head span { color: var(--mute-2); font-size: 15px; }
/* Capabilities: "All N" / "Only some" cards, then the house to choose from. */
.nc-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.nc-option { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; padding: 18px 20px; border: 1px solid rgba(132, 112, 184, .3); border-radius: 16px; background: rgba(255, 255, 255, .7); cursor: pointer; transition: border-color .16s ease, background .16s ease; }
.nc-option:hover { background: rgba(255, 255, 255, .92); }
.nc-option.is-selected { padding: 17px 19px; border: 2px solid rgba(124, 58, 237, .55); background: rgba(255, 255, 255, .92); box-shadow: 0 14px 30px -26px rgba(77, 52, 139, .7); }
.nc-option.is-disabled { cursor: not-allowed; opacity: .62; }
.nc-option.is-disabled:hover { background: rgba(255, 255, 255, .7); }
.nc-option input { width: 20px; height: 20px; margin: 3px 0 0; accent-color: var(--lav-600); cursor: inherit; }
.nc-option:focus-within { outline: 3px solid rgba(93, 40, 239, .28); outline-offset: 2px; }
.nc-option strong { display: block; color: var(--ink); font-size: 17px; }
.nc-option small { display: block; margin-top: 4px; color: var(--mute); font-size: 15px; line-height: 1.5; }
.nc-section.is-inactive .nc-options, .nc-section.is-inactive .nc-house { opacity: .55; }
.nc-section-note { margin: -4px 0 10px; }

.nc-house { display: grid; gap: 10px; margin-top: 16px; padding: 14px; border: 1px solid rgba(132, 112, 184, .22); border-radius: 18px; background: rgba(255, 255, 255, .5); }
.nc-house-row { display: grid; gap: 10px; }
.nc-house-label { margin: 2px 0 0 4px; color: var(--ink-3); font-size: 14px; font-weight: 800; }
.nc-house-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.nc-house-group { display: grid; align-content: start; gap: 10px; min-width: 0; padding: 12px 12px 14px; border: 1px solid rgba(132, 112, 184, .18); border-radius: 14px; background: rgba(255, 255, 255, .82); }
.nc-house-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; }
.nc-house-head strong { min-width: 0; color: var(--ink); font-size: 15px; font-weight: 800; line-height: 1.3; }
.nc-group-box { display: inline-flex; flex: none; align-items: center; gap: 6px; min-width: 64px; min-height: 44px; padding: 0 10px; border: 1px solid rgba(132, 112, 184, .28); border-radius: 12px; background: #fff; color: var(--mute); font: 800 13px var(--sans); cursor: pointer; }
.nc-group-box i { font-size: 20px; }
.nc-group-box.is-all, .nc-group-box.is-some { border-color: rgba(124, 58, 237, .4); color: var(--lav-600); }
.nc-group-box:hover, .nc-group-box:focus-visible { background: #f8f2ff; outline: none; box-shadow: 0 0 0 3px rgba(124, 58, 237, .18); }
.nc-caps { display: flex; flex-wrap: wrap; gap: 8px; }
.nc-house-columns .nc-caps { display: grid; }
.nc-house-columns .nc-cap { min-height: 44px; padding: 8px 12px 8px 10px; border-radius: 14px; }
.nc-cap { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; max-width: 100%; padding: 0 14px 0 11px; border: 1px solid rgba(132, 112, 184, .3); border-radius: 999px; background: #fff; color: var(--ink-3); font: 650 14px/1.25 var(--sans); text-align: left; cursor: pointer; }
.nc-cap i { flex: none; color: var(--lav-500); font-size: 16px; }
.nc-cap span { min-width: 0; }
.nc-cap:hover { border-color: rgba(124, 58, 237, .5); }
.nc-cap:focus-visible { outline: 3px solid rgba(93, 40, 239, .3); outline-offset: 2px; }
.nc-cap.is-on { border-color: transparent; background: #5d28ef; color: #fff; }
.nc-cap.is-on i { color: #fff; }
.nc-cap.is-assessed { border-style: dashed; background: transparent; color: var(--mute-2); cursor: default; }
.nc-cap.is-assessed i { color: #237a57; }
.nc-runs { display: grid; gap: 10px; }
.nc-run { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 14px; align-items: start; min-height: 56px; padding: 14px 16px; border: 1px solid rgba(132, 112, 184, .24); border-radius: 14px; background: rgba(255, 255, 255, .82); cursor: pointer; }
.nc-run input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--lav-600); cursor: pointer; }
.nc-run-copy { display: grid; gap: 3px; }
.nc-run-copy strong { color: var(--ink); font-size: 16px; }
.nc-run-head { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.nc-run-state { display: inline-flex; align-items: center; min-height: 24px; padding: 0 9px; border-radius: 999px; background: #f1eff4; color: #5e5569; font-size: 13px; font-weight: 800; white-space: nowrap; }
.nc-run-state.is-current, .nc-run-state.is-partial { background: #e4f3ec; color: #1f6d4c; }
.nc-run-state.is-running { background: #efe6fb; color: #5b22a6; }
.nc-run-state.is-older { background: #fdf3e2; color: #8a5a12; }
.nc-run-copy small { color: var(--mute); font-size: 14px; line-height: 1.5; }
.nc-run-copy em { color: var(--lav-600); font-size: 13px; font-style: normal; font-weight: 750; }
.nc-run.is-locked { cursor: default; background: rgba(247, 245, 255, .9); }
.nc-run.is-locked input { cursor: default; opacity: .72; }
.nc-run.is-disabled { cursor: not-allowed; opacity: .55; }
/* An assessment's run is a big action: its scene (ora-glyphs.js) fills the row's right half behind the text, at about
   1.5x the row's height, cropped by the row's corners and faded in from the left. Ticked rows are lit; unticked ones
   show a pale still frame; hovering or focusing plays one loop; a running run loops, with a shimmer along the bottom. */
.nc-run.has-scene { position: relative; isolation: isolate; overflow: hidden; align-items: center; min-height: 104px; padding: 20px calc(22px + 30%) 20px 22px; }
.nc-run.has-scene input { margin: 0; }
.nc-run.has-scene .nc-run-copy { gap: 5px; }
.nc-run.has-scene .nc-run-copy strong { font-size: 18px; }
.nc-run-group .nc-run.has-scene { min-height: 96px; padding: 18px calc(20px + 30%) 18px 20px; }
.nc-run-group .nc-run.is-head.has-scene { min-height: 96px; margin: -2px -4px 0; padding: 14px calc(18px + 30%) 14px 4px; border-radius: 12px; }
.nc-run-scene { position: absolute; z-index: -1; inset: 0 0 0 auto; width: 50%; overflow: hidden; pointer-events: none; -webkit-mask-image: linear-gradient(90deg, transparent, rgba(0, 0, 0, .45) 32%, #000 66%); mask-image: linear-gradient(90deg, transparent, rgba(0, 0, 0, .45) 32%, #000 66%); transition: filter .3s, opacity .3s; }
.nc-run-scene::before,
.nc-run-scene::after { content: ""; position: absolute; inset: 0; transition: opacity .3s; }
.nc-run-scene::before { background: radial-gradient(48% 85% at 76% 50%, rgba(167, 139, 250, .32), transparent 72%), radial-gradient(30% 60% at 94% 86%, rgba(236, 72, 153, .14), transparent 72%), radial-gradient(28% 55% at 62% 14%, rgba(45, 212, 191, .12), transparent 72%); }
.nc-run-scene::after { background-image: radial-gradient(rgba(124, 58, 237, .2) 1px, transparent 1.3px); background-size: 10px 10px; }
/* About 1.5x the row's own height, fixed so a row whose text wraps does not grow its scene. */
.nc-run-scene .og { position: absolute; top: 50%; right: 1%; width: 152px; height: 152px; transform: translateY(-50%); }
.nc-run-group .nc-run-scene .og { width: 144px; height: 144px; }
.nc-start-rows .nc-run-scene .og { width: 132px; height: 132px; }
/* The Brief's tall card keeps its check in view. */
.nc-run-scene .og.og-briefs { width: 118px; height: 118px; }
.has-scene:not(.is-on) .nc-run-scene { filter: grayscale(.9); opacity: .42; }
.has-scene:not(.is-on) .nc-run-scene::before { opacity: 0; }
/* Running rows cannot be ticked, but their scene and progress stay at full strength. */
.nc-run.is-disabled.is-running { opacity: 1; cursor: default; }
.nc-run.is-disabled.is-running > input { opacity: .55; }
.nc-run.is-running::after { content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 2px; background: linear-gradient(90deg, transparent, rgba(167, 139, 250, .95), rgba(232, 121, 249, .9), transparent) no-repeat; background-size: 36% 100%; animation: nc-run-shimmer 1.9s linear infinite; }
@keyframes nc-run-shimmer { from { background-position: -60% 0; } to { background-position: 160% 0; } }
/* Start: the same scenes on the assessment rows, and the dots that flow through them once (flowRuns). */
.nc-start-rows li.has-scene { position: relative; isolation: isolate; overflow: hidden; grid-template-columns: 40px minmax(0, 1fr); min-height: 88px; padding-right: calc(18px + 30%); }
.nc-start-rows li.has-scene .nc-start-time { grid-column: 2; max-width: none; text-align: left; }
.nc-flow { position: fixed; z-index: 2147483000; inset: 0; pointer-events: none; }
.nc-flow i { position: absolute; top: 0; left: 0; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: #8b5cf6; box-shadow: 0 0 12px 3px rgba(167, 139, 250, .6); opacity: 0; }
.nc-flow i:nth-child(3n+1) { background: #c24f7e; box-shadow: 0 0 12px 3px rgba(236, 72, 153, .45); }
.nc-flow i:nth-child(3n+2) { background: #1d8d63; box-shadow: 0 0 12px 3px rgba(45, 212, 191, .45); }
.nc-run-group { display: grid; gap: 8px; padding: 14px 16px 16px; border: 1px solid rgba(132, 112, 184, .24); border-radius: 14px; background: rgba(255, 255, 255, .5); }
.nc-run-group > strong { color: var(--ink); font-size: 16px; }
.nc-run-group.is-disabled > strong { opacity: .55; }
.nc-run-group .nc-run { min-height: 52px; padding: 11px 14px; }
/* A new client's Baseline: its row heads the group, Interview Briefs sit in a box under it. */
.nc-run-group .nc-run.is-head { min-height: 0; padding: 0 0 4px; border: 0; background: transparent; }
.nc-run-box { border: 1px solid rgba(132, 112, 184, .24); border-radius: 14px; background: rgba(255, 255, 255, .84); }
.nc-run-box.is-on { border: 2px solid rgba(124, 58, 237, .5); box-shadow: 0 18px 40px -30px rgba(77, 52, 139, .75); }
.nc-run-box > .nc-run { border: 0; background: transparent; }
.nc-run-box > .nc-run.has-scene { border-radius: 12px; }
.nc-run-box.is-disabled { opacity: .55; }
.nc-run-box.is-disabled .nc-run, .nc-run-box.is-disabled .nc-run input { cursor: not-allowed; }
.nc-who { display: grid; gap: 12px; padding: 0 16px 18px 52px; }
.nc-who h4 { margin: 0; color: var(--ink-2); font-size: 16px; font-weight: 800; }
.nc-who .nc-drop, .nc-who .nc-error, .nc-who .nc-hint { margin: 0; }
.nc-list-drop .nc-button { gap: 8px; text-decoration: none; }
.nc-list-drop .nc-button i { font-size: 18px; }
.nc-listfile { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0; color: var(--ink-3); font-size: 15px; }
.nc-listfile strong { display: inline-flex; align-items: center; gap: 8px; min-width: 0; color: var(--ink); overflow-wrap: anywhere; }
.nc-listfile strong i { flex: none; color: #237a57; font-size: 19px; }
.nc-tablewrap { overflow-x: auto; border: 1px solid rgba(132, 112, 184, .24); border-radius: 12px; background: #fff; }
.nc-table { width: 100%; min-width: 440px; border-collapse: collapse; font-size: 14.5px; }
.nc-table th { padding: 9px 12px; border-bottom: 1px solid rgba(132, 112, 184, .24); background: var(--lav-50); color: var(--ink-2); font-weight: 750; text-align: left; }
.nc-table td { padding: 9px 12px; border-bottom: 1px solid rgba(132, 112, 184, .14); color: var(--ink-3); }
.nc-table tr:last-child td { border-bottom: 0; }
.nc-table tr.is-more td { color: var(--mute-2); }

/* ---- start --------------------------------------------------------------- */
.nc-start-rows { display: grid; gap: 10px; margin: 30px 0 0; padding: 0; list-style: none; }
.nc-start-rows li { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 16px 18px; border: 1px solid rgba(132, 112, 184, .22); border-radius: 14px; background: rgba(255, 255, 255, .84); }
.nc-start-order { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: var(--brand-grad); color: #fff; font-size: 15px; font-weight: 800; }
.nc-start-name { display: grid; gap: 3px; min-width: 0; }
.nc-start-name strong { color: var(--ink); font-size: 17px; }
.nc-start-name small { color: var(--mute); font-size: 14px; }
.nc-start-time { max-width: 280px; color: var(--ink-3); font-size: 14px; text-align: right; }
/* The one step that waits for the user: checking the people ORA proposed. */
.nc-start-rows li.is-you { border: 1px dashed rgba(166, 107, 23, .55); background: #fff8ec; }
.nc-start-rows li.is-you .nc-start-name strong { display: flex; align-items: center; gap: 8px; color: #5f4a1c; font-size: 16px; }
.nc-start-rows li.is-you .nc-start-name i { flex: none; color: #a66b17; font-size: 19px; }

/* ---- an offer after an action: "Put the brief's questions…" ------------- */
.nc-offer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 18px; margin-top: 18px; padding: 16px 18px; border: 1px solid rgba(124, 58, 237, .24); border-radius: 14px; background: rgba(247, 245, 255, .92); }
.nc-offer-copy { display: grid; flex: 1 1 320px; gap: 4px; }
.nc-offer-copy strong { color: var(--ink); font-size: 16px; }
.nc-offer-copy small { color: var(--mute); font-size: 14px; line-height: 1.5; }

/* Evidence › Documents: one column, no rail, centred. */
.nc-frame.is-single { grid-template-columns: minmax(0, 1fr); }
.nc-frame.is-single .nc-column { margin: 0 auto; }

/* ---- project brief modal: tabs, and "Against the brief" ------------------ */
.nc-tabs [role="tablist"] { display: grid; gap: 6px; }
.nc-tabs [role="tab"] { display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: center; gap: 10px; min-height: 52px; padding: 10px 14px; border: 1px solid transparent; border-radius: 14px; background: transparent; color: var(--mute); font: 750 16px var(--sans); text-align: left; cursor: pointer; }
.nc-tabs [role="tab"] i { color: var(--lav-600); font-size: 19px; }
.nc-tabs [role="tab"][aria-selected="true"] { border-color: rgba(126, 87, 235, .22); background: rgba(255, 255, 255, .86); color: var(--ink); box-shadow: 0 12px 30px -24px rgba(77, 52, 139, .6); }
.nc-tabs [role="tab"]:focus-visible { outline: 3px solid rgba(93, 40, 239, .32); outline-offset: 2px; }
.nc-asks, .nc-requests { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.nc-ask { display: grid; gap: 8px; padding: 16px 18px; border: 1px solid rgba(132, 112, 184, .22); border-radius: 14px; background: rgba(255, 255, 255, .86); }
.nc-ask-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.nc-ask p { margin: 0; }
.nc-ask-text { color: var(--ink); font-size: 16px; font-weight: 650; line-height: 1.5; }
.nc-ask-question { color: var(--mute); font-size: 14px; line-height: 1.5; }
.nc-ask-question span { color: var(--ink-3); font-weight: 750; }
.nc-ask-answer { color: var(--ink-2); font-size: 15px; line-height: 1.55; }
.nc-ask-differs { color: #8b343a; font-size: 14px; line-height: 1.5; }
.nc-ask-gap { color: var(--ink-3); font-size: 14px; line-height: 1.5; }
.nc-ask-cards { display: flex; flex-wrap: wrap; gap: 8px; }
.nc-ask-reply { display: grid; gap: 6px; padding: 10px 0 2px 14px; border-left: 3px solid rgba(132, 112, 184, .28); }
.nc-ask-reply-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--ink); font-size: 14px; }
.nc-card-link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px; border: 1px solid rgba(99, 45, 235, .24); border-radius: 12px; background: #fff; color: #5d28ef; font: 700 14px var(--sans); cursor: pointer; }
.nc-card-link:hover, .nc-card-link:focus-visible { background: #f8f2ff; outline: none; }
.nc-author { color: var(--lav-600); font-size: 13px; font-weight: 750; }
.nc-status-tag { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: 999px; background: #f1eff4; color: #5e5569; font-size: 13px; font-weight: 800; white-space: nowrap; }
.nc-status-tag.is-evidence-found, .nc-status-tag.is-received { background: #e4f3ec; color: #1f6d4c; }
.nc-status-tag.is-partly { background: #fdf3e2; color: #8a5a12; }
.nc-status-tag.is-not-in-evidence, .nc-status-tag.is-not-received { background: #fbeceb; color: #9d3b35; }
.nc-status-tag.is-differs { background: #9d3b35; color: #fff; }
.nc-status-tag.is-direction { background: #efe6fb; color: #5b22a6; }
.nc-requests li { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid rgba(132, 112, 184, .18); border-radius: 12px; background: rgba(255, 255, 255, .8); font-size: 15px; }

/* ---- landing cards ------------------------------------------------------- */
.lp-engagement-card.lp-new-client { border-style: dashed; border-color: rgba(112, 72, 236, .38); background: rgba(255, 255, 255, .42); }
.lp-engagement-card.lp-new-client .lp-client-mark { background: var(--brand-grad); color: #fff; font-size: 24px; }
.lp-engagement-card.lp-new-client .lp-card-state { color: var(--lav-600); font-size: 20px; }
.lp-engagement-card .lp-client-name small.lp-setup-state { margin-top: 7px; color: #8a5a12; font-weight: 750; }

@keyframes nc-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .nc-loading i, .nc-file .nc-row-icon { animation: none !important; }
  .nc-run.is-running::after { animation: none; background-size: 100% 100%; opacity: .5; }
  .nc-flow, .nc-ghost { display: none; }
  .nc-button, .nc-drop, .nc-progress i, .nc-row-bar i, .nc-chip-bar i, .nc-option { transition: none; }
}

/* ---- phone ---------------------------------------------------------------- */
@media (max-width: 720px) {
  .nc-overlay { padding: 0; }
  .nc-modal { width: 100vw; height: 100dvh; border: 0; border-radius: 0; grid-template-rows: 56px minmax(0, 1fr) auto; }
  .nc-top { padding: 0 8px 0 16px; }
  .nc-top-client { display: none; }
  .nc-frame { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
  .nc-rail { display: none; }
  .nc-rail-phone { display: block; margin: 0; padding: 12px 16px; border-bottom: 1px solid rgba(132, 112, 184, .14); color: var(--ink-3); font-size: 14px; font-weight: 750; }
  .nc-frame.is-tabs .nc-rail { display: block; padding: 8px 16px; border-right: 0; border-bottom: 1px solid rgba(132, 112, 184, .14); }
  .nc-frame.is-tabs [role="tablist"] { display: flex; gap: 6px; overflow-x: auto; }
  .nc-frame.is-tabs [role="tab"] { flex: none; min-height: 44px; }
  .nc-content { padding: 22px 16px 28px; }
  .nc-heading { grid-template-columns: 44px minmax(0, 1fr); gap: 12px; }
  .nc-mark.lp-destination-mark { width: 44px; height: 44px; }
  .nc-mark i { font-size: 20px; }
  .nc-heading h2 { font-size: 30px; }
  .nc-lede { font-size: 16px; }
  .nc-foot { flex-direction: column; align-items: stretch; gap: 8px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); }
  .nc-status { white-space: normal; font-size: 14px; }
  .nc-status:empty { display: none; }
  .nc-buttons { width: 100%; }
  .nc-buttons .nc-button { flex: 1 1 0; min-width: 0; height: auto; min-height: 52px; padding: 8px 12px; line-height: 1.25; white-space: normal; }
  .nc-buttons .nc-button.is-primary { flex-grow: 2; }
  .nc-drop { padding: 30px 16px; }
  .nc-drop.is-slim { grid-template-columns: auto minmax(0, 1fr); }
  .nc-drop.is-slim .nc-drop-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .nc-filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .nc-file { grid-template-columns: 24px minmax(0, 1fr) auto; grid-template-areas: "icon name action" "icon status status"; row-gap: 4px; padding: 8px 0; }
  .nc-row-icon { grid-area: icon; align-self: start; margin-top: 2px; }
  .nc-row-name { grid-area: name; }
  .nc-row-size { display: none; }
  .nc-row-status { grid-area: status; }
  .nc-row-actions { grid-area: action; }
  .nc-remove-all { margin-left: 0; }
  .nc-start-rows li { grid-template-columns: 36px minmax(0, 1fr); }
  /* Narrow: the scene shrinks to 40% of the row and stays behind the text's right edge. */
  .nc-run.has-scene, .nc-run-group .nc-run.has-scene { min-height: 84px; padding-right: calc(12px + 14%); }
  .nc-run.has-scene .nc-run-copy strong { font-size: 17px; }
  .nc-run-group .nc-run.is-head.has-scene { padding-right: calc(10px + 14%); }
  .nc-start-rows li.has-scene { padding-right: calc(12px + 14%); }
  .nc-run-scene { width: 40%; -webkit-mask-image: linear-gradient(90deg, transparent 25%, rgba(0, 0, 0, .5) 58%, #000 86%); mask-image: linear-gradient(90deg, transparent 25%, rgba(0, 0, 0, .5) 58%, #000 86%); }
  .nc-run-scene .og, .nc-run-group .nc-run-scene .og, .nc-start-rows .nc-run-scene .og { width: 116px; height: 116px; right: -9%; }
  .nc-start-time { grid-column: 2; max-width: none; text-align: left; }
  .nc-chip-name { max-width: 180px; }
  .nc-options { grid-template-columns: minmax(0, 1fr); }
  .nc-who { padding: 2px 14px 16px; }
  .nc-house { padding: 10px; }
  .nc-house-columns { grid-template-columns: minmax(0, 1fr); }
  .nc-offer .nc-button { width: 100%; }
  .nc-compose-row textarea { min-height: 150px; font-size: 17px; }
}
