/* The visual editor fills the entire main content area. Layout.module.css sets padding: 32px on
; we break out of it with negative margins so the editor gets a true full-bleed surface. */ .editor { display: flex; flex-direction: column; /* Pull back the 32px padding that Layout.module.css adds to
*/ margin: -32px; height: calc(100% + 64px); overflow: hidden; } /* ── Loading overlay ─────────────────────────────────────────────── */ .loadingOverlay { flex: 1; display: flex; align-items: center; justify-content: center; font-size: 14px; color: #8b949e; } /* ── Editor info bar (below project toolbar) ─────────────────────── */ .editorBar { display: flex; align-items: center; gap: 12px; height: 36px; padding: 0 16px; background: #f7f8fa; border-bottom: 1px solid #e5e7eb; flex-shrink: 0; } .projectName { font-size: 13px; font-weight: 600; color: #1f2328; } .pageName { font-size: 12px; color: #57606a; background: #e5e7eb; border-radius: 3px; padding: 1px 7px; } .componentCount { font-size: 12px; color: #8b949e; margin-left: auto; } .pageEventEditor { display: flex; align-items: center; gap: 6px; min-width: 0; } .pageEventLabel, .pageEventHint, .pageEventError { font-size: 11px; white-space: nowrap; } .pageEventLabel, .pageEventHint { color: #57606a; } .pageEventError { color: #b91c1c; } .pageEventSelect { width: 190px; min-width: 0; padding: 2px 6px; border: 1px solid #d0d7de; border-radius: 4px; background: #ffffff; color: #1f2328; font-size: 11px; } /* ── Body: palette | canvas | info ───────────────────────────────── */ .body { display: flex; flex: 1; overflow: hidden; } /* ── Right info / JSON panel ─────────────────────────────────────── */ .info { width: 220px; flex-shrink: 0; background: #f7f8fa; border-left: 1px solid #e5e7eb; display: flex; flex-direction: column; overflow: hidden; } .infoHeader { padding: 10px 14px 8px; font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: #8b949e; border-bottom: 1px solid #e5e7eb; flex-shrink: 0; } .infoBody { padding: 8px 14px; flex-shrink: 0; } .infoRow { display: flex; justify-content: space-between; align-items: baseline; padding: 3px 0; border-bottom: 1px solid #f0f0f0; } .infoRow:last-child { border-bottom: none; } .infoKey { font-size: 11px; color: #8b949e; font-weight: 500; flex-shrink: 0; } .infoVal { font-size: 12px; color: #1f2328; font-family: 'SFMono-Regular', Consolas, monospace; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .infoInput { font-size: 12px; color: #1f2328; background: #ffffff; border: 1px solid #d0d7de; border-radius: 4px; padding: 2px 6px; width: 120px; outline: none; } .infoInput:focus { border-color: #3b82d4; box-shadow: 0 0 0 2px rgba(59, 130, 212, 0.18); } .infoEmpty { padding: 12px 14px; font-size: 12px; color: #b1bac4; } /* ── Compact JSON read-out ────────────────────────────────────────── */ .jsonSection { display: flex; flex-direction: column; flex: 1; overflow: hidden; border-top: 1px solid #e5e7eb; margin-top: 4px; } .jsonPre { flex: 1; overflow: auto; padding: 8px 14px; font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; font-size: 10px; line-height: 1.5; color: #57606a; white-space: pre; background: #f7f8fa; } .deleteDialogBackdrop { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(31, 35, 40, 0.48); } .deleteDialog { width: min(520px, 100%); max-height: calc(100vh - 48px); overflow: auto; padding: 20px; border: 1px solid #d0d7de; border-radius: 8px; background: #ffffff; box-shadow: 0 12px 36px rgba(31, 35, 40, 0.24); color: #1f2328; } .deleteDialog h2 { margin: 0 0 12px; font-size: 18px; } .deleteDialog p, .deleteDialog li { font-size: 13px; line-height: 1.5; } .deleteDialogActions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; } .deleteDialogActions button { padding: 6px 12px; border: 1px solid #d0d7de; border-radius: 4px; background: #ffffff; cursor: pointer; } .deleteDialogActions .dangerButton { border-color: #cf222e; background: #cf222e; color: #ffffff; }