.nv-snap-root {

  --nv-snap-accent: #0b6e4f;

  --nv-snap-fg: #12231c;

  --nv-snap-bg: #f7faf8;

  --nv-snap-muted: #5b6b63;

  --nv-snap-danger: #9b1c1c;

  --nv-snap-border: #d5e0da;

  --nv-snap-radius: 12px;

  --nv-snap-z: 2147000000;

  --nv-snap-modal-max: 840px;

  position: fixed;

  inset: 0;

  pointer-events: none;

  z-index: var(--nv-snap-z);

  font-family: "Segoe UI", "Helvetica Neue", sans-serif;

  color: var(--nv-snap-fg);

}



.nv-snap-root[data-color-mode="dark"] {

  --nv-snap-fg: #eef5f1;

  --nv-snap-bg: #15201b;

  --nv-snap-muted: #a7b5ad;

  --nv-snap-border: #2c3c34;

}



.nv-snap-launcher {

  pointer-events: auto;

  position: fixed;

  width: 56px;

  height: 56px;

  border-radius: 999px;

  border: 0;

  background: var(--nv-snap-accent);

  color: #fff;

  font-weight: 700;

  font-size: 14px;

  letter-spacing: 0.02em;

  box-shadow: 0 8px 24px rgba(11, 40, 28, 0.28);

  cursor: pointer;

}



.nv-snap-launcher:focus-visible {

  outline: 3px solid #fff;

  outline-offset: 3px;

  box-shadow: 0 0 0 6px var(--nv-snap-accent);

}



.nv-snap-root[data-placement="bottom-right"] .nv-snap-launcher {

  right: 20px;

  bottom: 20px;

}

.nv-snap-root[data-placement="bottom-left"] .nv-snap-launcher {

  left: 20px;

  bottom: 20px;

}

.nv-snap-root[data-placement="top-right"] .nv-snap-launcher {

  right: 20px;

  top: 20px;

}

.nv-snap-root[data-placement="top-left"] .nv-snap-launcher {

  left: 20px;

  top: 20px;

}



.nv-snap-panel-backdrop {

  pointer-events: auto;

  position: fixed;

  inset: 0;

  background: rgba(10, 22, 17, 0.42);

}



/* PR-8.7C.1 — responsive centered modal (desktop), full-bleed mobile */

.nv-snap-panel {

  pointer-events: auto;

  position: fixed;

  top: 50%;

  left: 50%;

  right: auto;

  bottom: auto;

  transform: translate(-50%, -50%);

  width: min(var(--nv-snap-modal-max), calc(100vw - 32px));

  max-height: min(90vh, 900px);

  overflow: auto;

  background: var(--nv-snap-bg);

  color: var(--nv-snap-fg);

  border: 1px solid var(--nv-snap-border);

  border-radius: var(--nv-snap-radius);

  box-shadow: 0 18px 48px rgba(8, 28, 20, 0.28);

  padding: 20px 22px;

  display: flex;

  flex-direction: column;

  gap: 14px;

}



.nv-snap-panel-header {

  display: flex;

  align-items: flex-start;

  justify-content: space-between;

  gap: 12px;

}



.nv-snap-field-row {

  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 12px;

}



.nv-snap-btn-block {

  width: 100%;

}



.nv-snap-muted {

  color: var(--nv-snap-muted);

  margin: 0;

  font-size: 0.95rem;

}



.nv-snap-entry {

  display: flex;

  flex-direction: column;

  gap: 10px;

}



.nv-snap-request-list {

  display: flex;

  flex-direction: column;

  gap: 8px;

}



.nv-snap-request-item {

  text-align: left;

  border: 1px solid var(--nv-snap-border);

  background: transparent;

  color: inherit;

  border-radius: 8px;

  padding: 10px 12px;

  cursor: pointer;

}



.nv-snap-request-item:focus-visible {

  outline: 3px solid var(--nv-snap-accent);

  outline-offset: 2px;

}



.nv-snap-request-detail strong {

  display: block;

  margin-bottom: 4px;

}



.nv-snap-comments {

  margin-top: 8px;

  display: flex;

  flex-direction: column;

  gap: 6px;

}



