diff --git a/go-backend/internal/web/ui/app.css b/go-backend/internal/web/ui/app.css index 4df44fe..e6d786e 100644 --- a/go-backend/internal/web/ui/app.css +++ b/go-backend/internal/web/ui/app.css @@ -1283,6 +1283,8 @@ td.text-right .borderless-icon-button.ui-icon-button-ghost.ui-icon-button-danger .task-list { display: flex; flex-direction: column; + gap: 8px; + padding: 8px; } .task-row { @@ -2032,3 +2034,190 @@ td.text-right .borderless-icon-button.ui-icon-button-ghost.ui-icon-button-danger font-size: 0.875rem; padding-bottom: 12px; } + +.tablo-kanban-board { + display: flex; + gap: 16px; + overflow-x: auto; + padding-bottom: 16px; + padding-top: 24px; +} + +.tablo-kanban-column { + background: var(--color-surface-default); + border: 1px solid var(--color-border-default); + border-radius: 0.75rem; + flex-shrink: 0; + overflow: hidden; + width: 18rem; +} + +.tablo-kanban-column-header { + align-items: center; + background: var(--color-surface-muted); + display: flex; + gap: 8px; + justify-content: space-between; + padding: 12px 16px; +} + +.tablo-kanban-column-title { + color: var(--color-text-primary); + font-size: 0.875rem; + font-weight: 600; + margin: 0; +} + +.tablo-kanban-task-count { + background: var(--color-surface-default); + border: 1px solid var(--color-border-muted); + border-radius: 9999px; + color: var(--color-text-secondary); + font-size: 0.75rem; + padding: 0 8px; +} + +.tablo-kanban-add-link { + color: var(--color-text-brand); + font-size: 0.875rem; + font-weight: 400; + margin-left: auto; + text-decoration: none; +} + +.tablo-kanban-empty { + color: var(--color-text-faint); + font-size: 0.875rem; + padding: 24px 16px; + text-align: center; +} + +.task-card { + background: var(--color-surface-default); + border: 1px solid var(--color-border-default); + border-radius: 8px; + cursor: pointer; + display: flex; + flex-direction: column; + gap: 8px; + padding-block: 8px; + padding-inline: 12px; + transition: box-shadow 0.12s ease, border-color 0.12s ease; +} + +.task-card:hover { + border-color: var(--color-border-strong); + box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08); +} + +.task-card-top-row { + align-items: flex-start; + display: flex; + gap: 6px; +} + +.task-drag-handle { + color: var(--color-text-faint); + cursor: grab; + flex-shrink: 0; + font-size: 1rem; + opacity: 0; + transition: opacity 0.12s ease; +} + +.task-card:hover .task-drag-handle { + opacity: 1; +} + +.task-card-title { + color: var(--color-text-primary); + flex: 1; + font-size: 0.875rem; + font-weight: 400; + line-height: 1.4; + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.task-card-delete { + flex-shrink: 0; + opacity: 0; + transition: opacity 0.12s ease; +} + +.task-card:hover .task-card-delete { + opacity: 1; +} + +.tablo-etapes-section { + border-top: 1px solid var(--color-border-muted); + margin-top: 24px; + padding-top: 24px; +} + +.tablo-etapes-section h2, +.tablo-etapes-section h3 { + color: var(--color-text-primary); + font-size: 1rem; + font-weight: 600; + margin: 0 0 12px 0; +} + +.tablo-etapes-section ul { + display: flex; + flex-direction: column; + gap: 8px; + list-style: none; + margin: 0; + padding: 0; +} + +.tablo-etape-row { + align-items: center; + background: var(--color-surface-default); + border: 1px solid var(--color-border-default); + border-radius: 8px; + display: flex; + gap: 12px; + justify-content: space-between; + padding: 10px 16px; +} + +.tablo-etape-name { + color: var(--color-text-primary); + font-size: 0.875rem; + font-weight: 500; +} + +.tablo-etape-count { + color: var(--color-text-secondary); + font-size: 0.75rem; +} + +.tablo-files-table-wrapper { + border: 1px solid var(--color-border-default); + border-radius: 12px; + overflow: hidden; +} + +.tablo-files-table-wrapper thead tr { + background: var(--color-surface-muted); +} + +.tablo-files-table-wrapper thead th { + color: var(--color-text-muted); + font-size: 0.75rem; + font-weight: 600; + letter-spacing: 0.04em; + text-transform: uppercase; +} + +.tablo-files-table-wrapper tbody tr { + border-bottom: 1px solid var(--color-border-default); +} + +.tablo-files-table-wrapper tbody tr:hover { + background: var(--color-surface-subtle); +}