/* 小红书笔记工作台 V2 v1.6.0 */
#note-v2-view {
  --nv2-bg: var(--ui-canvas, #080808);
  --nv2-panel: var(--ui-surface, #111315);
  --nv2-panel-solid: var(--ui-surface-raised, #181a1d);
  --nv2-line: var(--ui-line, rgba(245, 245, 245, 0.1));
  --nv2-accent: var(--primary, #f2f2f2);
  --nv2-accent-hover: var(--primary-hover, #bdbdbd);
  --nv2-text: var(--text-primary, #fff);
  --nv2-muted: var(--text-secondary, #aaa);
  --nv2-added: #68cdb8;
  --nv2-removed: #e88998;
  --nv2-danger: var(--nv2-removed);
  --nv2-radius: var(--radius, 1rem);
  min-height: calc(100vh - 72px);
  padding: 28px 32px 64px;
  color: var(--nv2-text);
  background:
    radial-gradient(circle at 18% 0%, color-mix(in srgb, var(--nv2-accent) 10%, transparent), transparent 35%),
    linear-gradient(180deg, color-mix(in srgb, var(--nv2-bg) 92%, transparent), var(--nv2-bg));
}

body.note-v2-open {
  overflow-y: auto;
}

.nv2-shell {
  width: min(1500px, 100%);
  margin: 0 auto;
}

.nv2-icon {
  width: 1.15em;
  height: 1.15em;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}

.nv2-header {
  position: relative;
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr) auto;
  grid-template-areas:
    "back mark title actions"
    "rail rail rail rail";
  align-items: center;
  gap: 16px;
  padding: 24px 26px 18px;
  border: 1px solid var(--nv2-line);
  border-left: 4px solid var(--nv2-accent);
  border-radius: var(--nv2-radius);
  background:
    linear-gradient(110deg, color-mix(in srgb, var(--nv2-accent) 8%, transparent), transparent 35%),
    var(--nv2-panel);
  box-shadow: var(--glass-shadow);
}

.nv2-icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  color: var(--nv2-muted);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.72);
  background: color-mix(in srgb, var(--nv2-panel-solid) 88%, transparent);
  cursor: pointer;
  transition: var(--transition, 0.25s ease-out);
}

.nv2-icon-button:hover {
  color: var(--nv2-text);
  border-color: color-mix(in srgb, var(--nv2-accent) 45%, var(--nv2-line));
  transform: translateY(-1px);
}

.nv2-header > .nv2-icon-button {
  grid-area: back;
}

.nv2-brand-mark {
  grid-area: mark;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  color: var(--nv2-accent);
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 35%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.86);
  background: color-mix(in srgb, var(--nv2-accent) 10%, var(--nv2-panel-solid));
}

.nv2-brand-mark .nv2-icon {
  width: 30px;
  height: 30px;
}

.nv2-brand-mark > span {
  position: absolute;
  top: -8px;
  right: -8px;
  padding: 3px 6px;
  color: var(--nv2-bg);
  border-radius: 999px;
  background: var(--nv2-accent);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
}

.nv2-title-block {
  grid-area: title;
  min-width: 0;
}

.nv2-eyebrow,
.nv2-panel-heading > span,
.nv2-note-list-heading > span {
  color: var(--nv2-accent);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.nv2-title-block h1,
.nv2-panel-heading h2,
.nv2-result-heading h2 {
  margin: 5px 0 4px;
  color: var(--nv2-text);
  line-height: 1.16;
}

.nv2-title-block h1 {
  font-size: clamp(24px, 2.2vw, 36px);
}

.nv2-title-block p,
.nv2-panel-heading p,
.nv2-running-status p,
.nv2-side-card p {
  margin: 0;
  color: var(--nv2-muted);
  line-height: 1.65;
}

.nv2-header-actions {
  grid-area: actions;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  flex-wrap: wrap;
}

.nv2-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 16px;
  color: var(--nv2-text);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.72);
  background: color-mix(in srgb, var(--nv2-panel-solid) 88%, transparent);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  transition: var(--transition, 0.25s ease-out);
}

.nv2-button:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--nv2-accent) 45%, var(--nv2-line));
  transform: translateY(-1px);
}

.nv2-button:disabled {
  opacity: 0.55;
  cursor: wait;
}

.nv2-button.is-primary {
  color: var(--nv2-bg);
  border-color: var(--nv2-accent);
  background: var(--nv2-accent);
}

.nv2-button.is-primary:hover:not(:disabled) {
  background: var(--nv2-accent-hover);
}

.nv2-button.is-refine {
  color: color-mix(in srgb, var(--nv2-accent) 78%, var(--nv2-text));
  border-color: color-mix(in srgb, var(--nv2-accent) 38%, var(--nv2-line));
  background: color-mix(in srgb, var(--nv2-accent) 8%, var(--nv2-panel-solid));
}

.nv2-button.is-refine:hover:not(:disabled) {
  color: var(--nv2-text);
  background: color-mix(in srgb, var(--nv2-accent) 14%, var(--nv2-panel-solid));
}

.nv2-button.is-finalize {
  color: color-mix(in srgb, var(--nv2-accent) 82%, var(--nv2-text));
  border-color: color-mix(in srgb, var(--nv2-accent) 46%, var(--nv2-line));
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--nv2-accent) 13%, transparent), transparent 72%),
    color-mix(in srgb, var(--nv2-accent) 7%, var(--nv2-panel-solid));
}

.nv2-button.is-finalize:hover:not(:disabled) {
  color: var(--nv2-text);
  border-color: color-mix(in srgb, var(--nv2-accent) 68%, var(--nv2-line));
  background: color-mix(in srgb, var(--nv2-accent) 14%, var(--nv2-panel-solid));
}

.nv2-button.is-danger {
  color: var(--nv2-text);
  border-color: color-mix(in srgb, var(--nv2-accent) 45%, var(--nv2-line));
  background: color-mix(in srgb, var(--nv2-accent) 8%, var(--nv2-panel-solid));
}

.nv2-status-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 0 12px;
  color: var(--nv2-muted);
  border: 1px solid var(--nv2-line);
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-panel-solid) 80%, transparent);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.nv2-status-chip.is-running,
.nv2-status-chip.is-complete {
  color: color-mix(in srgb, var(--nv2-accent) 75%, var(--nv2-text));
  border-color: color-mix(in srgb, var(--nv2-accent) 28%, var(--nv2-line));
}

.nv2-status-chip.is-running i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--nv2-accent);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--nv2-accent) 12%, transparent);
  animation: nv2-pulse 1.6s ease-in-out infinite;
}

.nv2-stage-rail {
  grid-area: rail;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  padding-top: 18px;
  border-top: 1px solid var(--nv2-line);
}

.nv2-stage {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: color-mix(in srgb, var(--nv2-muted) 65%, transparent);
}

.nv2-stage span {
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 11px;
  font-weight: 800;
}

.nv2-stage strong {
  overflow: hidden;
  font-size: 12px;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.nv2-stage i {
  height: 1px;
  flex: 1;
  margin-right: 12px;
  background: var(--nv2-line);
}

.nv2-stage.is-active,
.nv2-stage.is-done {
  color: var(--nv2-text);
}

.nv2-stage.is-active span,
.nv2-stage.is-done span {
  color: var(--nv2-accent);
}

.nv2-stage.is-done i {
  background: color-mix(in srgb, var(--nv2-accent) 55%, var(--nv2-line));
}

.nv2-stage.is-future strong::after {
  content: " · 后续";
  font-weight: 500;
}

.nv2-main {
  margin-top: 20px;
}

.nv2-compose-layout,
.nv2-brief-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 18px;
  align-items: start;
}

.nv2-task-layout {
  display: grid;
  grid-template-columns: 250px minmax(620px, 1fr) 280px;
  gap: 14px;
  align-items: start;
}

.nv2-panel,
.nv2-side-card,
.nv2-note-list,
.nv2-context-panel,
.nv2-result-side {
  border: 1px solid var(--nv2-line);
  border-radius: var(--nv2-radius);
  background: var(--nv2-panel);
  box-shadow: var(--glass-shadow, 0 8px 32px rgba(0, 0, 0, 0.4));
}

.nv2-panel {
  overflow: hidden;
}

.nv2-panel-heading {
  padding: 24px 26px 20px;
  border-bottom: 1px solid var(--nv2-line);
  background: linear-gradient(115deg, color-mix(in srgb, var(--nv2-accent) 6%, transparent), transparent 42%);
}

.nv2-panel-heading h2 {
  font-size: clamp(22px, 2vw, 30px);
}

.nv2-source-notice {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 20px 26px 0;
  padding: 14px 16px;
  color: color-mix(in srgb, var(--nv2-accent) 75%, var(--nv2-text));
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 24%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.72);
  background: color-mix(in srgb, var(--nv2-accent) 6%, transparent);
}

.nv2-source-notice > .nv2-icon {
  width: 24px;
  height: 24px;
}

.nv2-source-notice div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.nv2-source-notice span {
  color: var(--nv2-muted);
  font-size: 12px;
}

.nv2-source-switch {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 20px 26px 0;
  padding: 5px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.78);
  background: color-mix(in srgb, var(--nv2-bg) 76%, transparent);
}

.nv2-source-switch button {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 12px 10px;
  color: var(--nv2-muted);
  text-align: left;
  border: 1px solid transparent;
  border-radius: calc(var(--nv2-radius) * 0.62);
  background: transparent;
  cursor: pointer;
  transition: border-color 160ms ease, background 160ms ease, color 160ms ease;
}

@media (max-width: 860px) {
  .nv2-source-switch {
    grid-template-columns: 1fr;
  }
}

.nv2-source-switch button:hover {
  color: var(--nv2-text);
  background: color-mix(in srgb, var(--nv2-panel-strong) 74%, transparent);
}

.nv2-source-switch button.is-selected {
  color: var(--nv2-text);
  border-color: color-mix(in srgb, var(--nv2-accent) 52%, var(--nv2-line));
  background: color-mix(in srgb, var(--nv2-accent) 10%, var(--nv2-panel-strong));
}

.nv2-source-switch button:focus-visible {
  outline: 2px solid var(--nv2-accent);
  outline-offset: 2px;
}

.nv2-source-switch .nv2-icon {
  flex: 0 0 auto;
  width: 21px;
  height: 21px;
  color: var(--nv2-accent);
}

.nv2-source-switch button > span {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.nv2-source-switch strong {
  font-size: 13px;
}

.nv2-source-switch small {
  color: var(--nv2-muted);
  font-size: 11px;
  line-height: 1.4;
}

.nv2-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  padding: 22px 26px 8px;
}

.nv2-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}

.nv2-field.is-wide {
  grid-column: 1 / -1;
}

.nv2-draft-upload {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px 18px;
  align-items: center;
  padding: 16px;
  border: 1px dashed color-mix(in srgb, var(--nv2-accent) 34%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.72);
  background: color-mix(in srgb, var(--nv2-accent) 5%, var(--nv2-bg));
}

.nv2-draft-upload-copy,
.nv2-draft-file {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 11px;
}

.nv2-draft-upload-copy > span {
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: var(--nv2-accent);
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 28%, var(--nv2-line));
  border-radius: 11px;
  background: color-mix(in srgb, var(--nv2-accent) 9%, transparent);
}

.nv2-draft-upload-copy > span .nv2-icon {
  width: 19px;
  height: 19px;
}

.nv2-draft-upload-copy > div,
.nv2-draft-file > span {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.nv2-draft-upload-copy strong,
.nv2-draft-file strong {
  overflow: hidden;
  color: var(--nv2-text);
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nv2-draft-upload-copy small,
.nv2-draft-file small {
  color: var(--nv2-muted);
  font-size: 11px;
  line-height: 1.45;
}

.nv2-draft-file {
  grid-column: 1 / -1;
  padding-top: 12px;
  border-top: 1px solid var(--nv2-line);
}

.nv2-draft-file > .nv2-icon {
  flex: 0 0 auto;
  color: var(--nv2-accent);
}

.nv2-draft-upload-button {
  min-width: 118px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 14px;
  color: var(--nv2-text);
  font-size: 12px;
  font-weight: 800;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 45%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.6);
  background: color-mix(in srgb, var(--nv2-accent) 9%, var(--nv2-panel-strong));
  cursor: pointer;
}

.nv2-draft-upload-button input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.nv2-draft-upload-button .nv2-icon {
  width: 17px;
  height: 17px;
  color: var(--nv2-accent);
}

.nv2-draft-upload-button i {
  width: 13px;
  height: 13px;
  border: 2px solid color-mix(in srgb, var(--nv2-accent) 28%, transparent);
  border-top-color: var(--nv2-accent);
  border-radius: 50%;
  animation: nv2-spin 800ms linear infinite;
}

.nv2-draft-upload.is-loading {
  opacity: 0.72;
}

.nv2-field > span {
  color: var(--nv2-text);
  font-size: 13px;
  font-weight: 700;
}

.nv2-field > span b {
  margin-left: 4px;
  color: var(--nv2-accent);
}

.nv2-field > small {
  margin-top: -4px;
  color: var(--nv2-muted);
  font-size: 11px;
}

.nv2-field input,
.nv2-field select,
.nv2-field textarea {
  width: 100%;
  min-width: 0;
  color: var(--nv2-text);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.66);
  outline: none;
  background: color-mix(in srgb, var(--nv2-bg) 78%, transparent);
  font: inherit;
  transition: var(--transition, 0.25s ease-out);
}

