feat: implement initial ObsiGate application with backend API, indexing, search, and basic frontend.

This commit is contained in:
2026-03-24 12:56:00 -04:00
parent d6ae501f51
commit c5e395005f
4 changed files with 318 additions and 2 deletions
+66
View File
@@ -3353,3 +3353,69 @@ body.popup-mode .content-area {
box-shadow: 0 8px 30px rgba(0,0,0,0.15);
box-sizing: border-box;
}
/* ---------------------------------------------------------------------------
Recent Tab Styles
--------------------------------------------------------------------------- */
/* Liste récente */
.recent-list { display: flex; flex-direction: column; gap: 2px; padding: 4px 0; }
/* Item */
.recent-item {
padding: 10px 12px;
border-radius: 6px;
cursor: pointer;
border-left: 3px solid transparent;
transition: background 0.15s, border-color 0.15s;
}
.recent-item:hover {
background: var(--bg-secondary);
border-left-color: var(--accent);
}
.recent-item.active { border-left-color: var(--accent); background: var(--bg-secondary); }
/* Header: temps + badge vault */
.recent-item-header {
display: flex; justify-content: space-between; align-items: center;
margin-bottom: 3px;
}
.recent-time { font-size: 11px; color: var(--text-muted); display: flex; align-items: center; gap: 4px; }
.recent-vault-badge {
font-size: 10px; font-weight: 600; padding: 1px 6px;
border-radius: 10px; background: var(--accent); color: #fff; opacity: 0.85;
}
/* Titre */
.recent-item-title { font-size: 13px; font-weight: 600; color: var(--text-primary); margin-bottom: 2px; }
/* Breadcrumb path */
.recent-item-path { font-size: 11px; color: var(--text-muted); margin-bottom: 4px; font-family: monospace; }
/* Preview */
.recent-item-preview {
font-size: 12px; color: var(--text-muted);
display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical;
overflow: hidden; line-height: 1.4; margin-bottom: 5px;
}
/* Tags */
.recent-item-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.recent-item-tags .tag-pill {
font-size: 10px; padding: 1px 6px; border-radius: 10px;
background: var(--bg-secondary); color: var(--accent); border: 1px solid var(--border);
}
/* Filtre vault */
.recent-filter-bar { padding: 8px 12px 4px; }
.recent-filter-bar select {
width: 100%; padding: 4px 8px; font-size: 12px;
background: var(--bg-secondary); color: var(--text-primary);
border: 1px solid var(--border); border-radius: 4px; cursor: pointer;
}
/* État vide */
.recent-empty {
display: flex; flex-direction: column; align-items: center;
padding: 32px 16px; color: var(--text-muted); gap: 8px; font-size: 13px;
}