:root {
  --bg: #f3f3f5;
  --surface: rgba(255, 255, 255, 0.86);
  --surface-soft: rgba(255, 255, 255, 0.58);
  --surface-strong: #111113;
  --surface-contrast: #1a1a1c;
  --text: #111114;
  --muted: #6a6a71;
  --line: rgba(17, 17, 20, 0.09);
  --line-strong: rgba(17, 17, 20, 0.18);
  --accent: #bc1127;
  --accent-soft: rgba(188, 17, 39, 0.08);
  --accent-strong: #960d20;
  --radius-xl: 32px;
  --radius-lg: 24px;
  --radius-md: 18px;
  --radius-sm: 12px;
  --shadow: 0 24px 60px rgba(17, 17, 20, 0.07);
  --shadow-soft: 0 8px 24px rgba(17, 17, 20, 0.05);
  --stage-insight: #f2f2f4;
  --stage-story: rgba(188, 17, 39, 0.08);
  --stage-visual: rgba(17, 17, 20, 0.08);
  --stage-polish: rgba(65, 122, 92, 0.12);
  --font-sans: "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Microsoft YaHei",
    -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --font-display: "SF Pro Display", "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC",
    "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

html,
body,
#app {
  min-height: 100%;
}

body {
  margin: 0;
  color: var(--text);
  background:
    radial-gradient(circle at top left, rgba(188, 17, 39, 0.06), transparent 18%),
    radial-gradient(circle at bottom right, rgba(17, 17, 20, 0.05), transparent 22%),
    linear-gradient(180deg, #f7f7f8 0%, #efeff1 100%);
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.62;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a,
button,
input,
textarea,
select {
  font: inherit;
}

input,
textarea,
select,
button {
  line-height: 1.4;
}

button {
  border: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

img,
svg {
  display: block;
  max-width: 100%;
}

.app-frame {
  min-height: 100vh;
}

.app-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
  padding: 1rem 1.5rem;
  background: rgba(247, 247, 248, 0.88);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(24px);
}

.app-content {
  width: min(1360px, calc(100% - 2rem));
  margin: 0 auto;
  padding: 1.5rem 0 2rem;
}

.brand-lockup {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.brand-lockup strong {
  display: block;
  font-size: 1.02rem;
  letter-spacing: -0.01em;
}

.brand-lockup span:last-child {
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.45;
}

.brand-mark {
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 8px rgba(184, 31, 50, 0.1);
  flex: none;
}

.header-nav,
.header-actions,
.button-row,
.topbar-actions,
.filter-chip-row,
.project-toolbar-row,
.share-actions,
.deliverable-item-actions,
.template-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.header-nav {
  align-items: center;
}

.header-actions {
  justify-content: flex-end;
}

.nav-link {
  padding: 0.62rem 0.92rem;
  border-radius: 999px;
  color: var(--muted);
  border: 1px solid transparent;
  font-size: 0.94rem;
  font-weight: 500;
  transition: border-color 160ms ease, color 160ms ease, background 160ms ease;
}

.nav-link:hover,
.nav-link.is-active {
  color: var(--text);
  background: var(--surface);
  border-color: var(--line);
}

.system-alert-banner {
  width: min(1360px, calc(100% - 2rem));
  margin: 1rem auto 0;
  padding: 0.9rem 1rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(184, 31, 50, 0.2);
  background: #fff3f4;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.system-alert-banner span {
  color: var(--muted);
  flex: 1;
}

.surface-card,
.modal-card,
.preview-card,
.template-list-item,
.catalog-button,
.case-card,
.template-manage-card,
.project-clean-card,
.project-clean-stat,
.template-essentials-card,
.outline-chip-card,
.source-reference-card,
.connection-item,
.analytics-event-card,
.restore-checkpoint-card,
.conflict-clean-card,
.share-node-card,
.project-row,
.issue-card,
.backup-preview-panel,
.backup-report-panel,
.restore-checkpoint-panel,
.analytics-panel,
.workspace-tool-block {
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  backdrop-filter: blur(22px);
}

.surface-card {
  padding: 1.2rem;
  border-radius: var(--radius-lg);
}

.stack-xl {
  display: grid;
  gap: 1rem;
}

.eyebrow,
.page-kicker,
.panel-eyebrow,
.template-category,
.preview-platform,
.card-kicker {
  margin: 0;
  color: var(--accent);
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: none;
}

h1,
h2,
h3,
h4 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1.18;
  word-break: keep-all;
}

h1 {
  font-size: clamp(2.1rem, 4.8vw, 3.3rem);
  line-height: 1.08;
}

h2 {
  font-size: clamp(1.55rem, 3vw, 2.2rem);
  line-height: 1.14;
}

h3 {
  font-size: 1.18rem;
  line-height: 1.2;
}

h4 {
  font-size: 1rem;
  line-height: 1.3;
}

p {
  line-height: 1.78;
}

.hero-lead,
.surface-card p,
.template-list-item p,
.case-card p,
.preview-subtitle,
.preview-footer,
.analytics-event-card p,
.project-clean-card p,
.share-pack-header span,
.share-node-card p,
.empty-state-card p,
.outline-chip-card p,
.source-reference-card p,
.connection-item p,
.report-change-empty,
.toolbar-banner span {
  color: var(--muted);
}

.hero-lead {
  margin: 0;
  max-width: 46rem;
  font-size: 1rem;
  line-height: 1.82;
}

.hero-lead.narrow {
  max-width: 48rem;
}

.section-title,
.preview-header,
.template-detail-header,
.project-clean-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.compact-title {
  margin-bottom: 0.8rem;
}

.button,
.catalog-button,
.editor-fab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  border-radius: 999px;
  cursor: pointer;
  transition: transform 140ms ease, background 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

.button:hover,
.catalog-button:hover,
.editor-fab:hover {
  transform: translateY(-1px);
}

.button {
  padding: 0.82rem 1.02rem;
  font-size: 0.95rem;
  font-weight: 550;
  box-shadow: var(--shadow-soft);
}

.compact {
  padding: 0.58rem 0.82rem;
}

.button-primary {
  color: #ffffff;
  background: linear-gradient(180deg, #1a1a1c 0%, #101012 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.button-primary:hover {
  background: linear-gradient(180deg, var(--accent) 0%, var(--accent-strong) 100%);
}

.button-secondary,
.catalog-button,
.editor-fab,
.filter-chip {
  color: var(--text);
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid var(--line);
}

.button-ghost {
  color: var(--muted);
  background: rgba(255, 255, 255, 0.34);
  border: 1px solid var(--line);
}

.button.is-warning {
  color: var(--accent);
  border-color: rgba(184, 31, 50, 0.32);
  background: #fff3f4;
}

.filter-stack {
  display: grid;
  gap: 0.85rem;
}

.filter-chip.is-active {
  color: var(--accent);
  border-color: rgba(184, 31, 50, 0.28);
  background: var(--accent-soft);
}

.text-input,
.text-area {
  width: 100%;
  padding: 0.9rem 1rem;
  border-radius: var(--radius-md);
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.76);
  color: var(--text);
  font-size: 0.95rem;
  line-height: 1.6;
}

.select-input {
  appearance: none;
}

.text-area {
  resize: vertical;
  min-height: 110px;
}

.text-area.compact {
  min-height: 84px;
}

.field-label,
.dialog-group,
.drawer-section,
.field-group {
  display: grid;
  gap: 0.5rem;
}

.dialog-label,
.field-label span {
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.45;
}

.file-input-hidden {
  display: none;
}

.home-clean-layout {
  display: grid;
  gap: 1rem;
}

.home-hero-simple {
  display: grid;
  gap: 1.15rem;
  padding: 1.8rem;
}

.home-hero-actions {
  display: flex;
  gap: 0.8rem;
  flex-wrap: wrap;
}

.case-browser-card {
  display: grid;
  gap: 1rem;
}

.case-grid,
.project-clean-grid,
.template-essentials-grid,
.outline-chip-grid,
.deliverable-grid,
.source-reference-grid {
  display: grid;
  gap: 0.9rem;
}

.content-grid.two-up,
.content-grid.three-up {
  display: grid;
  gap: 1rem;
}

.content-grid.two-up {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.content-grid.three-up {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.case-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.project-clean-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.deliverable-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.deliverable-grid.single-column {
  grid-template-columns: 1fr;
}

.case-card,
.template-list-item.clean,
.template-manage-card,
.project-clean-card,
.outline-chip-card,
.template-essentials-card,
.project-clean-stat,
.issue-card {
  padding: 1rem;
  border-radius: var(--radius-md);
}

.template-list-item.clean,
.project-clean-card,
.case-card,
.template-manage-card,
.outline-chip-card,
.project-clean-stat,
.attachment-card,
.catalog-button-refined,
.editor-sheet-panel {
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-soft);
}

.case-card,
.project-clean-card,
.template-manage-card {
  display: grid;
  gap: 0.68rem;
}

.case-card-meta,
.template-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.mini-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.56rem;
  border-radius: 999px;
  background: var(--surface-soft);
  border: 1px solid var(--line);
  color: var(--text);
  font-size: 0.8rem;
}

.mini-chip.muted {
  color: var(--muted);
}

.template-filter-hero,
.project-center-hero {
  display: grid;
  gap: 1rem;
}

.template-clean-layout {
  display: grid;
  grid-template-columns: 420px minmax(0, 1fr);
  gap: 1rem;
}

.template-list-column {
  display: grid;
  gap: 1rem;
  align-content: start;
}

.template-list-item {
  width: 100%;
  text-align: left;
}

.template-list-item.clean {
  display: grid;
  gap: 0.35rem;
}

.template-list-item.is-active,
.template-manage-card.is-active {
  border-color: rgba(184, 31, 50, 0.24);
  background: #fff7f8;
}

.template-detail-clean {
  display: grid;
  gap: 1rem;
}

.template-essentials-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.template-essentials-card {
  display: grid;
  gap: 0.3rem;
}

.outline-chip-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.outline-chip-card {
  display: grid;
  gap: 0.35rem;
}

.project-toolbar-row {
  align-items: center;
  justify-content: space-between;
}

.project-search-input {
  max-width: 320px;
}

.project-clean-card-top {
  align-items: flex-start;
}

.inline-rename-row {
  display: grid;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

.project-clean-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}

.project-clean-stat {
  display: grid;
  gap: 0.3rem;
}

.project-clean-stat span,
.metric-card span {
  color: var(--muted);
  font-size: 0.8rem;
}

.workspace-tools-modal {
  display: grid;
  gap: 1rem;
  max-height: min(88vh, 980px);
  overflow: auto;
}

.workspace-tool-block {
  padding: 1rem;
  border-radius: var(--radius-md);
  display: grid;
  gap: 0.9rem;
}

.backup-preview-panel,
.backup-report-panel,
.restore-checkpoint-panel,
.analytics-panel {
  padding: 1rem;
}

.conflict-clean-list,
.restore-checkpoint-list,
.analytics-event-list,
.connection-list,
.list-stack,
.preview-stack,
.source-reference-stack {
  display: grid;
  gap: 0.75rem;
}

.conflict-clean-card,
.restore-checkpoint-card,
.analytics-event-card,
.connection-item {
  padding: 0.95rem 1rem;
  border-radius: var(--radius-md);
}

.report-selection-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--text);
}