.nv2-field input,
.nv2-field select {
  height: 46px;
  padding: 0 13px;
}

.nv2-field textarea {
  min-height: 104px;
  padding: 12px 13px;
  resize: vertical;
  line-height: 1.6;
}

.nv2-field input:focus,
.nv2-field select:focus,
.nv2-field textarea:focus {
  border-color: var(--nv2-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--nv2-accent) 12%, transparent);
}

#note-v2-view .nv2-select {
  position: relative;
  width: 100%;
  min-width: 0;
}

#note-v2-view .nv2-native-select {
  display: none !important;
}

#note-v2-view .nv2-select-trigger {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 20px;
  align-items: center;
  gap: 10px;
  padding: 0 13px;
  color: var(--nv2-text);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.66);
  outline: 0;
  background: color-mix(in srgb, var(--nv2-bg) 78%, transparent);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.18s ease-out, box-shadow 0.18s ease-out, background 0.18s ease-out;
}

#note-v2-view .nv2-select-trigger:hover,
#note-v2-view .nv2-select-trigger:focus-visible,
#note-v2-view .nv2-select.is-open .nv2-select-trigger {
  border-color: var(--nv2-accent);
  background: color-mix(in srgb, var(--nv2-accent) 5%, var(--nv2-bg));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--nv2-accent) 12%, transparent);
}

#note-v2-view .nv2-select-trigger:disabled {
  opacity: 0.46;
  cursor: not-allowed;
}

#note-v2-view .nv2-select-value {
  min-width: 0;
  overflow: hidden;
  color: var(--nv2-text);
  text-overflow: ellipsis;
  white-space: nowrap;
}

#note-v2-view .nv2-select-trigger.is-placeholder .nv2-select-value {
  color: var(--nv2-muted);
}

#note-v2-view .nv2-select-trigger > .nv2-icon {
  width: 18px;
  height: 18px;
  color: var(--nv2-muted);
  transition: transform 0.18s ease-out, color 0.18s ease-out;
}

#note-v2-view .nv2-select.is-open .nv2-select-trigger > .nv2-icon {
  color: var(--nv2-accent);
  transform: rotate(180deg);
}

.nv2-select-menu {
  position: fixed;
  z-index: 12080;
  display: grid;
  gap: 3px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 6px;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 32%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.68);
  background: color-mix(in srgb, var(--nv2-panel-solid) 96%, var(--nv2-bg));
  box-shadow: var(--glass-shadow);
  animation: nv2-select-enter 0.14s ease-out both;
}

.nv2-select-menu.is-upward {
  transform-origin: bottom center;
}

.nv2-select-menu::-webkit-scrollbar {
  width: 8px;
}

.nv2-select-menu::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-muted) 44%, transparent);
  background-clip: padding-box;
}

.nv2-select-option {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 20px;
  align-items: center;
  gap: 10px;
  padding: 8px 10px 8px 12px;
  color: var(--nv2-text);
  border: 1px solid transparent;
  border-radius: calc(var(--nv2-radius) * 0.48);
  outline: 0;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.14s ease-out, background 0.14s ease-out;
}

.nv2-select-option > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nv2-select-option:hover,
.nv2-select-option:focus-visible {
  border-color: var(--nv2-line);
  background: color-mix(in srgb, var(--nv2-text) 6%, transparent);
}

.nv2-select-option.is-selected {
  border-color: color-mix(in srgb, var(--nv2-accent) 38%, var(--nv2-line));
  background: color-mix(in srgb, var(--nv2-accent) 12%, transparent);
  box-shadow: inset 2px 0 0 var(--nv2-accent);
}

.nv2-select-option:disabled {
  opacity: 0.42;
  cursor: not-allowed;
}

.nv2-select-check {
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  color: var(--nv2-accent);
  opacity: 0;
}

.nv2-select-check .nv2-icon {
  width: 16px;
  height: 16px;
}

.nv2-select-option.is-selected .nv2-select-check {
  opacity: 1;
}

.nv2-version-compare-control .nv2-select-trigger {
  min-height: 36px;
  padding: 0 10px;
}

.nv2-rule-capture-fields .nv2-select-trigger {
  min-height: 42px;
  padding: 0 10px;
}

.nv2-rule-create .nv2-select-trigger {
  min-height: 40px;
  padding: 0 11px;
  font-size: 11px;
}

.nv2-project-rule-page .nv2-select {
  min-width: 150px;
}

.nv2-project-rule-page .nv2-select-trigger {
  min-height: 38px;
  padding: 0 11px;
  font-size: 11px;
}

@keyframes nv2-select-enter {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  #note-v2-view .nv2-select-trigger,
  #note-v2-view .nv2-select-trigger > .nv2-icon,
  .nv2-select-option {
    transition: none;
  }

  .nv2-select-menu {
    animation: none;
  }
}

.nv2-count-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 14px 26px 22px;
  padding: 18px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.75);
  background: color-mix(in srgb, var(--nv2-bg) 60%, transparent);
}

.nv2-count-row > div:first-child {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.nv2-count-row > div:first-child span {
  font-weight: 800;
}

.nv2-count-row small {
  color: var(--nv2-muted);
}

.nv2-count-control {
  display: flex;
  gap: 6px;
}

.nv2-count-control button {
  min-width: 54px;
  height: 38px;
  color: var(--nv2-muted);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.58);
  background: var(--nv2-panel-solid);
  cursor: pointer;
}

.nv2-count-control button.is-selected {
  color: var(--nv2-bg);
  border-color: var(--nv2-accent);
  background: var(--nv2-accent);
  font-weight: 800;
}

.nv2-panel-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 26px;
  border-top: 1px solid var(--nv2-line);
  background: color-mix(in srgb, var(--nv2-bg) 48%, transparent);
}

.nv2-panel-actions > span {
  color: var(--nv2-muted);
  font-size: 12px;
}

.nv2-side-card {
  position: sticky;
  top: 92px;
  padding: 22px;
}

.nv2-context-panel,
.nv2-result-side {
  position: sticky;
  top: 92px;
  max-height: calc(100vh - 124px);
  overflow-y: auto;
  padding: 20px;
}

.nv2-context-panel h2,
.nv2-result-side h2 {
  margin: 7px 0 14px;
  font-size: 18px;
  line-height: 1.4;
}

.nv2-context-panel dl,
.nv2-result-side dl {
  margin: 0;
}

.nv2-context-panel dl > div,
.nv2-result-side dl > div {
  padding: 11px 0;
  border-top: 1px solid var(--nv2-line);
}

.nv2-context-panel dt,
.nv2-result-side dt {
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-context-panel dd,
.nv2-result-side dd {
  margin: 5px 0 0;
  color: var(--nv2-text);
  font-size: 12px;
  line-height: 1.55;
}

.nv2-context-section {
  margin-top: 15px;
  padding-top: 14px;
  border-top: 1px solid var(--nv2-line);
}

.nv2-context-section > span {
  display: block;
  margin-bottom: 9px;
  color: var(--nv2-accent);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.nv2-context-section p,
.nv2-context-section li {
  margin: 0;
  color: var(--nv2-muted);
  font-size: 12px;
  line-height: 1.6;
}

.nv2-source-excerpt {
  display: -webkit-box;
  overflow: hidden;
  white-space: pre-wrap;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 8;
}

.nv2-brief-source.is-wide {
  grid-column: 1 / -1;
}

.nv2-source-preview {
  display: grid;
  gap: 10px;
  padding: 15px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.66);
  background: color-mix(in srgb, var(--nv2-bg) 70%, transparent);
}

.nv2-source-preview > strong {
  color: var(--nv2-text);
  font-size: 13px;
}

.nv2-source-preview > p {
  max-height: 320px;
  margin: 0;
  overflow-y: auto;
  color: var(--nv2-muted);
  font-size: 12px;
  line-height: 1.75;
  white-space: pre-wrap;
}

.nv2-source-preview > ul {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nv2-source-preview > ul li {
  padding: 4px 8px;
  color: var(--nv2-accent);
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 24%, var(--nv2-line));
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-accent) 6%, transparent);
  font-size: 10px;
}

.nv2-context-section ul {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nv2-context-section li {
  position: relative;
  padding-left: 12px;
}

.nv2-context-section li::before {
  content: "";
  position: absolute;
  top: 8px;
  left: 0;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--nv2-accent);
}

.nv2-context-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  margin-top: 18px;
  padding: 10px 12px;
  color: var(--nv2-accent);
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 28%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.68);
  background: color-mix(in srgb, var(--nv2-accent) 6%, transparent);
  cursor: pointer;
}

.nv2-side-card h3 {
  margin: 7px 0 12px;
  font-size: 20px;
}

.nv2-side-card ul,
.nv2-side-card ol {
  display: flex;
  flex-direction: column;
  gap: 13px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.nv2-side-card li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  color: var(--nv2-muted);
  line-height: 1.55;
}

.nv2-side-card li .nv2-icon {
  margin-top: 3px;
  color: var(--nv2-accent);
}

.nv2-side-card ol {
  counter-reset: nv2-list;
}

.nv2-side-card ol li {
  counter-increment: nv2-list;
}

.nv2-side-card ol li::before {
  content: counter(nv2-list, decimal-leading-zero);
  color: var(--nv2-accent);
  font: 800 11px ui-monospace, SFMono-Regular, Consolas, monospace;
}

.nv2-template-callout {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 22px;
  padding: 14px;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 22%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.7);
  background: color-mix(in srgb, var(--nv2-accent) 6%, transparent);
}

.nv2-template-callout span {
  color: var(--nv2-muted);
  font-size: 12px;
  line-height: 1.6;
}

.nv2-brief-hero {
  margin: 22px 26px;
  padding: 22px;
  border-left: 3px solid var(--nv2-accent);
  border-radius: 0 calc(var(--nv2-radius) * 0.75) calc(var(--nv2-radius) * 0.75) 0;
  background: color-mix(in srgb, var(--nv2-accent) 7%, var(--nv2-panel-solid));
}

.nv2-brief-hero > span,
.nv2-brief-grid article > span {
  color: var(--nv2-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.nv2-brief-hero h3 {
  margin: 7px 0;
  font-size: 24px;
}

.nv2-brief-hero p {
  margin: 0;
  color: var(--nv2-muted);
}

.nv2-brief-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 0 26px;
}

.nv2-brief-grid article {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 15px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.68);
  background: color-mix(in srgb, var(--nv2-bg) 54%, transparent);
}

.nv2-brief-sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  padding: 22px 26px;
}

.nv2-brief-sections > section {
  padding-top: 16px;
  border-top: 1px solid var(--nv2-line);
}

.nv2-brief-sections h4 {
  margin: 0 0 10px;
}

.nv2-brief-sections p,
.nv2-brief-sections li,
.nv2-empty-copy {
  color: var(--nv2-muted);
  line-height: 1.65;
}

.nv2-brief-sections ul {
  margin: 0;
  padding-left: 18px;
}

.nv2-execution-rules.is-wide {
  grid-column: 1 / -1;
  padding: 18px;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 28%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.78);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--nv2-accent) 7%, transparent), transparent 45%),
    color-mix(in srgb, var(--nv2-bg) 58%, transparent);
}

.nv2-execution-rules > header,
.nv2-rule-group > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.nv2-execution-rules > header > div,
.nv2-rule-group > header > div {
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.nv2-execution-rules > header span,
.nv2-rule-group > header span {
  color: var(--nv2-accent);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.13em;
}

.nv2-execution-rules > header h4,
.nv2-rule-group > header h5 {
  margin: 0;
}

.nv2-execution-rules > header > strong,
.nv2-rule-group > header > strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 26px;
  padding: 0 9px;
  color: var(--nv2-accent);
  font-size: 12px;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 28%, var(--nv2-line));
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-accent) 8%, transparent);
}

.nv2-rule-summary {
  margin: 9px 0 16px;
  color: var(--nv2-muted);
  font-size: 12px;
}

.nv2-rule-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.nv2-rule-group {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.68);
  background: color-mix(in srgb, var(--nv2-panel-solid) 72%, transparent);
}

.nv2-rule-group.is-pending {
  border-style: dashed;
}

.nv2-rule-group > header {
  padding-bottom: 11px;
  border-bottom: 1px solid var(--nv2-line);
}

