.validation-table { box-shadow: 0 2px 6px rgba(60, 64, 67, 0.15); background: white; border-radius: 24px 24px 0px 0px; height: calc(100vh - 180px); } .validation-table .table { margin-bottom: 0; border-collapse: separate; border-spacing: 0; border: none; } .validation-table th { background-color: #ffffff; font-weight: 500; font-size: 13px; letter-spacing: 0.3px; padding: 18px 16px; border: none; position: sticky; top: 0; z-index: 10; } .btn { font-family: 'Google Sans', Arial, sans-serif; font-weight: 500; border-radius: 24px; padding: 8px 24px; transition: all 0.2s; text-transform: none; letter-spacing: .25px; height: 36px; font-size: 14px; } .btn-outline-primary:hover { background-color: #f6fafe; border-color: #1a73e8; color: #1557b0; } .validation-table td { padding: 16px; vertical-align: middle; color: #202124; font-size: 14px; border: none; } .validation-table tbody tr { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .validation-table tbody tr:hover { background-color: #f8f9fa; transform: translateY(-1px); box-shadow: 0 2px 5px rgba(0,0,0,0.05); } .material-radio { padding: 12px 16px; border-radius: 8px; transition: all 0.2s ease; cursor: pointer; display: flex; align-items: center; margin: 4px 0; } .material-radio:hover { background-color: #e8f0fe; transform: translateY(-1px); } .material-radio .form-check-input { width: 18px; height: 18px; margin-right: 12px; cursor: pointer; } .material-radio .form-check-label { font-size: 14px; color: #5f6368; cursor: pointer; display: flex; align-items: center; width: 100%; } .material-radio .form-check-input:checked { background-color: #1a73e8; border-color: #1a73e8; } .validation-table .badge { font-size: 12px; font-weight: 500; padding: 8px 16px; border-radius: 16px; text-transform: uppercase; letter-spacing: 0.5px; } .badge.bg-success { background-color: #e6f4ea !important; color: #34a853; } .badge.bg-warning { background-color: #fef7e0 !important; color: #f9ab00; } .badge.bg-primary { background-color: #e8f0fe !important; color: #1a73e8; font-weight: 500; font-size: 12px; padding: 6px 12px; border-radius: 12px; } .validation-table .btn-sm { padding: 8px 16px; font-size: 13px; border-radius: 8px; font-weight: 500; transition: all 0.2s ease; min-width: 80px; } .validation-table .btn-sm:hover { transform: translateY(-1px); box-shadow: 0 2px 5px rgba(0,0,0,0.1); } .pagination { gap: 4px; } .pagination .page-link { border: none; padding: 8px 16px; color: #5f6368; border-radius: 20px; font-size: 14px; } .pagination .page-item.active .page-link { background-color: #1a73e8; color: white; } .pagination .page-item:not(.active) .page-link:hover { background-color: #f8f9fa; } @media (max-width: 768px) { .validation-table { margin: 0 -16px; border-radius: 0; } .validation-table td, .validation-table th { padding: 12px; } .col-md-3 { margin-bottom: 16px; } .sticky-card { position: static; height: auto; } .main-container { height: auto; overflow: visible; margin-bottom: 0; /* Removed bottom margin for mobile */ } .col-3 { width: 100%; margin-bottom: 16px; } .col-9 { width: 100%; } .validation-table-container { height: auto; max-height: calc(100vh - 300px); } /* Filter form responsive styles */ #filterForm { flex-direction: column !important; gap: 12px !important; } #filterForm .col { width: 100%; } #filterForm .col-auto { width: 100%; } #filterForm button { width: 100%; margin-top: 8px; } .filter-select select { width: 100%; max-width: none; } /* Adjust spacing in filter card */ .card-body { padding: 16px 12px; } .row.align-items-center { flex-direction: column; gap: 12px; } .row.align-items-center .col-auto { width: 100%; text-align: left; } .filter-title { margin-bottom: 8px !important; } /* Adjust filter select height for better touch targets */ .filter-select select { height: 48px; font-size: 16px; /* Prevent iOS zoom on focus */ } .btn { height: 48px; font-size: 16px; } .mobile-filter-form { display: grid !important; grid-template-columns: 1fr !important; gap: 8px !important; margin: 0 !important; } .mobile-filter-form .col, .mobile-filter-form .col-auto { padding: 0 !important; margin: 0 !important; width: 100% !important; } .card-body { padding: 12px !important; } .filter-select select { margin: 0; } .btn-primary { margin: 0; width: 100%; } /* Hide the filter title on mobile */ .filter-title { display: none; } /* Navigation button styles for mobile */ .btn-outline-primary { padding: 6px 16px; font-size: 13px; height: 32px; min-width: 72px; display: flex; align-items: center; justify-content: center; } /* Adjust header spacing */ .pt-3 { padding-top: 12px !important; } .pb-3 { padding-bottom: 12px !important; } /* Adjust gap between buttons */ .gap-3 { gap: 8px !important; } /* Hide icons in validation action buttons on mobile */ .validation-actions .btn i { display: none; } /* Adjust button padding since icons are hidden */ .validation-actions .btn { padding: 8px 16px; } /* Make buttons take equal width */ .validation-actions button { flex: 1; min-width: 0; } /* Reduce spacing in single recording view */ /* Make audio player more compact */ .audio-player { margin-bottom: 12px; } /* Reduce spacing in transcript box */ .transcript-box { padding: 6px; margin-bottom: 12px; } /* Reduce gap between buttons */ .validation-actions { gap: 8px; margin-top: 12px; } /* Make buttons smaller */ .validation-actions button { min-width: 100px; padding: 6px 12px; height: 36px; } /* Reduce spacing in header */ .d-flex.justify-content-between.align-items-center { padding-top: 8px !important; padding-bottom: 8px !important; } /* Make filter section more compact */ .card.mb-4 { margin-bottom: 8px !important; } .card-body { padding: 8px !important; } /* Reduce details section spacing */ .d-flex.justify-content-between.align-items-center.mb-4 { margin-bottom: 8px !important; } /* Adjust heading size */ h5.mb-0 { font-size: 16px; } /* Make badge smaller */ .badge { padding: 4px 8px; font-size: 11px; } /* Reduce container padding */ .container-fluid { padding-left: 8px !important; padding-right: 8px !important; } /* Reduce horizontal spacing */ .container-fluid { padding-left: 4px !important; padding-right: 4px !important; } /* Make single recording view take full width */ .single-recording-view { padding: 8px 6px; margin: 4px; border-radius: 16px; } /* Reduce card body padding */ .card-body { padding: 8px 4px !important; } /* Reduce transcript box padding */ /* Reduce validation actions spacing */ .validation-actions { gap: 6px; padding: 0 4px; } /* Make buttons more compact */ .validation-actions button { min-width: 90px; padding: 6px 8px; } /* Reduce filter form spacing */ .mobile-filter-form { padding: 0 4px !important; } /* Adjust badge padding */ .badge { padding: 4px 6px; } .speaker-info-container { gap: 4px; } .badge { font-size: 11px; padding: 4px 8px; } .validation-actions button.btn-success, .validation-actions button.btn-danger { font-size: 14px; padding: 8px 16px; } /* Updated filter styles for mobile */ .card.mb-4.border-0 { margin-bottom: 12px !important; border-radius: 16px !important; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1) !important; } .card-body { padding: 12px !important; } /* Filter form styles */ #filterForm { flex-direction: column !important; gap: 16px !important; } .filter-item { margin-bottom: 0; } #filterCollapse { padding-top: 12px; } .filter-select select { width: 100%; height: 48px; padding: 12px; font-size: 16px; border-radius: 12px; background-color: #f8f9fa; border: 1px solid #dadce0; appearance: none; } .filter-select { position: relative; } .select-arrow { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: #5f6368; pointer-events: none; } .btn-outline-primary { border-radius: 12px; padding: 12px 16px; height: auto; display: flex; align-items: center; justify-content: space-between; font-weight: 500; border: 1px solid #dadce0; color: #1a73e8; margin-bottom: 0; } .btn-primary { border-radius: 12px; height: 48px; font-size: 16px; font-weight: 500; } .col-12.col-md-auto { width: 100%; } } .empty-state { text-align: center; padding: 48px 24px; background: #f8f9fa; border-radius: 8px; margin: 16px 0; } .empty-state i { font-size: 48px; color: #dadce0; margin-bottom: 16px; } .empty-state h6 { color: #5f6368; margin-bottom: 8px; } .empty-state p { color: #80868b; font-size: 14px; margin: 0; } .main-container { height: calc(100vh - 50px); /* Increased from -80px */ overflow: hidden; margin-bottom: 0; /* Removed bottom margin */ margin-bottom: 0 !important; } .sticky-header{ border-radius: 24px; border: none; } .sticky-card { display: none; } .setup-form-container { display: none; } .setup-form-scroll { display: none; } .validation-container { flex: 1; height: calc(100vh - 200px); overflow-y: auto; background: white; border-radius: 8px; box-shadow: inset 0 -10px 10px -10px rgba(0,0,0,0.05); } .validation-table-container { height: calc(100vh - 180px); overflow-y: auto; position: relative; border-radius: 24px; } #scrollContainer { height: calc(100vh - 180px); overflow-y: auto; scrollbar-width: none; /* Firefox */ -ms-overflow-style: none; /* IE and Edge */ scroll-behavior: smooth; -webkit-overflow-scrolling: touch; /* Smooth scrolling on iOS */ will-change: scroll-position; /* Optimize scrolling performance */ transform: translateZ(0); /* Force GPU acceleration */ backface-visibility: hidden; /* Reduce flickering */ } #scrollContainer::-webkit-scrollbar { display: none; /* Chrome, Safari and Opera */ } .material-radio-group { background: #f8f9fa; border-radius: 12px; padding: 12px; margin-bottom: 20px; } .empty-validation-state { text-align: center; padding: 48px 24px; background: #f8f9fa; border-radius: 8px; margin: 16px 0; } .empty-validation-state i { font-size: 48px; color: #dadce0; margin-bottom: 16px; } .loading-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255, 255, 255, 0.8); display: flex; align-items: center; justify-content: center; z-index: 1000; } .loading-spinner { width: 40px; height: 40px; border: 3px solid #e8f0fe; border-top: 3px solid #1a73e8; border-radius: 50%; animation: spin 0.8s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .validation-pagination { background: white; padding: 16px; border-radius: 0 0 8px 8px; box-shadow: 0 -1px 2px rgba(60, 64, 67, 0.15); } .btn-primary { border: none; padding: 12px 24px; border-radius: 24px; font-weight: 500; transition: all 0.2s ease; height: 40px; display: flex; align-items: center; justify-content: center; } .btn-primary:hover { box-shadow: 0 2px 6px rgba(26, 115, 232, 0.3); transform: translateY(-1px); } @media (max-width: 768px) { .main-container { height: auto; overflow: visible; margin-bottom: 0; /* Removed bottom margin for mobile */ } .sticky-card { position: static; height: auto; } .validation-container { height: auto; max-height: calc(100vh - 300px); } .col-3 { width: 100%; margin-bottom: 16px; } .col-9 { width: 100%; } .status-options { flex-direction: column; gap: 4px; } .filter-select select, .status-option label, .btn-primary { height: 36px; font-size: 13px; } .status-option label { padding: 6px 12px; } .shortcuts-list { gap: 8px; } .shortcut-item { font-size: 13px; } } #validateRecordings.card { border-radius: 24px; border: none; box-shadow: 0 2px 6px rgba(60, 64, 67, 0.15); } /* Filter Styles */ .filter-header { display: none; } .filter-title { color: #202124; font-size: 16px; font-weight: 500; white-space: nowrap; } .filter-title i { color: #1a73e8; } .filter-description { display: none; } .filter-badge { display: none; } .filter-section { display: none; } .filter-label { display: none; } .filter-select { position: relative; } .filter-select select { width: 100%; padding: 8px 16px; border: 1px solid #dadce0; border-radius: 8px; appearance: none; background: white; color: #202124; font-size: 14px; height: 40px; } .select-arrow { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: #5f6368; pointer-events: none; } .status-options { display: flex; gap: 8px; } .status-option { flex: 1; } .status-option input[type="radio"] { display: none; } .status-option label { width: 100%; height: 40px; display: flex; align-items: center; padding: 8px 16px; background: white; border: 1px solid #dadce0; border-radius: 8px; cursor: pointer; transition: all 0.2s ease; justify-content: center; } .status-option label i { margin-right: 12px; font-size: 16px; } .status-option label span { color: #202124; font-size: 14px; } .status-option input[type="radio"]:checked + label { background: #e8f0fe; border-color: #1a73e8; } .apply-filters-btn { margin-top: 8px; background: #1a73e8; color: white; border: none; height: 44px; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 500; } .apply-filters-btn:hover { background: #1557b0; box-shadow: 0 2px 6px rgba(26, 115, 232, 0.3); } /* Remove unused styles */ .sticky-card, .setup-form-container, .setup-form-scroll, .filter-header, .filter-description, .filter-badge, .filter-section, .filter-label { display: none; } /* Selected row styles */ .selected-row { background-color: #e8f0fe !important; outline: 2px solid #1a73e8; } /* Keyboard shortcuts modal styles */ .shortcuts-list { display: flex; flex-direction: column; gap: 12px; } .shortcut-item { display: flex; align-items: center; gap: 12px; } kbd { background-color: #f8f9fa; border: 1px solid #dadce0; border-radius: 4px; color: #202124; display: inline-block; font-family: 'Google Sans', monospace; font-size: 12px; font-weight: 500; line-height: 1; padding: 4px 8px; white-space: nowrap; } .shortcut-item span { color: #5f6368; font-size: 14px; } /* Make rows focusable with keyboard */ .validation-table tr { cursor: pointer; outline: none; } .validation-table tr:focus { background-color: #e8f0fe; } .single-recording-view { max-width: 800px; margin: 0 auto; padding: 16px; background: white; border-radius: 24px; box-shadow: 0 2px 6px rgba(60, 64, 67, 0.15); } .transcript-box { background: #f8f9fa; border-radius: 12px; padding: 6px; font-size: 20px; /* Added font-size */ } .validation-actions { display: flex; gap: 16px; justify-content: center; margin-top: 24px; } .validation-actions button { min-width: 120px; } .validation-actions button.btn-success { background-color: #1a73e8; border-color: #1557b0; color: white; } .validation-actions button.btn-success:hover { background-color: #1557b0; box-shadow: 0 2px 6px rgba(26, 115, 232, 0.3); } .validation-actions button.btn-danger { background-color: #ea4335; border-color: #d93025; color: white; } .validation-actions button.btn-danger:hover { background-color: #d93025; box-shadow: 0 2px 6px rgba(234, 67, 53, 0.3); } .no-recordings { text-align: center; padding: 48px 24px; } .no-recordings i { font-size: 48px; color: #dadce0; margin-bottom: 16px; } .speaker-info-container { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; } .badge.bg-info { background-color: #e8f0fe !important; color: #1967d2; } .badge.bg-secondary { background-color: #f1f3f4 !important; color: #5f6368; } .badge.bg-light { background-color: #f8f9fa !important; color: #3c4043; border: 1px solid #dadce0; } .badge.bg-accent { background-color: #fce8e6 !important; color: #d93025; } /* Mobile filter styles */ .filter-mobile-label { font-size: 12px; font-weight: 500; color: #5f6368; margin-bottom: 4px; display: block; } .filter-chevron { transition: transform 0.3s ease; } button[aria-expanded="true"] .filter-chevron { transform: rotate(180deg); }