AuthorBuddy/wwwroot/app.css

418 lines
7 KiB
CSS
Raw Normal View History

2026-05-14 12:31:35 +02:00
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
background: var(--window-bg);
color: var(--text-color);
height: 100vh;
overflow: hidden;
}
/* Navigation panel (sidebar accordion) */
.nav-section {
margin-bottom: 2px;
}
.nav-section-header {
display: flex;
align-items: center;
gap: 6px;
width: 100%;
padding: 6px 8px;
background: var(--menu-bg);
border: 1px solid var(--border-color);
cursor: pointer;
font-size: 13px;
font-weight: bold;
text-align: left;
user-select: none;
}
.nav-section-header:hover {
background: var(--accent-color);
color: white;
}
.nav-icon {
font-size: 10px;
width: 12px;
}
.nav-section-body {
border: 1px solid var(--border-color);
border-top: none;
background: var(--card-bg);
}
.nav-item {
display: block;
width: 100%;
padding: 6px 16px;
background: none;
border: none;
cursor: pointer;
font-size: 13px;
text-align: left;
color: var(--text-color);
}
.nav-item:hover {
background: var(--accent-color);
color: white;
}
.nav-separator {
height: 1px;
background: var(--border-color);
margin: 4px 8px;
}
.nav-hint {
display: block;
padding: 6px 16px;
font-size: 12px;
color: var(--border-color);
}
2026-05-14 12:42:37 +02:00
.nav-item-toggle {
display: flex;
align-items: center;
gap: 4px;
font-weight: bold;
}
.nav-item-toggle .nav-icon {
font-size: 10px;
width: 12px;
}
.nav-sublist {
padding-left: 8px;
}
.nav-item-sub {
padding: 4px 16px;
font-size: 12px;
}
2026-05-14 12:31:35 +02:00
/* Status bar */
.status-bar {
background: var(--status-bar-bg);
border-top: 2px solid var(--border-color);
display: flex;
align-items: center;
padding: 3px 8px;
font-size: 12px;
min-height: 28px;
gap: 8px;
}
.status-bar .status-dot {
width: 10px;
height: 10px;
border-radius: 50%;
display: inline-block;
}
.status-bar .status-dot.connected {
background: #00cc00;
}
.status-bar .status-dot.disconnected {
background: #cc0000;
}
.status-bar .status-text {
flex: 1;
}
.status-bar progress {
width: 80px;
height: 12px;
}
/* Main content area */
.main-content {
display: flex;
flex: 1;
overflow: hidden;
}
/* Sidebar */
.sidebar {
width: 250px;
min-width: 150px;
border-right: 2px solid var(--border-color);
padding: 4px;
overflow-y: auto;
background: var(--window-bg);
}
/* Detail panel */
.detail-panel {
flex: 1;
padding: 12px;
overflow-y: auto;
}
.detail-panel .tab-bar {
display: flex;
border-bottom: 2px solid var(--border-color);
margin-bottom: 12px;
}
.detail-panel .tab-bar .tab {
padding: 8px 16px;
cursor: pointer;
border: 1px solid transparent;
margin-bottom: -2px;
}
.detail-panel .tab-bar .tab.active {
border: 1px solid var(--border-color);
border-bottom-color: var(--window-bg);
background: var(--card-bg);
}
.detail-panel .tab-content {
padding: 8px;
}
/* Cards for RAG facts */
.fact-card {
background: var(--card-bg);
border-left: 3px solid var(--accent-color);
padding: 12px;
margin-bottom: 8px;
border-radius: 2px;
font-size: 14px;
line-height: 1.5;
}
/* Editor */
.editor-container {
display: flex;
flex-direction: column;
height: 100%;
}
.editor-container textarea {
flex: 1;
font-family: 'Consolas', 'Courier New', monospace;
font-size: 14pt;
padding: 20px;
border: none;
outline: none;
resize: none;
background: var(--editor-bg);
color: var(--text-color);
line-height: 1.6;
}
.editor-container .editor-toolbar {
display: flex;
justify-content: flex-end;
padding: 8px 16px;
gap: 8px;
border-top: 1px solid var(--border-color);
background: var(--menu-bg);
}
/* Buttons */
button {
padding: 8px 16px;
cursor: pointer;
border: 1px solid var(--border-color);
background: var(--menu-bg);
color: var(--text-color);
font-size: 13px;
}
button:hover {
background: var(--accent-color);
color: white;
}
button.primary {
background: var(--accent-color);
color: white;
border-color: var(--accent-color);
}
/* Forms */
.form-group {
margin-bottom: 16px;
}
.form-group label {
display: block;
font-weight: bold;
margin-bottom: 4px;
font-size: 13px;
}
.form-group input,
.form-group select,
.form-group textarea {
width: 100%;
padding: 6px 8px;
border: 1px solid var(--border-color);
background: var(--editor-bg);
color: var(--text-color);
font-size: 13px;
}
.form-actions {
display: flex;
gap: 8px;
margin-top: 16px;
}
/* Project tree */
.tree-node {
padding: 4px 8px;
cursor: pointer;
font-size: 13px;
}
.tree-node:hover {
background: var(--accent-color);
color: white;
}
.tree-node .children {
padding-left: 20px;
}
/* Grid splitter simulation */
.grid-splitter {
width: 5px;
cursor: col-resize;
background: transparent;
}
/* Progress */
.progress-bar {
width: 100%;
height: 20px;
background: var(--border-color);
border-radius: 2px;
overflow: hidden;
}
.progress-bar .progress-fill {
height: 100%;
background: var(--accent-color);
transition: width 0.3s;
}
/* Model list */
.model-list {
display: grid;
gap: 8px;
}
.model-card {
background: var(--card-bg);
border: 1px solid var(--border-color);
padding: 12px;
border-radius: 4px;
}
.model-card .model-name {
font-weight: bold;
font-size: 14px;
}
.model-card .model-details {
font-size: 12px;
color: var(--border-color);
margin-top: 4px;
}
/* Settings page */
.settings-page {
2026-05-16 16:13:59 +02:00
max-width: 960px;
}
.settings-layout {
display: flex;
gap: 16px;
}
.settings-layout-left {
flex: 1;
min-width: 0;
}
.settings-layout-right {
flex: 1;
min-width: 0;
}
.settings-layout-right .form-group textarea {
min-height: 120px;
font-family: monospace;
font-size: 12px;
resize: vertical;
}
.settings-actions {
display: flex;
gap: 8px;
align-items: center;
margin-top: 16px;
2026-05-14 12:31:35 +02:00
}
.settings-section {
background: var(--card-bg);
border: 1px solid var(--border-color);
padding: 16px;
margin-bottom: 12px;
}
.settings-section-title {
font-size: 14px;
font-weight: bold;
margin-bottom: 12px;
color: var(--accent-color);
border-bottom: 1px solid var(--border-color);
padding-bottom: 6px;
}
.form-hint {
font-size: 11px;
color: var(--border-color);
margin-top: 4px;
}
.settings-status {
margin-top: 16px;
padding: 10px;
background: var(--card-bg);
border: 1px solid var(--accent-color);
font-size: 13px;
}
/* Scrollbar styling */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: var(--window-bg);
}
::-webkit-scrollbar-thumb {
background: var(--border-color);
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: var(--accent-color);
}