summaryrefslogtreecommitdiff
path: root/frontend/src/components/document/DocumentLayout.css
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/components/document/DocumentLayout.css')
-rw-r--r--frontend/src/components/document/DocumentLayout.css347
1 files changed, 347 insertions, 0 deletions
diff --git a/frontend/src/components/document/DocumentLayout.css b/frontend/src/components/document/DocumentLayout.css
new file mode 100644
index 0000000..b18bb81
--- /dev/null
+++ b/frontend/src/components/document/DocumentLayout.css
@@ -0,0 +1,347 @@
+/* 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;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+
+/* 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;
+}
+
+/* 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;
+ }
+}