/* Document Layout - Main container */ .document-layout { display: flex; height: 100vh; width: 100vw; overflow: hidden; background: #1a1a2e; color: #e0e0e0; } /* Sidebar */ .document-sidebar { flex-shrink: 0; height: 100%; overflow-y: auto; overflow-x: hidden; background: #16162a; border-right: 1px solid #2a2a4a; } /* Back link */ .document-sidebar-back { padding: 8px 12px; border-bottom: 1px solid #2a2a4a; } .document-back-link { color: #9ca3af; text-decoration: none; font-size: 0.85rem; display: flex; align-items: center; gap: 4px; transition: color 0.15s; } .document-back-link:hover { color: #e0e0e0; } /* Resize handle */ .document-resize-handle { width: 4px; cursor: col-resize; background: transparent; flex-shrink: 0; transition: background 0.15s; } .document-resize-handle:hover, .document-resize-handle:active { background: #4a4a8a; } /* Main content area */ .document-main { flex: 1; display: flex; flex-direction: column; min-width: 0; overflow: hidden; } /* Top bar */ .document-topbar { display: flex; align-items: center; justify-content: space-between; padding: 8px 20px; border-bottom: 1px solid #2a2a4a; background: #1e1e38; flex-shrink: 0; } .document-topbar-left { display: flex; align-items: center; gap: 12px; min-width: 0; } .document-topbar-title { font-size: 16px; font-weight: 600; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #f0f0f0; } .document-topbar-right { display: flex; align-items: center; gap: 8px; } .document-topbar-gear { background: none; border: none; color: #888; font-size: 20px; cursor: pointer; padding: 4px 8px; border-radius: 4px; transition: color 0.15s, background 0.15s; } .document-topbar-gear:hover { color: #fff; background: rgba(255, 255, 255, 0.08); } /* Status badge */ .doc-status-badge { display: inline-block; padding: 2px 10px; border-radius: 10px; font-size: 11px; font-weight: 600; text-transform: uppercase; color: #fff; letter-spacing: 0.5px; } /* Content area */ .document-content { flex: 1; overflow-y: auto; overflow-x: hidden; display: flex; flex-direction: column; align-items: center; scroll-behavior: smooth; /* Ensure expanded log feeds don't break layout */ min-height: 0; } /* Placeholder / empty state */ .document-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; text-align: center; color: #888; padding: 40px; } .document-placeholder-icon { font-size: 48px; margin-bottom: 16px; opacity: 0.5; } .document-placeholder h2 { font-size: 20px; font-weight: 500; margin: 0 0 8px; color: #aaa; } .document-placeholder p { font-size: 14px; margin: 0; max-width: 400px; line-height: 1.5; } .document-error { color: #f44336; } /* File Tree styles */ .directive-file-tree { display: flex; flex-direction: column; height: 100%; font-size: 13px; } .file-tree-header { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-bottom: 1px solid #2a2a4a; flex-shrink: 0; } .file-tree-title { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; color: #888; } .file-tree-new-btn { background: none; border: 1px solid #3a3a6a; color: #aaa; font-size: 16px; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; border-radius: 4px; cursor: pointer; padding: 0; line-height: 1; transition: all 0.15s; } .file-tree-new-btn:hover { background: #3a3a6a; color: #fff; border-color: #5a5a9a; } .file-tree-loading, .file-tree-error { padding: 16px; color: #888; font-size: 12px; text-align: center; } .file-tree-error { color: #f44336; } .file-tree-groups { flex: 1; overflow-y: auto; padding: 4px 0; } /* Group header */ .file-tree-group { margin-bottom: 2px; } .file-tree-group-header { display: flex; align-items: center; gap: 6px; width: 100%; padding: 6px 14px; background: none; border: none; color: #999; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; cursor: pointer; text-align: left; transition: color 0.15s; } .file-tree-group-header:hover { color: #ccc; } .file-tree-chevron { font-size: 8px; transition: transform 0.15s; display: inline-block; } .file-tree-chevron.expanded { transform: rotate(90deg); } .file-tree-group-count { margin-left: auto; color: #666; font-size: 10px; } .file-tree-group-label { flex: 1; } /* Tree items */ .file-tree-items { padding: 0; } .file-tree-item { display: flex; align-items: center; gap: 8px; width: 100%; padding: 5px 14px 5px 28px; background: none; border: none; color: #ccc; font-size: 13px; cursor: pointer; text-align: left; transition: background 0.1s; white-space: nowrap; overflow: hidden; } .file-tree-item:hover { background: rgba(255, 255, 255, 0.05); } .file-tree-item.selected { background: rgba(100, 100, 200, 0.15); color: #fff; } .file-tree-status-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; } .file-tree-doc-icon { font-size: 14px; flex-shrink: 0; opacity: 0.7; } .file-tree-item-title { overflow: hidden; text-overflow: ellipsis; flex: 1; } .file-tree-step-count { margin-left: auto; font-size: 10px; color: #666; background: rgba(255, 255, 255, 0.06); border-radius: 8px; padding: 1px 6px; flex-shrink: 0; white-space: nowrap; } /* Responsive: mobile */ @media (max-width: 768px) { .document-sidebar { position: absolute; z-index: 100; left: 0; top: 0; height: 100%; box-shadow: 4px 0 20px rgba(0, 0, 0, 0.5); } .document-resize-handle { display: none; } }