Spaces:
Sleeping
Sleeping
| /* ============================================================================ */ | |
| /* Editor layout */ | |
| /* */ | |
| /* Aligned with the research-article-template's 3-column grid, but with */ | |
| /* narrower sidebars so the chat/drawer UI fits comfortably: */ | |
| /* [ TOC 200px ] [ content 680px ] [ sidenotes 200px ] */ | |
| /* */ | |
| /* wide/fullWidth use viewport-based breakout (see article.css) so they look */ | |
| /* identical to the published output. */ | |
| /* ============================================================================ */ | |
| .editor-app { | |
| height: 100dvh; /* dvh = dynamic viewport (iOS Safari URL bar) */ | |
| display: flex; | |
| flex-direction: column; | |
| /* Use the page background so the editor shell matches the article content | |
| (no greyish frame around the white canvas in light mode). */ | |
| background: var(--page-bg); | |
| overflow: hidden; | |
| position: relative; | |
| } | |
| /* ---- Grid: 3-col symmetric, centered in viewport ---- */ | |
| .editor-app .content-grid { | |
| display: grid; /* wins specificity over _layout.css */ | |
| grid-template-columns: | |
| var(--layout-editor-toc-width) | |
| minmax(0, var(--layout-content-width)) | |
| var(--layout-editor-sidenote-width); | |
| grid-template-rows: auto 1fr; | |
| gap: 0 var(--layout-gap); | |
| max-width: var(--layout-editor-max-width); | |
| margin: 0 auto; | |
| padding: 0 var(--content-padding-x); | |
| } | |
| .content-grid__hero { grid-column: 1 / -1; grid-row: 1; } | |
| .content-grid__toc { grid-column: 1; grid-row: 2; } | |
| .content-grid__editor { | |
| grid-column: 2; | |
| grid-row: 2; | |
| padding-top: 24px; | |
| padding-bottom: 32px; | |
| position: relative; | |
| overflow: visible; | |
| } | |
| /* In the editor, .tiptap is a plain flow container; wide/fullWidth escape | |
| the 680px column via viewport breakout (see article.css). */ | |
| .editor-app .tiptap { | |
| max-width: 100%; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| /* ============================================================================ */ | |
| /* Responsive */ | |
| /* */ | |
| /* <= 1100px : TOC collapses into a drawer, sidenotes stack inline */ | |
| /* (handled in article.css). Single-column grid. */ | |
| /* <= 768px : Compact top-bar, narrower floating panels, stacked embed studio. */ | |
| /* ============================================================================ */ | |
| /* Hamburger toggle: hidden on desktop, shown below the collapse breakpoint */ | |
| .top-bar__toc-toggle { display: none; } | |
| /* Mobile TOC overlay: hidden by default on desktop */ | |
| .editor-app .toc-mobile-backdrop { display: none; } | |
| .editor-app .toc-mobile-sidebar { display: none; } | |
| @media (max-width: 1100px) { | |
| .editor-app .content-grid { | |
| grid-template-columns: 1fr; | |
| grid-template-rows: auto 1fr; | |
| max-width: none; | |
| gap: 0; | |
| } | |
| .editor-app .content-grid__hero { grid-column: 1; grid-row: 1; } | |
| .editor-app .content-grid__toc { display: none; } | |
| .editor-app .content-grid__editor { grid-column: 1; grid-row: 2; } | |
| .top-bar__toc-toggle { | |
| display: inline-flex; | |
| margin-right: auto; | |
| } | |
| .editor-app .toc-mobile-backdrop { display: block; } | |
| .editor-app .toc-mobile-sidebar { display: flex; } | |
| } | |
| @media (max-width: 768px) { | |
| .editor-app .content-grid__editor { | |
| padding-top: 16px; | |
| padding-bottom: 24px; | |
| } | |
| /* Top bar: compact, wrap-safe */ | |
| .editor-app .top-bar { | |
| padding: 6px 8px; | |
| gap: 2px; | |
| flex-wrap: wrap; | |
| } | |
| .editor-app .top-bar .divider-v { display: none; } | |
| .editor-app .top-bar .sync-indicator .sync-indicator__label { display: none; } | |
| /* Chat floating: fill width on mobile */ | |
| .editor-app .chat-floating { | |
| width: calc(100vw - 24px); | |
| max-width: 360px; | |
| left: 12px; | |
| bottom: 12px; | |
| height: calc(100dvh - 80px); | |
| max-height: calc(100dvh - 80px); | |
| } | |
| .editor-app .chat-fab { | |
| bottom: 12px; | |
| left: 12px; | |
| } | |
| /* Settings drawer: full-width on mobile */ | |
| .editor-app .drawer-panel { width: 100vw; } | |
| /* Embed Studio: stack body vertically */ | |
| .editor-app .es-body { flex-direction: column; } | |
| .editor-app .es-chat { | |
| width: 100%; | |
| min-width: 0; | |
| max-width: none; | |
| max-height: 45vh; | |
| border-right: none; | |
| border-bottom: 1px solid var(--border-color); | |
| } | |
| /* Citation panel: narrower on mobile */ | |
| .editor-app .citation-panel { | |
| width: calc(100vw - 32px); | |
| max-width: 480px; | |
| } | |
| } | |