.report-selection-toggle input {
  accent-color: var(--accent);
}

.editor-clean-shell {
  display: grid;
  gap: 1rem;
}

.canvas-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.canvas-toolbar-clean {
  padding: 0.85rem;
  border-radius: var(--radius-md);
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.72);
}

.toolbar-banner {
  display: grid;
  gap: 0.2rem;
  padding: 0.85rem 1rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(184, 31, 50, 0.2);
  background: #fff4f5;
}

.toolbar-banner.is-danger {
  border-color: rgba(184, 31, 50, 0.32);
  background: #fff0f2;
}

.toolbar-banner strong {
  color: var(--accent);
}

.editor-clean-canvas {
  position: relative;
}

.canvas-viewport {
  position: relative;
  min-height: 76vh;
  border-radius: 34px;
  border: 1px solid var(--line);
  overflow: hidden;
  cursor: grab;
}

.canvas-viewport.clean {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.82), rgba(248, 246, 242, 0.92)),
    #ffffff;
}

.canvas-viewport.is-panning {
  cursor: grabbing;
}

.grid-plane,
.connection-layer,
.canvas-plane {
  position: absolute;
  inset: 0;
}

.grid-plane {
  background-image:
    linear-gradient(to right, rgba(18, 18, 18, 0.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(18, 18, 18, 0.05) 1px, transparent 1px);
}

.canvas-plane {
  transform-origin: 0 0;
}

.canvas-section {
  position: absolute;
  padding: 0.9rem;
  border-radius: 26px;
  border: 1px dashed rgba(18, 18, 18, 0.12);
  background: rgba(255, 255, 255, 0.5);
}

.canvas-section header {
  display: grid;
  gap: 0.2rem;
}

.canvas-section span {
  color: var(--muted);
  font-size: 0.9rem;
}

.canvas-node {
  position: absolute;
  min-height: 188px;
  padding: 1rem;
  border-radius: 24px;
  border: 1px solid #d8d3cc;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 16px 30px rgba(18, 18, 18, 0.08);
  cursor: pointer;
}

.canvas-node.is-active {
  border-color: rgba(184, 31, 50, 0.32);
  box-shadow: 0 16px 36px rgba(18, 18, 18, 0.12), 0 0 0 3px rgba(184, 31, 50, 0.08);
}

.node-topic,
.node-persona,
.node-reference,
.node-image_script,
.node-video_script,
.node-output_pack {
  background: rgba(255, 255, 255, 0.96);
}

.node-meta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.node-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.56rem;
  border-radius: 999px;
  background: var(--surface-soft);
  color: var(--accent);
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0.02em;
}