.nv2-rule-group > div {
  display: grid;
  gap: 8px;
  padding-top: 10px;
}

.nv2-rule-mode {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 10px 0 0;
  color: var(--nv2-muted);
  font-size: 11px;
  line-height: 1.55;
}

.nv2-rule-reset {
  flex: 0 0 auto;
  padding: 5px 8px;
  color: var(--nv2-accent);
  font: inherit;
  font-weight: 700;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 28%, var(--nv2-line));
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-accent) 7%, transparent);
  cursor: pointer;
  transition: var(--transition, 0.25s ease-out);
}

.nv2-rule-reset:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--nv2-accent) 56%, var(--nv2-line));
  background: color-mix(in srgb, var(--nv2-accent) 13%, transparent);
}

.nv2-rule-reset:disabled {
  cursor: wait;
  opacity: 0.55;
}

.nv2-applied-rule {
  padding: 11px 12px;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 18%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.58);
  background: color-mix(in srgb, var(--nv2-bg) 62%, transparent);
  transition: var(--transition, 0.25s ease-out);
}

.nv2-applied-rule.is-excluded {
  opacity: 0.58;
  border-style: dashed;
}

.nv2-rule-check {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 9px;
  color: var(--nv2-muted);
  cursor: pointer;
}

.nv2-rule-check input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.nv2-rule-check span {
  position: relative;
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
  border: 1px solid color-mix(in srgb, var(--nv2-muted) 45%, var(--nv2-line));
  border-radius: 5px;
  background: color-mix(in srgb, var(--nv2-bg) 68%, transparent);
}

.nv2-rule-check input:checked + span {
  border-color: var(--nv2-accent);
  background: var(--nv2-accent);
}

.nv2-rule-check input:checked + span::after {
  position: absolute;
  top: 2px;
  left: 5px;
  width: 4px;
  height: 8px;
  content: "";
  border-right: 2px solid var(--nv2-bg);
  border-bottom: 2px solid var(--nv2-bg);
  transform: rotate(45deg);
}

.nv2-rule-check input:focus-visible + span {
  outline: 2px solid color-mix(in srgb, var(--nv2-accent) 55%, transparent);
  outline-offset: 2px;
}

.nv2-rule-check input:disabled ~ * {
  cursor: wait;
}

.nv2-rule-check strong {
  color: var(--nv2-muted);
  font-size: 11px;
}

.nv2-rule-check input:checked ~ strong {
  color: var(--nv2-accent);
}

.nv2-applied-rule > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.nv2-applied-rule span,
.nv2-applied-rule em {
  color: var(--nv2-accent);
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
}

.nv2-applied-rule em {
  color: var(--nv2-muted);
}

.nv2-applied-rule p {
  margin: 7px 0 0;
  color: var(--nv2-text);
  font-size: 13px;
  line-height: 1.65;
  white-space: pre-wrap;
}

.nv2-rule-empty {
  margin: 0;
  padding: 12px;
  color: var(--nv2-muted);
  font-size: 12px;
  line-height: 1.6;
  border-radius: calc(var(--nv2-radius) * 0.55);
  background: color-mix(in srgb, var(--nv2-bg) 46%, transparent);
}

.nv2-rule-empty.is-pending {
  color: color-mix(in srgb, var(--nv2-muted) 86%, var(--nv2-accent));
}

.nv2-execution-rules > footer {
  margin-top: 13px;
  padding-top: 12px;
  color: var(--nv2-muted);
  font-size: 11px;
  line-height: 1.6;
  border-top: 1px solid var(--nv2-line);
}

.nv2-running-status {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 30px 26px 20px;
}

.nv2-progress-orbit {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 88px;
  height: 88px;
  flex: 0 0 auto;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 40%, var(--nv2-line));
  border-radius: 50%;
}

.nv2-progress-orbit span {
  font-size: 18px;
  font-weight: 800;
}

.nv2-progress-orbit i {
  position: absolute;
  inset: 8px;
  border: 2px solid transparent;
  border-top-color: var(--nv2-accent);
  border-radius: 50%;
  animation: nv2-spin 1.5s linear infinite;
}

.nv2-running-status > div:last-child > span {
  color: var(--nv2-accent);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.nv2-running-status h3 {
  margin: 5px 0;
  font-size: 24px;
}

.nv2-progress-track {
  height: 6px;
  margin: 0 26px 24px;
  overflow: hidden;
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-line) 80%, transparent);
}

.nv2-progress-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--nv2-accent);
  transition: width 0.35s ease-out;
}

.nv2-task-events {
  padding: 0 26px 22px;
}

.nv2-task-events > div {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 12px 0;
  border-top: 1px solid var(--nv2-line);
  color: var(--nv2-muted);
}

.nv2-task-events i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--nv2-accent) 55%, var(--nv2-muted));
}

.nv2-task-events .is-error i {
  background: var(--nv2-accent);
}

.nv2-task-events time {
  font-size: 11px;
}

.nv2-failure-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 20px 26px;
  border-top: 1px solid var(--nv2-line);
}

.nv2-result-layout {
  display: grid;
  grid-template-columns: 250px minmax(620px, 1fr) 280px;
  gap: 14px;
  align-items: start;
}

.nv2-result-main {
  display: grid;
  min-width: 0;
  gap: 12px;
}

.nv2-note-list {
  display: flex;
  min-width: 0;
  overflow-x: auto;
  padding: 8px;
  gap: 7px;
  box-shadow: none;
}

.nv2-note-list-heading {
  display: flex;
  flex-direction: column;
  gap: 5px;
  justify-content: center;
  min-width: 124px;
  padding: 8px 10px;
  border-right: 1px solid var(--nv2-line);
}

.nv2-note-list > button {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  min-width: 180px;
  max-width: 240px;
  padding: 11px 12px;
  color: var(--nv2-text);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.66);
  background: color-mix(in srgb, var(--nv2-bg) 46%, transparent);
  text-align: left;
  cursor: pointer;
}

.nv2-note-list > button:hover,
.nv2-note-list > button.is-active {
  background: color-mix(in srgb, var(--nv2-accent) 7%, transparent);
}

.nv2-note-list > button.is-active {
  border-color: color-mix(in srgb, var(--nv2-accent) 42%, var(--nv2-line));
  box-shadow: inset 0 -3px 0 var(--nv2-accent);
}

.nv2-note-list > button.has-final {
  border-top-color: color-mix(in srgb, var(--nv2-added) 45%, var(--nv2-line));
}

.nv2-note-list > button > span {
  color: var(--nv2-accent);
  font: 800 11px ui-monospace, SFMono-Regular, Consolas, monospace;
}

.nv2-note-list > button > div {
  min-width: 0;
}

.nv2-note-list > button strong,
.nv2-note-list > button small {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.nv2-note-list > button small {
  margin-top: 4px;
  color: var(--nv2-muted);
}

.nv2-note-final-badge {
  padding: 4px 7px;
  color: color-mix(in srgb, var(--nv2-added) 76%, var(--nv2-text));
  border: 1px solid color-mix(in srgb, var(--nv2-added) 28%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-added) 9%, transparent);
  font-size: 9px;
  font-style: normal;
  white-space: nowrap;
}

.nv2-version-state {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 4px 10px;
  margin-bottom: 6px;
  padding: 14px;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 25%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.72);
  background: color-mix(in srgb, var(--nv2-accent) 6%, transparent);
}

.nv2-version-state > span {
  grid-column: 1 / -1;
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-version-state strong {
  font-size: 27px;
  letter-spacing: -0.04em;
}

.nv2-version-state em {
  padding: 4px 7px;
  color: var(--nv2-accent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-accent) 10%, transparent);
  font-size: 10px;
  font-style: normal;
}

.nv2-version-entry {
  width: 100%;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  margin-top: 14px;
  padding: 11px;
  border: 1px solid var(--nv2-line);
  border-left: 3px solid var(--nv2-accent);
  border-radius: calc(var(--nv2-radius) * 0.68);
  background: color-mix(in srgb, var(--nv2-bg) 44%, transparent);
  color: var(--nv2-text);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: var(--transition, 0.25s ease-out);
}

.nv2-version-entry:hover,
.nv2-version-entry.is-previewing {
  border-color: color-mix(in srgb, var(--nv2-accent) 42%, var(--nv2-line));
  background: color-mix(in srgb, var(--nv2-accent) 7%, transparent);
}

.nv2-version-entry.is-current {
  border-left-color: var(--nv2-accent);
}

.nv2-version-entry.is-final {
  border-color: color-mix(in srgb, var(--nv2-added) 38%, var(--nv2-line));
  border-left-color: var(--nv2-added);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--nv2-added) 7%, transparent), transparent 68%),
    color-mix(in srgb, var(--nv2-bg) 44%, transparent);
}

.nv2-version-entry.is-final em {
  color: color-mix(in srgb, var(--nv2-added) 78%, var(--nv2-text));
}

.nv2-version-entry > span {
  color: var(--nv2-accent);
  font: 800 11px ui-monospace, SFMono-Regular, Consolas, monospace;
}

.nv2-version-entry > div {
  min-width: 0;
}

.nv2-version-entry strong,
.nv2-version-entry small {
  display: block;
}

.nv2-version-entry small {
  margin-top: 3px;
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-finalization-side {
  display: grid;
  gap: 10px;
  margin: 14px 0;
  padding: 13px;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 24%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.72);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--nv2-accent) 7%, transparent), transparent 64%),
    color-mix(in srgb, var(--nv2-bg) 42%, transparent);
}

.nv2-finalization-side.is-final {
  border-color: color-mix(in srgb, var(--nv2-added) 38%, var(--nv2-line));
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--nv2-added) 7%, transparent), transparent 64%),
    color-mix(in srgb, var(--nv2-bg) 42%, transparent);
}

.nv2-finalization-side > header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  color: color-mix(in srgb, var(--nv2-accent) 78%, var(--nv2-text));
}

.nv2-finalization-side.is-final > header {
  color: color-mix(in srgb, var(--nv2-added) 74%, var(--nv2-text));
}

.nv2-finalization-side > header strong {
  color: var(--nv2-text);
  font-size: 11px;
}

.nv2-finalization-side > header span {
  padding: 3px 6px;
  color: var(--nv2-muted);
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-muted) 9%, transparent);
  font-size: 9px;
}

.nv2-finalization-side.is-final > header span {
  color: color-mix(in srgb, var(--nv2-added) 78%, var(--nv2-text));
  background: color-mix(in srgb, var(--nv2-added) 9%, transparent);
}

.nv2-finalization-side p {
  margin: 0;
  color: var(--nv2-muted);
  font-size: 10px;
  line-height: 1.6;
}

.nv2-finalization-side .nv2-button {
  width: 100%;
  min-height: 34px;
  padding: 7px 10px;
  font-size: 10px;
}

.nv2-refinement-side {
  display: grid;
  gap: 10px;
  margin: 14px 0;
  padding: 13px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.72);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--nv2-accent) 7%, transparent), transparent 62%),
    color-mix(in srgb, var(--nv2-bg) 42%, transparent);
}

.nv2-refinement-side.is-ready {
  border-color: color-mix(in srgb, var(--nv2-accent) 42%, var(--nv2-line));
}

.nv2-refinement-side > header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  color: color-mix(in srgb, var(--nv2-accent) 78%, var(--nv2-text));
}

.nv2-refinement-side > header strong {
  color: var(--nv2-text);
  font-size: 11px;
}

.nv2-refinement-side > header span {
  padding: 3px 6px;
  color: var(--nv2-muted);
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-muted) 9%, transparent);
  font-size: 9px;
}

.nv2-refinement-side p {
  margin: 0;
  color: var(--nv2-muted);
  font-size: 10px;
  line-height: 1.6;
}

.nv2-refinement-side .nv2-button {
  width: 100%;
  min-height: 34px;
  padding: 7px 10px;
  font-size: 10px;
}

.nv2-rule-side {
  display: grid;
  gap: 10px;
  margin: 14px 0;
  padding: 13px;
  border: 1px solid color-mix(in srgb, var(--nv2-added) 22%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.72);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--nv2-added) 6%, transparent), transparent 66%),
    color-mix(in srgb, var(--nv2-bg) 42%, transparent);
}

.nv2-rule-side > header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  color: color-mix(in srgb, var(--nv2-added) 70%, var(--nv2-text));
}

.nv2-rule-side > header strong {
  color: var(--nv2-text);
  font-size: 11px;
}

.nv2-rule-side > header span {
  padding: 3px 6px;
  color: color-mix(in srgb, var(--nv2-added) 72%, var(--nv2-text));
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-added) 9%, transparent);
  font-size: 9px;
}

.nv2-rule-side p {
  margin: 0;
  color: var(--nv2-muted);
  font-size: 10px;
  line-height: 1.6;
}

.nv2-rule-side .nv2-button {
  width: 100%;
  min-height: 34px;
  padding: 7px 10px;
  font-size: 10px;
}

