#chapters-editor-root { /* Tooltip styles - only on desktop where hover is available */ @media (hover: hover) and (pointer: fine) { [data-tooltip] { position: relative; } [data-tooltip]:before { content: attr(data-tooltip); position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); margin-bottom: 5px; background-color: rgba(0, 0, 0, 0.8); color: white; text-align: center; padding: 5px 10px; border-radius: 3px; font-size: 12px; white-space: nowrap; opacity: 0; visibility: hidden; transition: opacity 0.2s, visibility 0.2s; z-index: 1000; pointer-events: none; } [data-tooltip]:after { content: ""; position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); border-width: 5px; border-style: solid; border-color: rgba(0, 0, 0, 0.8) transparent transparent transparent; opacity: 0; visibility: hidden; transition: opacity 0.2s, visibility 0.2s; pointer-events: none; } [data-tooltip]:hover:before, [data-tooltip]:hover:after { opacity: 1; visibility: visible; } } /* Hide button tooltips on touch devices */ @media (pointer: coarse) { [data-tooltip]:before, [data-tooltip]:after { display: none !important; content: none !important; opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; } } .clip-segments-container { margin-top: 1rem; background-color: white; border-radius: 0.5rem; padding: 1rem; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); } .clip-segments-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.75rem; } .clip-segments-title { font-size: 0.875rem; font-weight: 500; color: var(--foreground, #333); margin: 0; } .save-chapters-button { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; background-color: #3b82f6; color: white; border: none; border-radius: 0.375rem; font-size: 0.875rem; font-weight: 500; cursor: pointer; transition: all 0.2s ease; &:hover { background-color: #2563eb; transform: translateY(-1px); box-shadow: 0 4px 6px -1px rgba(59, 130, 246, 0.3); } &.has-changes { background-color: #10b981; animation: pulse-green 2s infinite; } &.has-changes:hover { background-color: #059669; } svg { width: 1rem; height: 1rem; } } @keyframes pulse-green { 0%, 100% { background-color: #10b981; } 50% { background-color: #34d399; } } .chapter-editor { background-color: #f8fafc; border: 2px solid #3b82f6; border-radius: 0.5rem; padding: 1rem; margin-bottom: 1rem; transition: all 0.2s ease; } .chapter-editor-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.75rem; } .chapter-editor-header h4 { margin: 0; font-size: 0.875rem; font-weight: 600; color: #1f2937; } .chapter-editor-segment { font-size: 0.75rem; color: #6b7280; background-color: #e5e7eb; padding: 0.25rem 0.5rem; border-radius: 0.25rem; } .chapter-title-input { width: 100%; padding: 0.75rem; border: 1px solid #d1d5db; border-radius: 0.375rem; font-size: 0.875rem; resize: vertical; transition: border-color 0.2s ease, box-shadow 0.2s ease; &:focus { outline: none; border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); } &::placeholder { color: #9ca3af; } } .chapter-editor-info { margin-top: 0.5rem; font-size: 0.75rem; color: #6b7280; font-style: italic; } .segment-item { display: flex; align-items: center; justify-content: space-between; padding: 0.5rem; border: 1px solid #e5e7eb; border-radius: 0.25rem; margin-bottom: 0.5rem; transition: all 0.2s ease; &:hover { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); } &.selected { border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); background-color: rgba(59, 130, 246, 0.05); } } .segment-content { display: flex; align-items: center; } .segment-info { display: flex; flex-direction: column; } .segment-title { font-weight: 500; font-size: 0.875rem; color: black; } .chapter-title { color: #1f2937; font-weight: 600; } .default-title { color: #6b7280; font-style: italic; } .segment-time { font-size: 0.75rem; color: black; } .segment-duration { font-size: 0.75rem; margin-top: 0.25rem; display: inline-block; background-color: #f3f4f6; padding: 0 0.5rem; border-radius: 0.25rem; color: black; } .segment-actions { display: flex; align-items: center; gap: 0.5rem; } .delete-button { padding: 0.375rem; color: #4b5563; background-color: #e5e7eb; border-radius: 9999px; border: none; cursor: pointer; transition: background-color 0.2s, color 0.2s; min-width: auto; &:hover { color: black; background-color: #d1d5db; } svg { height: 1rem; width: 1rem; } } .empty-message { padding: 1rem; text-align: center; color: rgba(51, 51, 51, 0.7); } .segment-color-1 { background-color: rgba(59, 130, 246, 0.15); } .segment-color-2 { background-color: rgba(16, 185, 129, 0.15); } .segment-color-3 { background-color: rgba(245, 158, 11, 0.15); } .segment-color-4 { background-color: rgba(239, 68, 68, 0.15); } .segment-color-5 { background-color: rgba(139, 92, 246, 0.15); } .segment-color-6 { background-color: rgba(236, 72, 153, 0.15); } .segment-color-7 { background-color: rgba(6, 182, 212, 0.15); } .segment-color-8 { background-color: rgba(250, 204, 21, 0.15); } /* Responsive styles */ @media (max-width: 768px) { .clip-segments-header { flex-direction: column; gap: 0.75rem; align-items: stretch; } .save-chapters-button { justify-content: center; } .chapter-editor-header { flex-direction: column; gap: 0.5rem; align-items: flex-start; } .chapter-editor-segment { align-self: stretch; text-align: center; } } }