.node-status-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.56rem;
  border-radius: 999px;
  font-size: 0.75rem;
  border: 1px solid transparent;
}

.node-status-pill.is-ready {
  color: var(--text);
  background: #efebe5;
}

.node-status-pill.is-working {
  color: var(--accent);
  background: #fff3f4;
  border-color: rgba(184, 31, 50, 0.18);
}

.node-status-pill.is-empty {
  color: var(--muted);
  background: var(--surface-soft);
}

.editor-floating-rail {
  display: grid;
  gap: 0.55rem;
}

.editor-fab {
  padding: 0.7rem 1rem;
  background: rgba(255, 255, 255, 0.94);
}

.editor-drawer-panel {
  position: fixed;
  top: 5.3rem;
  right: 1rem;
  z-index: 18;
  width: min(420px, calc(100vw - 2rem));
  max-height: calc(100vh - 6.3rem);
  overflow: auto;
  padding: 1.1rem;
  border-radius: 28px;
}

.platform-field-group,
.preview-card,
.source-reference-card,
.share-node-card {
  padding: 1rem;
  border-radius: var(--radius-md);
}

.platform-field-header {
  display: grid;
  gap: 0.25rem;
  margin-bottom: 0.7rem;
}

.preview-card {
  display: grid;
  gap: 0.8rem;
}

