/* ========================================================================== Craft.js Site Builder — Dark Theme Base: #16161a | Accent: #3b82f6 | Text: #e4e4e7 | Border: #2d2d3a ========================================================================== */ /* -------------------------------------------------------------------------- CSS Variables -------------------------------------------------------------------------- */ :root { --color-bg-base: #16161a; --color-bg-surface: #1c1c24; --color-bg-elevated: #22222c; --color-bg-canvas: #0f0f14; --color-bg-hover: #3f3f46; --color-bg-active: #2d2d3a; --color-border: #2d2d3a; --color-border-light: #3f3f46; --color-text: #e4e4e7; --color-text-muted: #8b8b96; --color-text-dim: #6e6e78; --color-accent: #3b82f6; --color-accent-hover: #2563eb; --color-accent-subtle: rgba(59, 130, 246, 0.12); --color-danger: #ef4444; --color-success: #10b981; --topbar-height: 50px; --panel-left-width: 260px; --panel-right-width: 320px; --radius-sm: 4px; --radius-md: 6px; --radius-lg: 8px; --transition-fast: 0.15s ease; --transition-normal: 0.25s ease; /* Phase A (mobile): fixed bottom tab bar height, used to size .editor-container and the safe-area padding math below. */ --mobile-tabbar-height: 58px; /* Phase B fast-follow item 4: rendered height of `.mobile-selection-toolbar` (44px min-height content + 4px top/bottom padding + 1px border) -- used to pad the canvas scroll area clear of it while it's visible, see `.editor-canvas.has-mobile-selection-toolbar` below. */ --mobile-selection-toolbar-height: 53px; /* Mobile-A2: explicit overlay layer scale (was ad-hoc numbers scattered across the mobile block + Modal.tsx, causing accidental stacking -- e.g. the Templates modal getting trapped under the tab bar inside .topbar's own stacking context). Higher = closer to the user. --z-selection-toolbar is reserved for Phase B's selection toolbar. */ --z-sheet-backdrop: 400; --z-tabbar: 500; --z-selection-toolbar: 600; --z-modal: 5000; --z-overflow: 10000; } /* -------------------------------------------------------------------------- Modals (shared by Modal.tsx -- TemplateModal, HeadCodeModal, SitesmithModal) -------------------------------------------------------------------------- */ .modal-backdrop { z-index: var(--z-modal); } /* -------------------------------------------------------------------------- Reset & Base -------------------------------------------------------------------------- */ *, *::before, *::after { box-sizing: border-box; } body { margin: 0; padding: 0; font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 13px; color: var(--color-text); background: var(--color-bg-base); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow: hidden; } /* -------------------------------------------------------------------------- Editor App — Full Viewport -------------------------------------------------------------------------- */ .editor-app { display: flex; flex-direction: column; width: 100vw; height: 100vh; overflow: hidden; background: var(--color-bg-base); } /* -------------------------------------------------------------------------- Top Navigation Bar -------------------------------------------------------------------------- */ .topbar { display: flex; align-items: center; justify-content: space-between; height: var(--topbar-height); min-height: var(--topbar-height); padding: 0 12px; background: var(--color-bg-surface); border-bottom: 1px solid var(--color-border); z-index: 100; gap: 12px; /* Positioned ancestor for .publish-warnings (position: absolute; top: 100%), which is rendered as this