.nv2-version-entry em {
  color: var(--nv2-accent);
  font-size: 10px;
  font-style: normal;
}

.nv2-version-history {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--nv2-line);
}

.nv2-version-history > header,
.nv2-version-compare-control > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--nv2-muted);
  font-size: 11px;
}

.nv2-version-history > header span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-accent) 8%, transparent);
}

.nv2-version-history > div {
  max-height: 270px;
  overflow-y: auto;
  padding-right: 3px;
}

.nv2-version-loading {
  margin: 12px 0 0;
  color: var(--nv2-muted);
  font-size: 11px;
}

.nv2-version-compare-control {
  display: grid;
  gap: 10px;
  margin-top: 16px;
  padding: 13px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.68);
  background: color-mix(in srgb, var(--nv2-bg) 42%, transparent);
}

.nv2-version-compare-control > header {
  justify-content: flex-start;
  color: var(--nv2-text);
}

.nv2-version-compare-control label {
  display: grid;
  gap: 5px;
}

.nv2-version-compare-control label > span {
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-version-compare-control select {
  width: 100%;
  min-height: 36px;
  padding: 0 30px 0 10px;
  color: var(--nv2-text);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.52);
  background: var(--nv2-panel-solid);
}

.nv2-version-compare-control .nv2-button {
  min-height: 38px;
  padding: 0 10px;
  font-size: 11px;
}

.nv2-future-note {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 16px;
  padding: 13px;
  border: 1px dashed var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.68);
}

.nv2-future-note strong {
  color: var(--nv2-muted);
  font-size: 10px;
  letter-spacing: 0.08em;
}

.nv2-future-note span {
  color: var(--nv2-muted);
  font-size: 11px;
  line-height: 1.6;
}

.nv2-result-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 26px;
  border-bottom: 1px solid var(--nv2-line);
}

.nv2-heading-actions {
  --nv2-heading-action-width: 148px;
  --nv2-heading-action-height: 46px;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.nv2-heading-actions .nv2-button {
  flex: 0 0 var(--nv2-heading-action-width);
  width: var(--nv2-heading-action-width);
  height: var(--nv2-heading-action-height);
  min-height: var(--nv2-heading-action-height);
  padding-inline: 14px;
  white-space: nowrap;
}

.nv2-result-heading h2 {
  font-size: clamp(24px, 2.2vw, 34px);
}

.nv2-result-heading p {
  max-width: 620px;
  margin: 7px 0 0;
  color: var(--nv2-muted);
  font-size: 12px;
  line-height: 1.6;
}

.nv2-version-preview-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 26px;
  color: color-mix(in srgb, var(--nv2-accent) 72%, var(--nv2-text));
  border-bottom: 1px solid color-mix(in srgb, var(--nv2-accent) 24%, var(--nv2-line));
  background: color-mix(in srgb, var(--nv2-accent) 7%, transparent);
  font-size: 12px;
}

.nv2-note-body {
  min-height: 280px;
  padding: 28px 30px;
  color: color-mix(in srgb, var(--nv2-text) 90%, var(--nv2-muted));
  font-size: 16px;
  line-height: 1.95;
  white-space: pre-wrap;
}

.nv2-note-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0 30px 24px;
}

.nv2-note-tags span {
  padding: 6px 10px;
  color: color-mix(in srgb, var(--nv2-accent) 76%, var(--nv2-text));
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 25%, var(--nv2-line));
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-accent) 6%, transparent);
  font-size: 12px;
}

.nv2-note-tags small {
  color: var(--nv2-muted);
}

.nv2-note-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 20px 30px;
  border-top: 1px solid var(--nv2-line);
}

.nv2-note-meta article {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.nv2-note-meta span,
.nv2-result-footer span {
  color: var(--nv2-muted);
  font-size: 11px;
}

.nv2-result-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 30px;
  border-top: 1px solid var(--nv2-line);
  background: color-mix(in srgb, var(--nv2-bg) 48%, transparent);
}

.nv2-result-footer > div {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: color-mix(in srgb, var(--nv2-accent) 65%, var(--nv2-text));
  font-size: 12px;
}

.nv2-unsaved-state {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  color: var(--nv2-muted);
  border: 1px solid var(--nv2-line);
  border-radius: 999px;
  font-size: 11px;
}

.nv2-unsaved-state.is-dirty {
  color: var(--nv2-accent);
  border-color: color-mix(in srgb, var(--nv2-accent) 36%, var(--nv2-line));
  background: color-mix(in srgb, var(--nv2-accent) 7%, transparent);
}

.nv2-editor-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  padding: 24px 26px 28px;
}

.nv2-editor-form label {
  display: grid;
  gap: 7px;
}

.nv2-editor-form label.is-wide {
  grid-column: 1 / -1;
}

.nv2-editor-form label > span {
  color: var(--nv2-muted);
  font-size: 11px;
  font-weight: 700;
}

.nv2-editor-form input,
.nv2-editor-form textarea {
  width: 100%;
  color: var(--nv2-text);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.66);
  outline: 0;
  background: color-mix(in srgb, var(--nv2-bg) 58%, transparent);
  font: inherit;
  transition: var(--transition, 0.25s ease-out);
}

.nv2-editor-form input {
  min-height: 44px;
  padding: 0 13px;
}

.nv2-editor-form textarea {
  min-height: 330px;
  resize: vertical;
  padding: 14px;
  line-height: 1.8;
}

.nv2-editor-form input:focus,
.nv2-editor-form textarea:focus {
  border-color: color-mix(in srgb, var(--nv2-accent) 62%, var(--nv2-line));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--nv2-accent) 9%, transparent);
}

.nv2-editor-form label > small {
  justify-self: end;
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-result-panel.is-editing .nv2-panel-actions > div {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.nv2-result-panel.is-editing .nv2-panel-actions > div > span {
  color: var(--nv2-muted);
  font-size: 11px;
}

.nv2-refinement-request {
  display: grid;
  gap: 18px;
  padding: 24px 26px 28px;
}

.nv2-refinement-base {
  display: grid;
  gap: 5px;
  padding: 14px 16px;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 24%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.66);
  background: color-mix(in srgb, var(--nv2-accent) 5%, transparent);
}

.nv2-refinement-base span,
.nv2-refinement-base small {
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-refinement-request > label {
  display: grid;
  gap: 8px;
}

.nv2-refinement-request > label > span,
.nv2-refinement-presets > span {
  color: var(--nv2-muted);
  font-size: 11px;
  font-weight: 700;
}

.nv2-refinement-request textarea {
  width: 100%;
  min-height: 150px;
  resize: vertical;
  padding: 14px;
  color: var(--nv2-text);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.66);
  outline: 0;
  background: color-mix(in srgb, var(--nv2-bg) 58%, transparent);
  font: inherit;
  line-height: 1.7;
  transition: var(--transition, 0.25s ease-out);
}

.nv2-refinement-request textarea:focus {
  border-color: color-mix(in srgb, var(--nv2-accent) 62%, var(--nv2-line));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--nv2-accent) 9%, transparent);
}

.nv2-refinement-request > label > small {
  justify-self: end;
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-refinement-presets {
  display: grid;
  gap: 9px;
}

.nv2-refinement-presets > div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.nv2-refinement-presets button {
  padding: 7px 10px;
  color: var(--nv2-muted);
  border: 1px solid var(--nv2-line);
  border-radius: 999px;
  background: transparent;
  font: inherit;
  font-size: 10px;
  cursor: pointer;
  transition: var(--transition, 0.25s ease-out);
}

.nv2-refinement-presets button:hover {
  color: var(--nv2-text);
  border-color: color-mix(in srgb, var(--nv2-accent) 38%, var(--nv2-line));
  background: color-mix(in srgb, var(--nv2-accent) 7%, transparent);
}

.nv2-refinement-boundary {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 13px;
  color: color-mix(in srgb, var(--nv2-added) 78%, var(--nv2-text));
  border-radius: calc(var(--nv2-radius) * 0.58);
  background: color-mix(in srgb, var(--nv2-added) 8%, transparent);
  font-size: 11px;
}

.nv2-refinement-running {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 34px 26px 24px;
}

.nv2-refinement-running > div:last-child {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.nv2-refinement-running > div:last-child > span {
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-refinement-running h3,
.nv2-refinement-running p {
  margin: 0;
}

.nv2-refinement-running p {
  color: var(--nv2-muted);
  line-height: 1.65;
}

.nv2-refinement-progress .nv2-progress-track {
  margin: 0 26px 30px;
}

.nv2-refinement-progress.is-failed .nv2-progress-orbit {
  border-color: color-mix(in srgb, var(--nv2-removed) 42%, var(--nv2-line));
}

.nv2-refinement-progress.is-failed .nv2-progress-orbit i {
  display: none;
}

.nv2-refinement-instruction {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  padding: 13px 26px;
  border-bottom: 1px solid var(--nv2-line);
  background: color-mix(in srgb, var(--nv2-accent) 4%, transparent);
}

.nv2-refinement-instruction span {
  color: var(--nv2-accent);
  font-size: 10px;
  font-weight: 800;
}

.nv2-refinement-instruction p {
  margin: 0;
  color: color-mix(in srgb, var(--nv2-text) 86%, var(--nv2-muted));
  font-size: 11px;
  line-height: 1.65;
}

.nv2-refinement-proposal .nv2-compare-head {
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--nv2-removed) 3%, transparent), color-mix(in srgb, var(--nv2-added) 3%, transparent)),
    color-mix(in srgb, var(--nv2-bg) 42%, transparent);
}

.nv2-refinement-actions > div {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.nv2-refinement-actions > div > span {
  color: var(--nv2-muted);
  font-size: 11px;
}

.nv2-rule-capture {
  display: grid;
  gap: 12px;
  padding: 18px 26px;
  border-top: 1px solid var(--nv2-line);
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--nv2-added) 5%, transparent), transparent 60%),
    color-mix(in srgb, var(--nv2-bg) 48%, transparent);
}

.nv2-rule-capture > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.nv2-rule-capture > header > div {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  color: color-mix(in srgb, var(--nv2-added) 74%, var(--nv2-text));
}

.nv2-rule-capture > header span,
.nv2-rule-capture > header strong,
.nv2-rule-capture > header small {
  display: block;
}

.nv2-rule-capture > header strong {
  color: var(--nv2-text);
  font-size: 12px;
}

.nv2-rule-capture > header small,
.nv2-rule-capture > p {
  margin: 3px 0 0;
  color: var(--nv2-muted);
  font-size: 10px;
  line-height: 1.55;
}

.nv2-rule-capture > header > button {
  flex: 0 0 auto;
  min-width: 92px;
  padding: 7px 10px;
  color: var(--nv2-muted);
  border: 1px solid var(--nv2-line);
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-bg) 55%, transparent);
  font: inherit;
  font-size: 10px;
  cursor: pointer;
}

.nv2-rule-capture.is-open > header > button {
  color: color-mix(in srgb, var(--nv2-added) 76%, var(--nv2-text));
  border-color: color-mix(in srgb, var(--nv2-added) 38%, var(--nv2-line));
  background: color-mix(in srgb, var(--nv2-added) 9%, transparent);
}

.nv2-rule-capture-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, 0.42fr);
  gap: 14px;
}

.nv2-rule-capture-fields label {
  display: grid;
  align-content: start;
  gap: 7px;
}

.nv2-rule-capture-fields label > span {
  color: var(--nv2-muted);
  font-size: 10px;
  font-weight: 700;
}

.nv2-rule-capture-fields textarea,
.nv2-rule-capture-fields select {
  width: 100%;
  color: var(--nv2-text);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.58);
  outline: 0;
  background: color-mix(in srgb, var(--nv2-bg) 64%, transparent);
  font: inherit;
  font-size: 11px;
}

.nv2-rule-capture-fields textarea {
  min-height: 92px;
  padding: 11px 12px;
  resize: vertical;
  line-height: 1.6;
}

.nv2-rule-capture-fields select {
  min-height: 42px;
  padding: 0 10px;
}

.nv2-rule-capture-fields textarea:focus,
.nv2-rule-capture-fields select:focus {
  border-color: color-mix(in srgb, var(--nv2-added) 45%, var(--nv2-line));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--nv2-added) 8%, transparent);
}

.nv2-rule-capture-fields small {
  color: var(--nv2-muted);
  font-size: 9px;
  line-height: 1.5;
}

.nv2-rule-capture-fields label:first-child small {
  justify-self: end;
}

.nv2-compare-head {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 18px 26px;
  border-bottom: 1px solid var(--nv2-line);
  background: color-mix(in srgb, var(--nv2-bg) 42%, transparent);
}

.nv2-compare-head article {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.62);
}

.nv2-compare-head span,
.nv2-compare-head small {
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-diff-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 18px;
  padding: 11px 26px;
  color: var(--nv2-muted);
  border-bottom: 1px solid var(--nv2-line);
  font-size: 10px;
}