.preview-header {
  align-items: flex-start;
}

.preview-platform {
  display: inline-flex;
  margin-bottom: 0.35rem;
}

.preview-blocks {
  display: grid;
  gap: 0.7rem;
}

.preview-block {
  padding: 0.8rem 0.9rem;
  border-radius: var(--radius-sm);
  background: var(--surface-soft);
}

.preview-block span {
  display: block;
  margin-bottom: 0.25rem;
  color: var(--accent);
  font-size: 0.78rem;
}

.preview-block p,
.preview-footer {
  margin: 0;
}

.source-reference-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.source-reference-card {
  display: grid;
  gap: 0.35rem;
}

.source-reference-card.is-clickable {
  cursor: pointer;
}

.source-reference-card.is-clickable:hover {
  border-color: rgba(184, 31, 50, 0.24);
  background: #fff9fa;
}

.source-reference-label {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 0.26rem 0.54rem;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 0.74rem;
}

.connection-item strong {
  display: block;
  margin-top: 0.35rem;
}

.connection-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.52rem;
  border-radius: 999px;
  font-size: 0.74rem;
  background: var(--surface-soft);
  color: var(--accent);
}

.connection-chip.is-in {
  color: var(--text);
}

.share-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
  gap: 1rem;
}

.share-facts {
  display: grid;
  gap: 0.75rem;
}