.nv-snap-root[data-density="compact"] .nv-snap-panel {

  gap: 8px;

  padding: 12px;

}



.nv-snap-title {

  margin: 0;

  font-size: 1.25rem;

  font-weight: 700;

}



.nv-snap-claim {

  display: flex;

  flex-direction: column;

  gap: 8px;

  margin-top: 4px;

  padding-top: 12px;

  border-top: 1px solid var(--nv-snap-border);

}



.nv-snap-consent,

.nv-snap-hint,

.nv-snap-status {

  margin: 0;

  color: var(--nv-snap-muted);

  font-size: 0.9rem;

  line-height: 1.4;

}



.nv-snap-status[data-tone="error"] {

  color: var(--nv-snap-danger);

}

.nv-snap-status[data-tone="success"] {

  color: var(--nv-snap-accent);

}



.nv-snap-field {

  display: flex;

  flex-direction: column;

  gap: 4px;

}



.nv-snap-field label {

  font-size: 0.85rem;

  font-weight: 600;

}



.nv-snap-field input,

.nv-snap-field textarea,

.nv-snap-field select {

  border: 1px solid var(--nv-snap-border);

  border-radius: 8px;

  padding: 8px 10px;

  font: inherit;

  background: #fff;

  color: inherit;

}



.nv-snap-root[data-color-mode="dark"] .nv-snap-field input,

.nv-snap-root[data-color-mode="dark"] .nv-snap-field textarea,

.nv-snap-root[data-color-mode="dark"] .nv-snap-field select {

  background: #0f1713;

  color: var(--nv-snap-fg);

}



.nv-snap-field input:focus-visible,

.nv-snap-field textarea:focus-visible,

.nv-snap-field select:focus-visible,

.nv-snap-btn:focus-visible {

  outline: 2px solid var(--nv-snap-accent);

  outline-offset: 2px;

}



.nv-snap-actions {

  display: flex;

  flex-wrap: wrap;

  gap: 8px;

}



.nv-snap-actions-sticky {

  position: sticky;

  bottom: 0;

  padding-top: 8px;

  background: linear-gradient(transparent, var(--nv-snap-bg) 28%);

}



.nv-snap-btn {

  border: 1px solid var(--nv-snap-border);

  background: #fff;

  color: var(--nv-snap-fg);

  border-radius: 8px;

  padding: 8px 12px;

  font: inherit;

  cursor: pointer;

}



.nv-snap-btn[aria-pressed="true"] {

  border-color: var(--nv-snap-accent);

  box-shadow: inset 0 0 0 1px var(--nv-snap-accent);

}



.nv-snap-btn-primary {

  background: var(--nv-snap-accent);

  border-color: var(--nv-snap-accent);

  color: #fff;

}



.nv-snap-btn:disabled {

  opacity: 0.55;

  cursor: not-allowed;

}



/* Thumbnail preview on the request form */

.nv-snap-canvas-wrap {

  border: 1px solid var(--nv-snap-border);

  border-radius: 8px;

  overflow: auto;

  max-height: 160px;

  background: #0b1210;

  position: relative;

}



.nv-snap-canvas-wrap canvas {

  display: block;

  max-width: 100%;

  height: auto;

}



.nv-snap-evidence-bar {

  display: flex;

  flex-wrap: wrap;

  gap: 8px;

  align-items: center;

  margin-top: 8px;

}



/* Expanded evidence editor */

.nv-snap-editor {

  pointer-events: auto;

  position: fixed;

  inset: 0;

  z-index: calc(var(--nv-snap-z) + 2);

  display: flex;

  flex-direction: column;

  background: #0c1411;

  color: #eef5f1;

}



.nv-snap-editor[hidden] {

  display: none !important;

}



.nv-snap-editor-header,

.nv-snap-editor-footer {

  display: flex;

  flex-wrap: wrap;

  gap: 8px;

  align-items: center;

  justify-content: space-between;

  padding: 12px 16px;

  background: #15201b;

  border-bottom: 1px solid #2c3c34;

}



.nv-snap-editor-footer {

  border-bottom: 0;

  border-top: 1px solid #2c3c34;

}



.nv-snap-editor-title {

  margin: 0;

  font-size: 1.05rem;

  font-weight: 700;

}