.nv2-diff-legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.nv2-diff-legend i {
  width: 18px;
  height: 7px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-muted) 24%, transparent);
}

.nv2-diff-legend i.is-removed {
  background: color-mix(in srgb, var(--nv2-removed) 62%, transparent);
}

.nv2-diff-legend i.is-added {
  background: color-mix(in srgb, var(--nv2-added) 62%, transparent);
}

.nv2-compare-filter.is-active {
  color: var(--nv2-added);
  border-color: color-mix(in srgb, var(--nv2-added) 42%, var(--nv2-line));
  background: color-mix(in srgb, var(--nv2-added) 10%, var(--nv2-panel-solid));
}

.nv2-compare-body {
  display: grid;
  gap: 12px;
  padding: 22px 26px 28px;
}

.nv2-compare-field {
  overflow: hidden;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.66);
}

.nv2-compare-field > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 12px;
  border-bottom: 1px solid var(--nv2-line);
  background: color-mix(in srgb, var(--nv2-bg) 46%, transparent);
  font-size: 11px;
}

.nv2-compare-field > header span {
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-compare-field.is-changed > header span {
  color: var(--nv2-accent);
}

.nv2-compare-field > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nv2-compare-field article {
  min-width: 0;
  padding: 13px;
  color: color-mix(in srgb, var(--nv2-text) 88%, var(--nv2-muted));
  line-height: 1.7;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.nv2-compare-field article[data-version-side="left"] {
  background: linear-gradient(90deg, color-mix(in srgb, var(--nv2-removed) 3%, transparent), transparent 34%);
}

.nv2-compare-field article[data-version-side="right"] {
  background: linear-gradient(90deg, color-mix(in srgb, var(--nv2-added) 3%, transparent), transparent 34%);
}

.nv2-compare-field article + article {
  border-left: 1px solid var(--nv2-line);
}

.nv2-compare-field.is-long article {
  max-height: 360px;
  overflow-y: auto;
}

.nv2-diff-removed,
.nv2-diff-added {
  padding: 0 0.12em;
  color: inherit;
  border-radius: 0.22em;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.nv2-diff-removed {
  background: color-mix(in srgb, var(--nv2-removed) 22%, transparent);
  text-decoration: line-through;
  text-decoration-color: color-mix(in srgb, var(--nv2-removed) 84%, transparent);
  text-decoration-thickness: 1px;
}

.nv2-diff-added {
  background: color-mix(in srgb, var(--nv2-added) 19%, transparent);
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, var(--nv2-added) 82%, transparent);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.nv2-diff-tag {
  display: inline-block;
  margin: 2px 3px 2px 0;
  padding: 2px 7px;
  border: 1px solid var(--nv2-line);
  border-radius: 999px;
  line-height: 1.45;
}

.nv2-diff-tag.nv2-diff-removed {
  border-color: color-mix(in srgb, var(--nv2-removed) 35%, var(--nv2-line));
}

.nv2-diff-tag.nv2-diff-added {
  border-color: color-mix(in srgb, var(--nv2-added) 35%, var(--nv2-line));
}

.nv2-diff-empty {
  color: color-mix(in srgb, var(--nv2-muted) 72%, transparent);
  font-style: italic;
}

.nv2-compare-panel.is-changes-only .nv2-compare-field.is-same {
  display: none;
}

.nv2-compare-panel.is-changes-only .nv2-compare-field.is-long .nv2-diff-unchanged.is-collapsible {
  color: transparent;
  font-size: 0;
}

.nv2-compare-panel.is-changes-only .nv2-compare-field.is-long .nv2-diff-unchanged.is-collapsible::after {
  content: " … ";
  color: var(--nv2-muted);
  font-size: 11px;
  letter-spacing: 0.12em;
}

.nv2-compare-panel.is-changes-only .nv2-compare-body:not(:has(.nv2-compare-field.is-changed))::before {
  content: "这两个版本的笔记内容完全一致";
  padding: 28px;
  color: var(--nv2-muted);
  border: 1px dashed var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.66);
  text-align: center;
}

.nv2-history-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  justify-content: flex-end;
  background: color-mix(in srgb, var(--nv2-bg) 62%, transparent);
  backdrop-filter: blur(6px);
}

.nv2-history-drawer {
  width: min(430px, 92vw);
  height: 100%;
  overflow-y: auto;
  border-left: 1px solid var(--nv2-line);
  background: var(--nv2-panel-solid);
  box-shadow: -18px 0 48px color-mix(in srgb, var(--nv2-bg) 75%, transparent);
  animation: nv2-drawer-in 0.22s ease-out;
}

.nv2-history-drawer > header {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px;
  border-bottom: 1px solid var(--nv2-line);
  background: color-mix(in srgb, var(--nv2-panel-solid) 94%, transparent);
  backdrop-filter: blur(12px);
}

.nv2-history-drawer h2 {
  margin: 4px 0 0;
}

.nv2-history-list {
  padding: 12px;
}

.nv2-history-list > button {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  width: 100%;
  margin-bottom: 8px;
  padding: 14px;
  color: var(--nv2-text);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.7);
  background: color-mix(in srgb, var(--nv2-bg) 55%, transparent);
  text-align: left;
  cursor: pointer;
}

.nv2-history-list > button:hover {
  border-color: color-mix(in srgb, var(--nv2-accent) 35%, var(--nv2-line));
}

.nv2-history-list > button > div {
  min-width: 0;
}

.nv2-history-list strong,
.nv2-history-list small {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.nv2-history-list small {
  margin-top: 4px;
  color: var(--nv2-muted);
}

.nv2-history-list em {
  color: var(--nv2-muted);
  font-size: 11px;
  font-style: normal;
}

.nv2-history-state {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--nv2-muted);
}

.nv2-history-state.is-running,
.nv2-history-state.is-queued,
.nv2-history-state.is-completed {
  background: var(--nv2-accent);
}

.nv2-rules-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1210;
  display: flex;
  justify-content: flex-end;
  background: color-mix(in srgb, var(--nv2-bg) 62%, transparent);
  backdrop-filter: blur(6px);
}

.nv2-rules-drawer {
  width: min(500px, 94vw);
  height: 100%;
  overflow-y: auto;
  border-left: 1px solid var(--nv2-line);
  background: var(--nv2-panel-solid);
  box-shadow: -18px 0 48px color-mix(in srgb, var(--nv2-bg) 75%, transparent);
  animation: nv2-drawer-in 0.22s ease-out;
}

.nv2-rules-drawer > header {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 20px;
  border-bottom: 1px solid var(--nv2-line);
  background: color-mix(in srgb, var(--nv2-panel-solid) 94%, transparent);
  backdrop-filter: blur(12px);
}

.nv2-rules-drawer h2,
.nv2-rules-drawer > header p {
  margin: 4px 0 0;
}

.nv2-rules-drawer > header p {
  max-width: 360px;
  color: var(--nv2-muted);
  font-size: 10px;
  line-height: 1.55;
}

.nv2-rules-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.nv2-rules-header-actions .nv2-button {
  min-height: 36px;
  padding: 0 12px;
  font-size: 10px;
}

.nv2-rules-boundary {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 14px 14px 0;
  padding: 11px 12px;
  color: color-mix(in srgb, var(--nv2-added) 74%, var(--nv2-text));
  border: 1px solid color-mix(in srgb, var(--nv2-added) 18%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.62);
  background: color-mix(in srgb, var(--nv2-added) 6%, transparent);
  font-size: 10px;
}

.nv2-rule-create {
  display: grid;
  gap: 14px;
  margin: 14px 14px 0;
  padding: 16px;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 30%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.76);
  background: color-mix(in srgb, var(--nv2-accent) 5%, var(--nv2-bg));
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--nv2-accent) 76%, transparent);
}

.nv2-rule-create > header,
.nv2-rule-create > footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.nv2-rule-create > header h3,
.nv2-rule-create > header small,
.nv2-rule-create > p {
  margin: 0;
}

.nv2-rule-create > header h3 {
  margin-top: 3px;
  color: var(--nv2-text);
  font-size: 16px;
}

.nv2-rule-create > header small {
  max-width: 150px;
  color: var(--nv2-muted);
  font-size: 9px;
  line-height: 1.5;
  text-align: right;
}

.nv2-rule-create label {
  display: grid;
  gap: 7px;
  min-width: 0;
  color: var(--nv2-muted);
  font-size: 10px;
  font-weight: 700;
}

.nv2-rule-create input,
.nv2-rule-create select,
.nv2-rule-create textarea {
  width: 100%;
  min-width: 0;
  color: var(--nv2-text);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.58);
  outline: none;
  background: color-mix(in srgb, var(--nv2-bg) 82%, transparent);
  font: inherit;
  font-size: 11px;
  transition: var(--transition, 0.25s ease-out);
}

.nv2-rule-create input,
.nv2-rule-create select {
  height: 40px;
  padding: 0 11px;
}

.nv2-rule-create textarea {
  min-height: 94px;
  padding: 11px;
  resize: vertical;
  line-height: 1.65;
}

.nv2-rule-create input:focus,
.nv2-rule-create select:focus,
.nv2-rule-create textarea:focus {
  border-color: var(--nv2-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--nv2-accent) 12%, transparent);
}

.nv2-rule-create-content {
  position: relative;
}

.nv2-rule-create-content > small {
  position: absolute;
  right: 10px;
  bottom: 8px;
  color: var(--nv2-muted);
  font-size: 8px;
  font-weight: 400;
}

.nv2-rule-create-scope {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.nv2-rule-create > p {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  color: var(--nv2-muted);
  font-size: 9px;
  line-height: 1.55;
}

.nv2-rule-create > footer {
  justify-content: flex-end;
}

.nv2-rule-create > footer .nv2-button {
  min-height: 38px;
  padding: 0 13px;
  font-size: 10px;
}

.nv2-rules-list {
  display: grid;
  gap: 10px;
  padding: 14px;
}

.nv2-rule-entry {
  display: grid;
  gap: 11px;
  padding: 14px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.7);
  background: color-mix(in srgb, var(--nv2-bg) 54%, transparent);
}

.nv2-rule-entry.is-active {
  border-color: color-mix(in srgb, var(--nv2-added) 24%, var(--nv2-line));
}

.nv2-rule-entry.is-disabled {
  opacity: 0.68;
}

.nv2-rule-entry > header,
.nv2-rule-entry > footer,
.nv2-rule-entry > footer > div {
  display: flex;
  align-items: center;
}

.nv2-rule-entry > header,
.nv2-rule-entry > footer {
  justify-content: space-between;
  gap: 12px;
}

.nv2-rule-entry > header span,
.nv2-rule-entry > header em {
  padding: 4px 7px;
  border-radius: 999px;
  font-size: 9px;
  font-style: normal;
}

.nv2-rule-entry > header span {
  color: var(--nv2-muted);
  background: color-mix(in srgb, var(--nv2-muted) 8%, transparent);
}

.nv2-rule-entry > header em {
  color: color-mix(in srgb, var(--nv2-added) 72%, var(--nv2-text));
  background: color-mix(in srgb, var(--nv2-added) 8%, transparent);
}

.nv2-rule-entry.is-disabled > header em {
  color: var(--nv2-muted);
  background: color-mix(in srgb, var(--nv2-muted) 8%, transparent);
}

.nv2-rule-entry > p {
  margin: 0;
  color: color-mix(in srgb, var(--nv2-text) 88%, var(--nv2-muted));
  font-size: 12px;
  line-height: 1.7;
  white-space: pre-wrap;
}

.nv2-rule-entry > footer small {
  color: var(--nv2-muted);
  font-size: 9px;
}

.nv2-rule-entry > footer > div {
  gap: 7px;
}

.nv2-rule-entry > footer button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 8px;
  color: var(--nv2-muted);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.48);
  background: transparent;
  font: inherit;
  font-size: 9px;
  cursor: pointer;
}

.nv2-rule-entry > footer button:hover {
  color: var(--nv2-text);
  border-color: color-mix(in srgb, var(--nv2-accent) 30%, var(--nv2-line));
}

.nv2-rule-entry > footer button.is-danger:hover {
  color: color-mix(in srgb, var(--nv2-removed) 78%, var(--nv2-text));
  border-color: color-mix(in srgb, var(--nv2-removed) 36%, var(--nv2-line));
}

.nv2-rule-entry > footer button:disabled {
  cursor: wait;
  opacity: 0.48;
}

.nv2-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 420px;
  color: var(--nv2-muted);
}

.nv2-loading i {
  width: 24px;
  height: 24px;
  border: 2px solid var(--nv2-line);
  border-top-color: var(--nv2-accent);
  border-radius: 50%;
  animation: nv2-spin 0.9s linear infinite;
}