.metric-card {
  padding: 0.95rem 1rem;
  border-radius: var(--radius-md);
  border: 1px solid var(--line);
  background: var(--surface-soft);
}

.share-node-list {
  display: grid;
  gap: 0.75rem;
}

.share-pack-block + .share-pack-block {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--line);
}

.share-pack-header {
  display: grid;
  gap: 0.25rem;
  margin-bottom: 0.75rem;
}

.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: rgba(18, 18, 18, 0.2);
  backdrop-filter: blur(10px);
}

.modal-card {
  width: min(560px, 100%);
  padding: 1.2rem;
  border-radius: 30px;
}

.modal-card-compact {
  width: min(440px, 100%);
}

.modal-card-wide {
  width: min(980px, 100%);
}

.modal-actions {
  justify-content: flex-end;
  margin-top: 0.2rem;
}

.empty-state-card {
  display: grid;
  gap: 0.7rem;
  align-content: start;
}

.empty-state-lg {
  min-height: 240px;
  align-content: center;
}

.not-found-card code {
  display: inline-flex;
  padding: 0.12rem 0.42rem;
  border-radius: 999px;
  background: var(--surface-soft);
  border: 1px solid var(--line);
}

.template-source-link,
.inline-link {
  color: var(--accent);
}

@media (max-width: 1180px) {
  .template-clean-layout,
  .share-hero,
  .project-clean-grid,
  .case-grid,
  .content-grid.two-up,
  .content-grid.three-up,
  .template-essentials-grid,
  .outline-chip-grid,
  .deliverable-grid,
  .project-clean-stats,
  .source-reference-grid {
    grid-template-columns: 1fr;
  }

  .app-header,
  .system-alert-banner,
  .section-title,
  .preview-header,
  .template-detail-header,
  .project-clean-card-top {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 720px) {
  .app-header {
    padding: 1rem;
  }

  .app-content {
    width: min(100% - 1rem, 100%);
    padding-top: 1rem;
  }

  .surface-card,
  .modal-card {
    padding: 1rem;
  }

  .canvas-viewport {
    min-height: 68vh;
  }

  .editor-drawer-panel {
    left: 0.5rem;
    right: 0.5rem;
    top: auto;
    bottom: 0.5rem;
    width: auto;
    max-height: 58vh;
  }

}

.home-hero-simple,
.project-center-hero,
.template-filter-hero,
.template-detail-clean,
.case-browser-card,
.workspace-tools-modal,
.editor-header-card,
.editor-sheet-panel {
  backdrop-filter: blur(26px);
}

.case-card,
.template-list-item.clean,
.project-clean-card,
.template-manage-card,
.outline-chip-card {
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.case-card:hover,
.template-list-item.clean:hover,
.project-clean-card:hover,
.template-manage-card:hover,
.outline-chip-card:hover {
  transform: translateY(-2px);
  border-color: var(--line-strong);
}

.outline-chip-stage-card {
  display: grid;
  gap: 0.45rem;
}

.outline-chip-step,
.outline-chip-stage,
.editor-helper-line,
.node-detail-row,
.editor-quiet-note {
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.65;
}

.outline-chip-step {
  letter-spacing: 0.04em;
  text-transform: none;
}

.outline-chip-stage-card.is-stage-insight,
.canvas-node-refined.is-stage-insight {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.86) 0%, var(--stage-insight) 100%);
}

.outline-chip-stage-card.is-stage-story,
.canvas-node-refined.is-stage-story {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.9) 0%, var(--stage-story) 100%);
}

.outline-chip-stage-card.is-stage-visual,
.canvas-node-refined.is-stage-visual {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.88) 0%, var(--stage-visual) 100%);
}