.nv-snap-editor-toolbar {

  display: flex;

  flex-wrap: wrap;

  gap: 8px;

  align-items: center;

}



.nv-snap-editor-stage {

  flex: 1;

  min-height: 0;

  overflow: hidden;

  position: relative;

  cursor: grab;

  touch-action: none;

  background:

    radial-gradient(circle at 20% 20%, rgba(11, 110, 79, 0.18), transparent 45%),

    #0b1210;

}



.nv-snap-editor-stage[data-panning="1"] {

  cursor: grabbing;

}



.nv-snap-editor-viewport {

  position: absolute;

  inset: 0;

  display: flex;

  align-items: center;

  justify-content: center;

  overflow: hidden;

}



.nv-snap-editor-viewport canvas {

  display: block;

  max-width: none;

  transform-origin: center center;

  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);

}



.nv-snap-sr-only {

  position: absolute;

  width: 1px;

  height: 1px;

  padding: 0;

  margin: -1px;

  overflow: hidden;

  clip: rect(0, 0, 0, 0);

  white-space: nowrap;

  border: 0;

}



.nv-snap-build-marker {

  display: none;

}



@media (prefers-reduced-motion: reduce) {

  .nv-snap-launcher,

  .nv-snap-panel,

  .nv-snap-btn {

    transition: none !important;

    animation: none !important;

  }

}



/* Shared attachment picker + My Requests enrichment (PR-8.7E) */

.nv-snap-dropzone {
  border: 1px dashed #7a9488;
  border-radius: 10px;
  padding: 12px;
  background: rgba(11, 110, 79, 0.04);
}

.nv-snap-dropzone[data-drag="1"] {
  border-color: #0b6e4f;
  background: rgba(11, 110, 79, 0.12);
}

.nv-snap-attachment-list {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.nv-snap-attachment-item {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding: 8px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.04);
}

.nv-snap-attachment-thumb {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: 6px;
}

.nv-snap-attachment-meta {
  flex: 1;
  min-width: 120px;
  font-size: 0.9rem;
}

.nv-snap-request-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  width: 100%;
  text-align: left;
  padding: 10px 12px;
}

.nv-snap-request-item-title {
  font-weight: 600;
}

.nv-snap-request-item-meta {
  font-size: 0.85rem;
  opacity: 0.8;
}

.nv-snap-search {
  width: 100%;
  margin-bottom: 10px;
}

.nv-snap-live-badge {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #0b6e4f;
  margin-left: 8px;
}

.nv-snap-live-badge[hidden] {
  display: none !important;
}

.nv-snap-comments,
.nv-snap-attachments,
.nv-snap-activity {
  margin-top: 12px;
}

.nv-snap-comment-item,
.nv-snap-activity-item {
  margin: 8px 0;
  padding: 8px 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.nv-snap-comment-meta,
.nv-snap-activity-meta {
  font-size: 0.8rem;
  opacity: 0.75;
}

.nv-snap-evidence-host {
  margin-top: 8px;
}

.nv-snap-evidence-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0;
}

/* PR-8.7E.2 — grouped chrome for compact + expanded toolbars */
.nv-snap-screen-workspace {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  min-width: 0;
}

.nv-snap-screen-chrome {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
}

.nv-snap-tool-group {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.nv-snap-tool-group + .nv-snap-tool-group {
  padding-left: 10px;
  border-left: 1px solid var(--nv-snap-border, rgba(0, 0, 0, 0.12));
}

.nv-snap-screen-embedded .nv-snap-screen-preview,
.nv-snap-screen-embedded .nv-snap-canvas-wrap {
  max-height: min(58vh, 560px);
  min-height: 240px;
}

.nv-snap-btn-danger {
  color: #b02a37;
}

.nv-snap-btn-expand {
  font-weight: 600;
}

@media (max-width: 720px) {

  .nv-snap-field-row {

    grid-template-columns: 1fr;

  }



  .nv-snap-panel {

    top: 0;

    left: 0;

    right: 0;

    bottom: 0;

    transform: none;

    width: 100vw;

    max-width: none;

    max-height: none;

    height: 100dvh;

    height: 100vh;

    border-radius: 0;

    border: 0;

    padding: 16px;

  }

}