.nv2-home-spotlight {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 22px;
  min-height: 178px;
  margin-top: 18px;
  padding: 28px 32px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--primary, #f2f2f2) 35%, var(--glass-border, rgba(242, 247, 249, 0.08)));
  border-left: 6px solid var(--primary, #f2f2f2);
  border-radius: var(--radius, 1rem);
  background:
    linear-gradient(105deg, color-mix(in srgb, var(--primary, #f2f2f2) 8%, transparent), transparent 42%),
    var(--glass-bg, rgba(30, 30, 34, 0.7));
  cursor: pointer;
}

.nv2-home-mark {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 76px;
  height: 76px;
  color: var(--primary, #f2f2f2);
  border: 1px solid color-mix(in srgb, var(--primary, #f2f2f2) 38%, var(--glass-border, rgba(242, 247, 249, 0.08)));
  border-radius: calc(var(--radius, 1rem) * 0.9);
  background: color-mix(in srgb, var(--primary, #f2f2f2) 8%, transparent);
}

.nv2-home-mark svg {
  width: 38px;
  height: 38px;
}

.nv2-home-mark > span {
  position: absolute;
  top: -9px;
  right: -9px;
  padding: 4px 7px;
  color: var(--bg-primary, #0d0d0f);
  border-radius: 999px;
  background: var(--primary, #f2f2f2);
  font-size: 10px;
  font-weight: 900;
}

.nv2-home-copy h2,
.nv2-home-copy p {
  margin: 0;
}

.nv2-home-copy h2 {
  margin-top: 5px;
  font-size: clamp(25px, 2.2vw, 36px);
}

.nv2-home-copy .nv2-home-slogan {
  margin-top: 4px;
  font-size: 17px;
  font-weight: 700;
}

.nv2-home-copy .nv2-home-description {
  margin-top: 6px;
  color: var(--text-secondary, #aaa);
}

.nv2-home-track {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 15px;
  color: var(--text-secondary, #aaa);
  font-size: 11px;
}

.nv2-home-track span b {
  margin-right: 4px;
  color: var(--primary, #f2f2f2);
}

.nv2-home-track i {
  width: 28px;
  height: 1px;
  background: color-mix(in srgb, var(--primary, #f2f2f2) 35%, var(--glass-border, rgba(242, 247, 249, 0.08)));
}

.nv2-home-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 17px;
  color: var(--bg-primary, #0d0d0f);
  border-radius: calc(var(--radius, 1rem) * 0.72);
  background: var(--primary, #f2f2f2);
  font-weight: 800;
  white-space: nowrap;
}

.nv2-home-spotlight:hover {
  border-color: color-mix(in srgb, var(--primary, #f2f2f2) 62%, var(--glass-border, rgba(242, 247, 249, 0.08)));
  transform: translateY(-2px);
}

@keyframes nv2-spin {
  to { transform: rotate(360deg); }
}

@keyframes nv2-pulse {
  50% { opacity: 0.55; }
}

@keyframes nv2-drawer-in {
  from { transform: translateX(40px); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}

.nv2-note-list-heading > button {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin-top: 3px;
  padding: 0 8px;
  color: color-mix(in srgb, var(--nv2-accent) 80%, var(--nv2-text));
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 28%, var(--nv2-line));
  border-radius: 999px;
  background: color-mix(in srgb, var(--nv2-accent) 6%, transparent);
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}

.nv2-note-list-heading > button:hover,
.nv2-note-list-heading > button.is-active {
  color: var(--nv2-text);
  border-color: color-mix(in srgb, var(--nv2-accent) 58%, var(--nv2-line));
  background: color-mix(in srgb, var(--nv2-accent) 13%, transparent);
}

.nv2-note-list-heading > button .nv2-icon {
  width: 14px;
  height: 14px;
}

.nv2-batch-compose-body {
  display: grid;
  gap: 20px;
  padding: 24px 26px 28px;
}

.nv2-batch-selection,
.nv2-batch-instruction {
  display: grid;
  gap: 12px;
}

.nv2-batch-selection > header,
.nv2-batch-instruction > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}

.nv2-batch-selection > header > div {
  display: grid;
  gap: 4px;
}

.nv2-batch-selection > header span,
.nv2-batch-instruction > header span {
  color: var(--nv2-accent);
  font: 800 10px ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: 0.1em;
}

.nv2-batch-selection > header strong {
  color: var(--nv2-text);
  font-size: 16px;
}

.nv2-batch-selection > header small,
.nv2-batch-instruction > header small {
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-batch-selection > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.nv2-batch-selection label {
  min-width: 0;
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 13px;
  color: var(--nv2-text);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.66);
  background: color-mix(in srgb, var(--nv2-bg) 50%, transparent);
  cursor: pointer;
  transition: var(--transition, 0.25s ease-out);
}

.nv2-batch-selection label:hover,
.nv2-batch-selection label.is-selected {
  border-color: color-mix(in srgb, var(--nv2-accent) 42%, var(--nv2-line));
  background: color-mix(in srgb, var(--nv2-accent) 7%, transparent);
}

.nv2-batch-selection input,
.nv2-batch-review-item > header input {
  width: 17px;
  height: 17px;
  accent-color: var(--nv2-accent);
}

.nv2-batch-selection label > span {
  color: var(--nv2-accent);
  font: 800 11px ui-monospace, SFMono-Regular, Consolas, monospace;
}

.nv2-batch-selection label > div {
  min-width: 0;
}

.nv2-batch-selection label strong,
.nv2-batch-selection label small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nv2-batch-selection label small {
  margin-top: 4px;
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-batch-selection label > i {
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  color: var(--nv2-accent);
  font-style: normal;
}

.nv2-batch-selection label > i .nv2-icon {
  width: 17px;
  height: 17px;
}

.nv2-batch-instruction textarea {
  width: 100%;
  min-height: 150px;
  resize: vertical;
  padding: 14px;
  color: var(--nv2-text);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.66);
  outline: 0;
  background: color-mix(in srgb, var(--nv2-bg) 58%, transparent);
  font: inherit;
  line-height: 1.75;
  transition: var(--transition, 0.25s ease-out);
}

.nv2-batch-instruction textarea:focus {
  border-color: color-mix(in srgb, var(--nv2-accent) 62%, var(--nv2-line));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--nv2-accent) 9%, transparent);
}

.nv2-batch-instruction > div {
  display: flex;
  justify-content: flex-end;
}

.nv2-batch-instruction > div small {
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-batch-progress-summary {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 28px 26px 20px;
}

.nv2-batch-progress-summary > div:last-child {
  min-width: 0;
}

.nv2-batch-progress-summary > div:last-child > span {
  color: var(--nv2-accent);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
}

.nv2-batch-progress-summary h3 {
  margin: 5px 0;
  color: var(--nv2-text);
  font-size: 24px;
}

.nv2-batch-progress-summary p {
  margin: 0;
  color: var(--nv2-muted);
  line-height: 1.65;
}

.nv2-batch-progress.is-failed .nv2-progress-orbit {
  border-color: color-mix(in srgb, var(--nv2-danger) 48%, var(--nv2-line));
}

.nv2-batch-item-progress {
  display: grid;
  padding: 0 26px 22px;
}

.nv2-batch-item-progress article {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 13px 0;
  border-top: 1px solid var(--nv2-line);
}

.nv2-batch-item-progress article > span {
  color: var(--nv2-accent);
  font: 800 11px ui-monospace, SFMono-Regular, Consolas, monospace;
}

.nv2-batch-item-progress article > div {
  min-width: 0;
}

.nv2-batch-item-progress strong,
.nv2-batch-item-progress small {
  display: block;
}

.nv2-batch-item-progress small {
  margin-top: 4px;
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-batch-item-progress em {
  padding: 5px 8px;
  color: var(--nv2-muted);
  border: 1px solid var(--nv2-line);
  border-radius: 999px;
  font-size: 9px;
  font-style: normal;
}

.nv2-batch-item-progress article.is-ready em,
.nv2-batch-item-progress article.is-no_change em {
  color: color-mix(in srgb, var(--nv2-added) 76%, var(--nv2-text));
  border-color: color-mix(in srgb, var(--nv2-added) 28%, var(--nv2-line));
}

.nv2-batch-item-progress article.is-failed em {
  color: color-mix(in srgb, var(--nv2-danger) 78%, var(--nv2-text));
  border-color: color-mix(in srgb, var(--nv2-danger) 30%, var(--nv2-line));
}

.nv2-batch-review-list {
  display: grid;
  gap: 12px;
  padding: 22px 26px 28px;
}

.nv2-batch-review-item {
  overflow: hidden;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.72);
  background: color-mix(in srgb, var(--nv2-bg) 44%, transparent);
}

.nv2-batch-review-item.is-selected {
  border-color: color-mix(in srgb, var(--nv2-accent) 46%, var(--nv2-line));
  box-shadow: inset 3px 0 0 var(--nv2-accent);
}

.nv2-batch-review-item > header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--nv2-line);
}

.nv2-batch-review-item > header > label {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--nv2-accent);
  font: 800 11px ui-monospace, SFMono-Regular, Consolas, monospace;
}

.nv2-batch-review-item > header > div {
  min-width: 0;
}

.nv2-batch-review-item > header strong,
.nv2-batch-review-item > header small {
  display: block;
}

.nv2-batch-review-item > header small {
  margin-top: 4px;
  color: var(--nv2-muted);
  font-size: 10px;
  line-height: 1.5;
}

.nv2-batch-review-item > header em {
  padding: 5px 8px;
  color: var(--nv2-accent);
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 24%, var(--nv2-line));
  border-radius: 999px;
  font-size: 9px;
  font-style: normal;
}

.nv2-batch-review-item.is-failed > header em {
  color: color-mix(in srgb, var(--nv2-danger) 78%, var(--nv2-text));
  border-color: color-mix(in srgb, var(--nv2-danger) 28%, var(--nv2-line));
}

.nv2-batch-diff {
  display: grid;
  gap: 10px;
  padding: 14px;
}

.nv2-batch-diff > section {
  overflow: hidden;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.58);
}

.nv2-batch-diff > section > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 11px;
  border-bottom: 1px solid var(--nv2-line);
  background: color-mix(in srgb, var(--nv2-panel-strong) 72%, transparent);
}

.nv2-batch-diff > section > header strong {
  font-size: 11px;
}

.nv2-batch-diff > section > header span {
  color: var(--nv2-accent);
  font-size: 9px;
}

.nv2-batch-diff > section > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nv2-batch-diff article {
  min-width: 0;
  padding: 11px 12px;
}

.nv2-batch-diff article + article {
  border-left: 1px solid var(--nv2-line);
}

.nv2-batch-diff article > span {
  color: var(--nv2-muted);
  font-size: 9px;
}

.nv2-batch-diff article > p {
  max-height: 170px;
  overflow: auto;
  margin: 6px 0 0;
  color: color-mix(in srgb, var(--nv2-text) 88%, var(--nv2-muted));
  font-size: 12px;
  line-height: 1.7;
  white-space: pre-wrap;
}

.nv2-batch-diff article:last-child > p {
  color: color-mix(in srgb, var(--nv2-added) 72%, var(--nv2-text));
}

.nv2-batch-item-message {
  margin: 0;
  padding: 14px 16px;
  color: var(--nv2-muted);
  font-size: 12px;
}

.nv2-batch-review-actions > div {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.nv2-batch-review-actions > div > span {
  max-width: 320px;
  color: var(--nv2-muted);
  font-size: 10px;
  line-height: 1.55;
  text-align: right;
}

.nv2-batch-side-instruction {
  display: grid;
  gap: 7px;
  margin: 14px 0;
  padding: 13px;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 22%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.7);
  background: color-mix(in srgb, var(--nv2-accent) 5%, transparent);
}

.nv2-batch-side-instruction > span {
  color: var(--nv2-accent);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.nv2-batch-side-instruction p {
  max-height: 150px;
  overflow: auto;
  margin: 0;
  color: var(--nv2-muted);
  font-size: 11px;
  line-height: 1.65;
  white-space: pre-wrap;
}

@media (max-width: 1320px) {
  .nv2-task-layout,
  .nv2-result-layout {
    grid-template-columns: 220px minmax(560px, 1fr);
  }

  .nv2-task-layout > .nv2-side-card,
  .nv2-result-side {
    position: static;
    grid-column: 1 / -1;
    max-height: none;
  }
}

@media (max-width: 1080px) {
  #note-v2-view {
    padding: 22px 20px 52px;
  }

  .nv2-header {
    grid-template-columns: auto auto minmax(0, 1fr);
    grid-template-areas:
      "back mark title"
      "actions actions actions"
      "rail rail rail";
  }

  .nv2-header-actions {
    justify-content: flex-start;
  }

  .nv2-compose-layout,
  .nv2-brief-layout {
    grid-template-columns: 1fr;
  }

  .nv2-side-card {
    position: static;
  }
}

@media (max-width: 980px) {
  .nv2-task-layout,
  .nv2-result-layout {
    grid-template-columns: 1fr;
  }

  .nv2-context-panel,
  .nv2-result-side {
    position: static;
    max-height: none;
  }

  .nv2-context-panel {
    display: grid;
    grid-template-columns: minmax(180px, 0.72fr) minmax(0, 1.28fr);
    gap: 0 18px;
  }

  .nv2-context-panel > .nv2-eyebrow,
  .nv2-context-panel > h2,
  .nv2-context-panel > dl,
  .nv2-context-panel > .nv2-context-link {
    grid-column: 1;
  }

  .nv2-context-panel > .nv2-context-section {
    grid-column: 2;
  }
}

@media (max-width: 760px) {
  #note-v2-view {
    padding: 14px 12px 40px;
  }

  .nv2-header {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
      "back title"
      "mark title"
      "actions actions"
      "rail rail";
    padding: 18px;
  }

  .nv2-brand-mark {
    width: 42px;
    height: 42px;
  }

  .nv2-title-block h1 {
    font-size: 24px;
  }

  .nv2-title-block p {
    font-size: 12px;
  }

  .nv2-header-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nv2-status-chip {
    grid-column: 1 / -1;
  }

  .nv2-stage-rail {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 8px;
  }

  .nv2-stage:nth-child(n + 4) {
    display: none;
  }

  .nv2-form-grid,
  .nv2-brief-grid,
  .nv2-brief-sections,
  .nv2-rule-groups,
  .nv2-note-meta {
    grid-template-columns: 1fr;
  }

  .nv2-source-switch {
    grid-template-columns: 1fr;
  }

  .nv2-draft-upload {
    grid-template-columns: 1fr;
  }

  .nv2-draft-upload-button {
    width: 100%;
  }

  .nv2-batch-selection > header,
  .nv2-batch-instruction > header,
  .nv2-batch-progress-summary,
  .nv2-batch-review-actions > div {
    align-items: stretch;
    flex-direction: column;
  }

  .nv2-batch-selection > div,
  .nv2-batch-diff > section > div {
    grid-template-columns: 1fr;
  }

  .nv2-batch-diff article + article {
    border-top: 1px solid var(--nv2-line);
    border-left: 0;
  }

  .nv2-batch-review-item > header {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .nv2-batch-review-item > header > em {
    grid-column: 2;
    justify-self: start;
  }

  .nv2-batch-review-actions > div > span {
    max-width: none;
    text-align: left;
  }

  .nv2-count-row,
  .nv2-panel-actions,
  .nv2-result-heading,
  .nv2-result-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .nv2-heading-actions,
  .nv2-result-panel.is-editing .nv2-panel-actions > div,
  .nv2-refinement-actions > div {
    align-items: stretch;
    flex-direction: column;
  }

  .nv2-heading-actions .nv2-button,
  .nv2-result-panel.is-editing .nv2-panel-actions .nv2-button,
  .nv2-refinement-actions .nv2-button {
    width: 100%;
  }

  .nv2-heading-actions .nv2-button {
    flex-basis: auto;
  }

  .nv2-refinement-running {
    align-items: flex-start;
    flex-direction: column;
  }

  .nv2-refinement-instruction {
    grid-template-columns: 1fr;
  }

  .nv2-rule-capture > header,
  .nv2-rule-entry > footer {
    align-items: stretch;
    flex-direction: column;
  }

  .nv2-rule-capture > header > button {
    width: 100%;
  }

  .nv2-rule-capture-fields {
    grid-template-columns: 1fr;
  }

  .nv2-rule-create-scope {
    grid-template-columns: 1fr;
  }

  .nv2-rule-create > header {
    align-items: flex-start;
    flex-direction: column;
  }

  .nv2-rule-create > header small {
    max-width: none;
    text-align: left;
  }

  .nv2-rule-entry > footer > div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nv2-rule-entry > footer button {
    justify-content: center;
  }

  .nv2-editor-form,
  .nv2-compare-head {
    grid-template-columns: 1fr;
  }

  .nv2-editor-form {
    padding: 20px 18px 24px;
  }

  .nv2-compare-field > div {
    grid-template-columns: 1fr;
  }

  .nv2-compare-field article + article {
    border-top: 1px solid var(--nv2-line);
    border-left: 0;
  }

  .nv2-count-control {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .nv2-count-control button {
    min-width: 0;
    padding: 0 4px;
  }

  .nv2-result-layout {
    grid-template-columns: 1fr;
  }

  .nv2-context-panel {
    display: block;
  }

  .nv2-note-list {
    display: flex;
    overflow-x: auto;
  }

  .nv2-note-list-heading {
    min-width: 140px;
  }

  .nv2-note-list > button {
    min-width: 220px;
    border-right: 1px solid var(--nv2-line);
  }

  .nv2-home-spotlight {
    grid-template-columns: auto minmax(0, 1fr);
    padding: 22px;
  }

  .nv2-home-cta {
    grid-column: 1 / -1;
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nv2-progress-orbit i,
  .nv2-loading i,
  .nv2-status-chip.is-running i,
  .nv2-history-drawer,
  .nv2-rules-drawer {
    animation: none;
  }
}

.nv2-project-binding {
  display: grid;
  gap: 16px;
  margin: 22px 0;
  padding: 18px;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 24%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.86);
  background:
    linear-gradient(110deg, color-mix(in srgb, var(--nv2-accent) 6%, transparent), transparent 42%),
    color-mix(in srgb, var(--nv2-panel-solid) 84%, transparent);
}

.nv2-project-binding > header,
.nv2-project-uploader > header,
.nv2-project-import-preview > header,
.nv2-project-import-history > header,
.nv2-project-rule-page > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.nv2-project-binding > header span,
.nv2-project-uploader > header span,
.nv2-project-import-preview > header span,
.nv2-project-import-history > header span,
.nv2-project-rule-page > header span,
.nv2-project-overview > section > header span {
  display: block;
  color: var(--nv2-accent);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.nv2-project-binding h3,
.nv2-project-uploader h3,
.nv2-project-import-preview h3,
.nv2-project-import-history h3,
.nv2-project-rule-page h3,
.nv2-project-overview h3 {
  margin: 4px 0 0;
  color: var(--nv2-text);
}

.nv2-project-binding > .nv2-field {
  margin: 0;
}

.nv2-project-state {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 8px 11px;
  color: var(--nv2-muted);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.58);
  background: color-mix(in srgb, var(--nv2-panel-solid) 78%, transparent);
  font-size: 12px;
}

.nv2-project-state.is-ready {
  color: var(--nv2-added);
  border-color: color-mix(in srgb, var(--nv2-added) 34%, var(--nv2-line));
}

.nv2-project-state .nv2-icon {
  width: 15px;
  height: 15px;
}

.nv2-project-state.is-loading i,
.nv2-project-admin-loading i {
  width: 14px;
  height: 14px;
  border: 2px solid color-mix(in srgb, var(--nv2-accent) 28%, transparent);
  border-top-color: var(--nv2-accent);
  border-radius: 50%;
  animation: nv2-spin 0.8s linear infinite;
}

.nv2-project-scope-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.nv2-project-selling-points {
  display: grid;
  gap: 10px;
}

.nv2-project-selling-points > span {
  color: var(--nv2-muted);
  font-size: 12px;
  font-weight: 700;
}

.nv2-project-selling-points > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.nv2-project-selling-points article {
  display: grid;
  gap: 9px;
  padding: 11px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.58);
  background: color-mix(in srgb, var(--nv2-panel-solid) 88%, transparent);
}

.nv2-project-selling-points article.is-selected {
  border-color: color-mix(in srgb, var(--nv2-accent) 42%, var(--nv2-line));
}

.nv2-project-selling-points label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 2px 9px;
  align-items: start;
  cursor: pointer;
}

.nv2-project-selling-points input {
  margin-top: 3px;
  accent-color: var(--nv2-accent);
}

.nv2-project-selling-points label > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.nv2-project-selling-points select {
  width: 100%;
  min-height: 34px;
  padding: 6px 9px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.46);
  color: var(--nv2-text);
  background: var(--nv2-input);
}

.nv2-selling-point-guide,
.nv2-selling-point-warning {
  margin: 0;
  color: var(--nv2-muted);
  font-size: 11px;
  line-height: 1.6;
}

.nv2-selling-point-warning {
  padding: 9px 11px;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 42%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.5);
  color: var(--nv2-text);
  background: color-mix(in srgb, var(--nv2-accent) 8%, transparent);
}

.nv2-selling-point-plan {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.nv2-selling-point-plan article {
  display: grid;
  gap: 5px;
  padding: 12px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.58);
  background: color-mix(in srgb, var(--nv2-panel-solid) 88%, transparent);
}

.nv2-selling-point-plan strong,
.nv2-selling-point-plan span,
.nv2-selling-point-plan small {
  color: var(--nv2-text);
  line-height: 1.55;
}

.nv2-selling-point-plan small {
  color: var(--nv2-muted);
}

.nv2-evidence-fields {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  gap: 12px;
  padding: 14px;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 32%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.68);
  background: color-mix(in srgb, var(--nv2-accent) 6%, var(--nv2-panel-solid));
}

.nv2-evidence-fields > p {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--nv2-muted);
  font-size: 11px;
  line-height: 1.6;
}

.nv2-project-selling-points strong {
  color: var(--nv2-text);
  font-size: 12px;
}

.nv2-project-selling-points small {
  overflow: hidden;
  color: var(--nv2-muted);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nv2-project-admin-layer {
  position: fixed;
  z-index: 12050;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 28px;
  background: color-mix(in srgb, var(--nv2-bg) 80%, transparent);
  backdrop-filter: blur(12px);
}

.nv2-project-admin {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  width: min(1320px, 100%);
  height: min(86vh, 900px);
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 24%, var(--nv2-line));
  border-radius: var(--nv2-radius);
  background: var(--nv2-panel-solid);
  box-shadow: var(--glass-shadow);
}

.nv2-project-admin > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 24px;
  border-bottom: 1px solid var(--nv2-line);
  background: linear-gradient(110deg, color-mix(in srgb, var(--nv2-accent) 8%, transparent), transparent 45%);
}

.nv2-project-admin > header span {
  color: var(--nv2-accent);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.16em;
}

.nv2-project-admin > header h2 {
  margin: 4px 0;
  color: var(--nv2-text);
}

.nv2-project-admin > header p {
  margin: 0;
  color: var(--nv2-muted);
  font-size: 12px;
}

.nv2-project-admin > nav {
  display: flex;
  gap: 4px;
  padding: 8px 24px 0;
  border-bottom: 1px solid var(--nv2-line);
}

.nv2-project-admin > nav button {
  padding: 12px 16px;
  color: var(--nv2-muted);
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  cursor: pointer;
}

.nv2-project-admin > nav .nv2-project-permission-entry {
  margin-left: auto;
  color: var(--nv2-accent);
}

.nv2-project-admin > nav button.is-active {
  color: var(--nv2-text);
  border-bottom-color: var(--nv2-accent);
}

.nv2-project-admin > main {
  min-height: 0;
  overflow: auto;
  padding: 22px 24px 28px;
}

.nv2-project-admin-loading,
.nv2-project-admin-empty {
  display: grid;
  place-items: center;
  align-content: center;
  min-height: 280px;
  color: var(--nv2-muted);
  text-align: center;
}

.nv2-project-admin-empty > strong {
  color: color-mix(in srgb, var(--nv2-accent) 28%, transparent);
  font-size: 72px;
  line-height: 1;
}

.nv2-project-admin-empty h3 {
  margin: 12px 0 4px;
  color: var(--nv2-text);
}

.nv2-project-admin-empty p {
  margin: 0 0 18px;
}

.nv2-project-overview {
  display: grid;
  grid-template-columns: 310px minmax(0, 1fr);
  gap: 16px;
  min-height: 100%;
}

.nv2-project-overview > aside,
.nv2-project-overview > section,
.nv2-project-uploader,
.nv2-project-import-preview,
.nv2-project-import-history,
.nv2-project-rule-page {
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.86);
  background: color-mix(in srgb, var(--nv2-panel) 72%, transparent);
}

.nv2-project-overview > aside {
  overflow: hidden;
}

.nv2-project-overview > aside > header {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 16px;
  border-bottom: 1px solid var(--nv2-line);
}

.nv2-project-overview > aside > header strong {
  color: var(--nv2-accent);
  font-size: 28px;
}

.nv2-project-overview > aside > button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 14px 16px;
  color: var(--nv2-muted);
  text-align: left;
  border: 0;
  border-bottom: 1px solid var(--nv2-line);
  background: transparent;
  cursor: pointer;
}

.nv2-project-overview > aside > button.is-active {
  color: var(--nv2-text);
  background: color-mix(in srgb, var(--nv2-accent) 9%, transparent);
}

.nv2-project-overview > aside > button span,
.nv2-project-overview > aside > button strong,
.nv2-project-overview > aside > button small {
  display: block;
}

.nv2-project-overview > aside > button small,
.nv2-project-overview > aside > button em {
  margin-top: 3px;
  color: var(--nv2-muted);
  font-size: 10px;
  font-style: normal;
}

.nv2-project-overview > section {
  padding: 20px;
}

.nv2-project-overview > section > header {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--nv2-line);
}

.nv2-project-overview > section > header p {
  margin: 4px 0 0;
  color: var(--nv2-muted);
}

.nv2-project-overview > section > header b {
  color: var(--nv2-muted);
  font-size: 11px;
}

.nv2-project-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0;
}

.nv2-project-stat-grid article {
  padding: 16px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.58);
  background: color-mix(in srgb, var(--nv2-panel-solid) 86%, transparent);
}