.outline-chip-stage-card.is-stage-polish,
.canvas-node-refined.is-stage-polish {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.9) 0%, var(--stage-polish) 100%);
}

.editor-shell-refined {
  display: grid;
  gap: 1rem;
}

.editor-header-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.4rem 1.5rem;
  border-radius: var(--radius-xl);
}

.editor-header-main {
  display: grid;
  gap: 0.45rem;
}

.editor-header-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.65rem;
}

.editor-back-link {
  font-size: 0.92rem;
}

.editor-refined-layout {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) 360px;
  gap: 1rem;
  align-items: start;
}

.editor-floating-rail {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.42rem;
}

.editor-rail-button {
  width: 100%;
  min-height: 36px;
  min-width: 0;
  padding: 0 0.5rem;
  border: 1px solid rgba(17, 17, 20, 0.08);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--muted);
  box-shadow: none;
  cursor: pointer;
  font-size: 0.76rem;
  font-weight: 600;
  text-align: center;
  line-height: 1;
  transition: transform 160ms ease, border-color 160ms ease, color 160ms ease, background 160ms ease;
}

.editor-rail-button:hover,
.editor-rail-button.is-active {
  transform: translateY(-1px);
  color: var(--text);
  background: #ffffff;
  border-color: rgba(188, 17, 39, 0.22);
}

.editor-main-stage {
  display: grid;
  gap: 0.8rem;
}

.canvas-toolbar-refined {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  padding: 0.25rem 0;
}

.canvas-viewport.refined {
  position: relative;
  overflow: hidden;
  min-height: 76vh;
  border-radius: var(--radius-xl);
  border: 1px solid rgba(17, 17, 20, 0.08);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.84) 0%, rgba(245, 245, 247, 0.98) 100%);
  box-shadow: var(--shadow);
}

.canvas-viewport.refined .grid-plane {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(17, 17, 20, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(17, 17, 20, 0.05) 1px, transparent 1px);
}

.canvas-plane.refined {
  position: relative;
}

.canvas-node-refined {
  position: absolute;
  display: grid;
  gap: 0.7rem;
  padding: 1rem;
  border-radius: 24px;
  border: 1px solid rgba(17, 17, 20, 0.08);
  box-shadow: 0 18px 40px rgba(17, 17, 20, 0.08);
  cursor: pointer;
  user-select: none;
}

.canvas-node-refined.is-active {
  border-color: rgba(188, 17, 39, 0.28);
  box-shadow: 0 22px 50px rgba(188, 17, 39, 0.12);
}

.canvas-node-refined h4 {
  font-size: 1.08rem;
}

.canvas-node-refined p {
  margin: 0;
  line-height: 1.55;
}

.node-meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
}

.node-type-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.8rem;
  height: 1.8rem;
  border-radius: 50%;
  background: rgba(17, 17, 20, 0.08);
  color: var(--text);
  font-size: 0.88rem;
  font-weight: 600;
}

.node-stage-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.6rem;
  border-radius: 999px;
  font-size: 0.76rem;
  border: 1px solid transparent;
}

.node-stage-pill.is-insight {
  background: rgba(17, 17, 20, 0.06);
}

.node-stage-pill.is-story {
  background: rgba(188, 17, 39, 0.08);
  color: var(--accent);
}

.node-stage-pill.is-visual {
  background: rgba(17, 17, 20, 0.08);
}

.node-stage-pill.is-polish {
  background: rgba(65, 122, 92, 0.14);
  color: #27543e;
}

.node-detail-row {
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
}

.node-prompt-line {
  padding-top: 0.7rem;
  border-top: 1px solid rgba(17, 17, 20, 0.08);
  color: var(--text);
  font-size: 0.92rem;
  line-height: 1.5;
}

.editor-sheet-panel {
  position: sticky;
  top: 92px;
  display: grid;
  gap: 0.9rem;
  padding: 1.1rem;
  border-radius: var(--radius-xl);
}

.drawer-section.tight {
  gap: 0.35rem;
}

.inspector-status-row,
.attachment-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}

.attachment-stack {
  display: grid;
  gap: 0.8rem;
}

.attachment-card {
  display: grid;
  gap: 0.6rem;
  padding: 0.9rem;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-soft);
}