.nv2-project-stat-grid strong,
.nv2-project-stat-grid span {
  display: block;
}

.nv2-project-stat-grid strong {
  color: var(--nv2-text);
  font-size: 24px;
}

.nv2-project-stat-grid span {
  margin-top: 5px;
  color: var(--nv2-muted);
  font-size: 11px;
}

.nv2-project-boundary,
.nv2-project-import-guidance {
  padding: 14px;
  color: var(--nv2-muted);
  border: 1px solid color-mix(in srgb, var(--nv2-added) 24%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.58);
  background: color-mix(in srgb, var(--nv2-added) 6%, transparent);
}

.nv2-project-boundary p {
  margin: 5px 0 0;
}

.nv2-project-import-page {
  display: grid;
  grid-template-columns: minmax(320px, 0.72fr) minmax(480px, 1.28fr);
  gap: 16px;
}

.nv2-project-uploader,
.nv2-project-import-preview,
.nv2-project-import-history,
.nv2-project-rule-page {
  padding: 20px;
}

.nv2-project-uploader > header p,
.nv2-project-rule-page > header p {
  margin: 5px 0 0;
  color: var(--nv2-muted);
  font-size: 12px;
}

.nv2-project-uploader > header b {
  padding: 5px 8px;
  color: var(--nv2-accent);
  border: 1px solid color-mix(in srgb, var(--nv2-accent) 35%, var(--nv2-line));
  border-radius: 999px;
  font-size: 10px;
}

.nv2-project-uploader > label {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 24px 0 14px;
  padding: 20px;
  border: 1px dashed color-mix(in srgb, var(--nv2-accent) 35%, var(--nv2-line));
  border-radius: calc(var(--nv2-radius) * 0.72);
  background: color-mix(in srgb, var(--nv2-panel-solid) 80%, transparent);
  cursor: pointer;
}

.nv2-project-uploader > label.has-file {
  border-style: solid;
  background: color-mix(in srgb, var(--nv2-accent) 7%, var(--nv2-panel-solid));
}

.nv2-project-uploader > label input {
  display: none;
}

.nv2-project-uploader > label > span {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  color: var(--nv2-accent);
  border-radius: calc(var(--nv2-radius) * 0.6);
  background: color-mix(in srgb, var(--nv2-accent) 10%, transparent);
}

.nv2-project-uploader > label strong,
.nv2-project-uploader > label small {
  display: block;
}

.nv2-project-uploader > label small {
  margin-top: 4px;
  color: var(--nv2-muted);
}

.nv2-project-uploader > footer,
.nv2-project-import-preview > footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
}

.nv2-project-import-preview > header em,
.nv2-project-import-history > article > em {
  padding: 5px 8px;
  color: var(--nv2-muted);
  border: 1px solid var(--nv2-line);
  border-radius: 999px;
  font-size: 10px;
  font-style: normal;
}

.nv2-project-import-preview > header em.is-complete,
.nv2-project-import-history > article > em.is-complete {
  color: var(--nv2-added);
  border-color: color-mix(in srgb, var(--nv2-added) 35%, var(--nv2-line));
}

.nv2-project-import-preview > header em.has-error,
.nv2-project-import-history > article > em.has-error {
  color: var(--nv2-danger);
  border-color: color-mix(in srgb, var(--nv2-danger) 35%, var(--nv2-line));
}

.nv2-project-import-metrics {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 18px 0;
}

.nv2-project-import-metrics article {
  padding: 12px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.5);
  background: color-mix(in srgb, var(--nv2-panel-solid) 84%, transparent);
}

.nv2-project-import-metrics strong,
.nv2-project-import-metrics span {
  display: block;
}

.nv2-project-import-metrics strong {
  font-size: 22px;
}

.nv2-project-import-metrics span {
  margin-top: 4px;
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-project-import-metrics article.has-error strong {
  color: var(--nv2-danger);
}

.nv2-project-import-issues {
  display: grid;
  gap: 8px;
  margin: 14px 0;
}

.nv2-project-import-issues article {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.5);
}

.nv2-project-import-issues article.has-error {
  border-color: color-mix(in srgb, var(--nv2-danger) 36%, var(--nv2-line));
}

.nv2-project-import-issues article > span {
  color: var(--nv2-accent);
  font-size: 10px;
}

.nv2-project-import-issues article.has-error > span {
  color: var(--nv2-danger);
}

.nv2-project-import-issues small,
.nv2-project-import-preview > footer small {
  display: block;
  margin-top: 4px;
  color: var(--nv2-muted);
}

.nv2-project-import-preview details {
  margin-top: 14px;
  color: var(--nv2-muted);
}

.nv2-project-import-preview details > div {
  display: grid;
  gap: 6px;
  max-height: 230px;
  margin-top: 10px;
  overflow: auto;
}

.nv2-project-import-preview details article {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 8px;
  padding: 8px;
  color: var(--nv2-text);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.45);
}

.nv2-project-import-preview details article span {
  color: var(--nv2-muted);
  font-size: 10px;
}

.nv2-project-import-preview details article span.is-insert {
  color: var(--nv2-added);
}

.nv2-project-import-preview details article span.is-update {
  color: var(--nv2-accent);
}

.nv2-project-import-history > header {
  padding-bottom: 16px;
  border-bottom: 1px solid var(--nv2-line);
}

.nv2-project-import-history > article {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px solid var(--nv2-line);
}

.nv2-project-import-history > article strong,
.nv2-project-import-history > article small {
  display: block;
}

.nv2-project-import-history > article small {
  margin-top: 4px;
  color: var(--nv2-muted);
}

.nv2-project-import-history > article footer {
  display: flex;
  gap: 8px;
}

.nv2-project-rule-page > header > div:last-child {
  display: flex;
  gap: 8px;
}

.nv2-project-rule-page select {
  min-width: 150px;
  padding: 9px 12px;
  color: var(--nv2-text);
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.52);
  background: var(--nv2-panel-solid);
}

.nv2-project-rule-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 18px;
}

.nv2-project-rule-list > article {
  display: grid;
  gap: 10px;
  padding: 15px;
  border: 1px solid var(--nv2-line);
  border-radius: calc(var(--nv2-radius) * 0.65);
  background: color-mix(in srgb, var(--nv2-panel-solid) 85%, transparent);
}

.nv2-project-rule-list > article.is-disabled {
  opacity: 0.62;
}

.nv2-project-rule-list article > header,
.nv2-project-rule-list article > footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.nv2-project-rule-list article > header span,
.nv2-project-rule-list article > header em,
.nv2-project-rule-list article > footer small {
  color: var(--nv2-muted);
  font-size: 10px;
  font-style: normal;
}

.nv2-project-rule-list article p {
  margin: 0;
  color: var(--nv2-text);
  line-height: 1.65;
}

@media (max-width: 980px) {
  .nv2-project-admin-layer {
    padding: 10px;
  }

  .nv2-project-admin {
    height: calc(100vh - 20px);
  }

  .nv2-project-overview,
  .nv2-project-import-page {
    grid-template-columns: 1fr;
  }

  .nv2-project-stat-grid,
  .nv2-project-import-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nv2-project-rule-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .nv2-project-scope-grid,
  .nv2-project-selling-points > div,
  .nv2-selling-point-plan,
  .nv2-evidence-fields {
    grid-template-columns: 1fr;
  }

  .nv2-project-admin > header,
  .nv2-project-rule-page > header,
  .nv2-project-uploader > header,
  .nv2-project-import-preview > header,
  .nv2-project-import-preview > footer,
  .nv2-project-uploader > footer {
    align-items: stretch;
    flex-direction: column;
  }

  .nv2-project-admin > nav {
    overflow-x: auto;
  }

  .nv2-project-import-history > article {
    grid-template-columns: 1fr;
  }

  .nv2-project-import-history > article footer,
  .nv2-project-rule-page > header > div:last-child {
    display: grid;
    grid-template-columns: 1fr;
  }
}

/* 笔记类型字典管理 */
.nv2-glossary-panel { display: flex; flex-direction: column; gap: 14px; }
.nv2-glossary-panel > header h3 { margin: 2px 0 4px; }
.nv2-glossary-panel > header p { margin: 0; font-size: 12px; color: var(--nv2-muted); }
.nv2-glossary-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.nv2-glossary-list article { border: 1px solid var(--nv2-line); border-radius: 10px; padding: 12px; }
.nv2-glossary-list article.is-disabled { opacity: 0.6; }
.nv2-glossary-list article header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.nv2-glossary-list article header em { font-style: normal; font-size: 11px; color: var(--nv2-accent); }
.nv2-glossary-list article p { margin: 8px 0; font-size: 13px; line-height: 1.55; }
.nv2-glossary-list article footer { display: flex; gap: 6px; justify-content: flex-end; }
.nv2-glossary-editor { border: 1px solid var(--nv2-line); border-radius: 10px; padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.nv2-glossary-editor label { display: flex; flex-direction: column; gap: 4px; }
.nv2-glossary-editor footer { display: flex; justify-content: flex-end; gap: 8px; }
.nv2-glossary-empty { padding: 24px; text-align: center; color: var(--nv2-muted); }

/* 风格范本提炼 */
.nv2-style-template-section { margin-top: 12px; border: 1px solid var(--nv2-line); border-radius: 10px; padding: 10px 12px; grid-column: 1 / -1; }
.nv2-style-template-section summary { cursor: pointer; font-weight: 600; }
.nv2-style-template-section summary span { display: block; font-weight: 400; font-size: 12px; color: var(--nv2-muted); }
.nv2-style-template-body { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
.nv2-style-template-pick select { width: 100%; }
.nv2-style-divider { text-align: center; color: var(--nv2-muted); font-size: 12px; }
.nv2-style-template-manage { display: flex; flex-direction: column; gap: 8px; margin-top: 2px; }
.nv2-style-template-manage-title { font-size: 12px; color: var(--nv2-muted); }
.nv2-style-template-item { border: 1px solid var(--nv2-line); border-radius: 8px; padding: 8px 10px; cursor: pointer; display: flex; flex-direction: column; gap: 4px; transition: border-color .15s; }
.nv2-style-template-item:hover { border-color: var(--nv2-accent); }
.nv2-style-template-item.is-selected { border-color: var(--nv2-accent); background: rgba(184, 134, 11, 0.06); }
.nv2-style-template-item.is-selected .nv2-style-template-item-head strong { color: var(--nv2-accent); }
.nv2-style-template-item-head { display: flex; align-items: center; gap: 8px; min-width: 0; }
.nv2-style-template-item-head strong { font-weight: 600; }
.nv2-style-template-item-head em { font-size: 11px; color: var(--nv2-muted); font-style: normal; border: 1px solid var(--nv2-line); border-radius: 4px; padding: 0 4px; }
.nv2-style-template-item p { font-size: 12px; color: var(--nv2-muted); margin: 0; line-height: 1.5; overflow-wrap: anywhere; }
.nv2-style-template-delete { margin-left: auto; font-size: 12px; color: var(--nv2-danger); background: none; border: none; cursor: pointer; padding: 2px 4px; border-radius: 4px; flex: 0 0 auto; }
.nv2-style-template-delete:hover { background: rgba(224, 83, 92, 0.1); text-decoration: underline; }
.nv2-style-source-label { display: flex; flex-direction: column; gap: 4px; }
.nv2-style-source-label textarea { width: 100%; box-sizing: border-box; }
.nv2-style-source-actions { display: flex; gap: 8px; align-items: center; }
.nv2-style-source-actions select { flex: 1; }
.nv2-style-result { border: 1px solid var(--nv2-line); border-radius: 10px; padding: 12px; background: var(--nv2-panel); }
.nv2-style-result h4 { margin: 0 0 6px; font-size: 14px; }
.nv2-style-result p { margin: 0 0 8px; font-size: 13px; line-height: 1.6; white-space: pre-wrap; }
.nv2-style-save { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.nv2-style-save input { flex: 1; min-width: 140px; }
.nv2-style-result small { color: var(--nv2-muted); }