.catalog-button-refined {
  width: 100%;
  justify-content: space-between;
  align-items: flex-start;
  padding: 0.92rem 0.96rem;
  text-align: left;
  border-radius: 22px;
}

.catalog-button-refined strong,
.catalog-button-refined span {
  display: block;
}

.catalog-button-refined strong {
  font-size: 0.98rem;
  line-height: 1.45;
}

.catalog-button-refined span {
  color: var(--muted);
  margin-top: 0.35rem;
  font-size: 0.88rem;
  line-height: 1.65;
}

.platform-field-group {
  display: grid;
  gap: 0.7rem;
}

.platform-field-header {
  display: grid;
  gap: 0.25rem;
}

.platform-field-header span,
.source-reference-label,
.connection-chip {
  color: var(--muted);
  font-size: 0.82rem;
}

.source-reference-grid.compact-grid {
  grid-template-columns: 1fr;
}

.editor-helper-line,
.editor-quiet-note {
  margin: 0;
}

@media (max-width: 1180px) {
  .editor-refined-layout {
    grid-template-columns: 1fr;
  }

  .editor-floating-rail {
    grid-template-columns: 1fr;
  }

  .editor-sheet-panel {
    position: static;
  }
}

@media (max-width: 780px) {
  .editor-header-card {
    padding: 1.15rem;
  }

  .editor-header-card,
  .editor-header-actions {
    display: grid;
  }

  .editor-floating-rail {
    grid-template-columns: 1fr;
  }

  .canvas-viewport.refined {
    min-height: 60vh;
  }
}

.editor-refined-layout {
  grid-template-columns: 1fr;
}

.editor-main-stage-floating {
  position: relative;
}

.editor-floating-panel {
  position: absolute;
  z-index: 4;
  right: auto;
  bottom: auto;
  height: auto;
}

.editor-toolbar-panel {
  min-width: min(720px, calc(100% - 140px));
  padding: 0.55rem 0.75rem 0.8rem;
  border-radius: 24px;
}

.editor-floating-rail {
  width: 88px;
  padding: 0.42rem;
  border-radius: 18px;
  gap: 0.42rem;
  justify-items: stretch;
  align-content: start;
  background: rgba(255, 255, 255, 0.52);
  border: 1px solid rgba(17, 17, 20, 0.08);
  box-shadow: var(--shadow-soft);
}

.editor-sheet-panel {
  width: min(372px, calc(100% - 36px));
  max-height: calc(100% - 132px);
  overflow: auto;
}

.floating-panel-handle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  background: rgba(17, 17, 20, 0.06);
  color: var(--muted);
  font-size: 0.72rem;
  letter-spacing: 0.03em;
  text-transform: none;
  cursor: grab;
}

.editor-floating-rail .floating-panel-handle {
  min-height: 16px;
  padding: 0;
  font-size: 0.56rem;
  letter-spacing: 0.08em;
  background: transparent;
  color: rgba(17, 17, 20, 0.38);
}

.rail-handle {
  justify-self: stretch;
  width: 100%;
}

.floating-panel-handle:active {
  cursor: grabbing;
}

.compact-handle {
  min-height: 34px;
}

.floating-banner {
  position: absolute;
  left: 104px;
  right: 18px;
  top: 100px;
  z-index: 3;
}

.floating-note {
  position: absolute;
  left: 18px;
  bottom: 18px;
  z-index: 2;
  padding: 0.7rem 0.9rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-soft);
}

.canvas-viewport.refined {
  min-height: 84vh;
}

@media (max-width: 1180px) {
  .editor-toolbar-panel {
    min-width: min(640px, calc(100% - 32px));
  }

  .floating-banner {
    left: 18px;
    top: 104px;
  }
}

@media (max-width: 780px) {
  .editor-floating-rail {
    width: 82px;
  }

  .editor-rail-button {
    min-height: 36px;
  }

  .editor-toolbar-panel,
  .editor-sheet-panel {
    width: calc(100% - 24px);
  }

  .canvas-viewport.refined {
    min-height: 70vh;
  }
}
