* { margin: 0; padding: 0; box-sizing: border-box; user-select: none; } html, body { height: 100%; font-family: Arial, Helvetica, sans-serif; line-height: 1.5; -webkit-font-smoothing: antialiased; } img, picture, video, canvas, svg { display: block; max-width: 100%; } button, input, select, textarea { font: inherit; } a { color: inherit; text-decoration: none; } ul, ol { list-style: none; } /* General Body Styling */ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; background-color: #f8f9fa; color: #333; display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0; box-sizing: border-box; } /* Main Container */ .container { background-color: #ffffff; width: 100%; height: 100%; position: relative; } /* Header Section */ .header-face-check { text-align: center; border-bottom: 1px solid #e2e8f0; padding: 15px 0; } .title-header-face-check { font-size: 28px; font-weight: 600; } /* Main Content Layout */ .main-content { display: flex; } .description-upload-section { color: #6c757d; padding-bottom: 4px; } /* Upload Section Styling */ .upload-section { display: flex; flex-direction: column; width: 25%; height: calc(100vh - 73px); } .wrapper-upload-box { flex-grow: 1; overflow: scroll; } .upload-box { padding: 1rem; display: flex; flex-direction: column; } .upload-box > p { font-size: 18px; font-weight: 600; color: #454545; margin-bottom: 12px; } .drop-zone { border: 2px dashed #ced4da; border-radius: 8px; padding: 24px 4px; text-align: center; cursor: pointer; transition: background-color 0.2s ease, border-color 0.2s ease; flex-grow: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; } .drop-zone:hover { background-color: #f8f9fa; border-color: #adb5bd; } .drop-zone.drag-over { background-color: #e3f2fd; border-color: #2196f3; } .drop-zone-icon { width: 48px; height: 48px; color: #6c757d; margin-bottom: 1rem; } .drop-zone p { margin: 0.25rem 0; font-weight: 500; } .drop-zone span { font-size: 16px; font-weight: 700; line-height: 22px; color: #fd7e14; } .wrapper-upload { display: flex; flex-direction: column; align-items: center; justify-content: center; } .list-file { display: flex; flex-direction: column; gap: 12px; padding: 0 1rem 1rem 1rem; } .file-item { display: flex; align-items: center; gap: 8px; padding: 8px 16px; border: 1px solid #ced4da; border-radius: 16px; cursor: default; } .file-item .file-icon { display: inline-block; width: 40px; height: 40px; flex-shrink: 0; } .file-item .file-name { flex-grow: 1; text-decoration: underline; font-weight: 500; font-size: 16px; line-height: 22px; display: inline-block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; cursor: pointer; transition: opacity 0.2s ease; } .file-item .file-name:hover { opacity: 0.8; } .file-item .file-thumbnail { display: inline-block; width: 40px; height: 40px; border-radius: 12px; flex-shrink: 0; background-color: #f1f3f5; overflow: hidden; } .file-item .file-thumbnail-image { object-fit: cover; display: inline-block; } .file-item .file-thumbnail-video { display: inline-flex; align-items: center; justify-content: center; position: relative; background-color: #10151a; } .file-item .file-thumbnail-video video { width: 100%; height: 100%; object-fit: cover; pointer-events: none; } .file-item .file-thumbnail-video::before { content: ''; position: absolute; width: 28px; height: 28px; border-radius: 50%; background: rgba(0, 0, 0, 0.45); backdrop-filter: blur(2px); } .file-item .file-thumbnail-video::after { content: ''; position: absolute; width: 0; height: 0; border-left: 10px solid #ffffff; border-top: 7px solid transparent; border-bottom: 7px solid transparent; margin-left: 3px; } .file-item .preview { width: 24px; height: 24px; flex-shrink: 0; cursor: pointer; } .file-item .preview:hover { opacity: 0.8; } .file-item .file-remove { cursor: pointer; display: inline-block; width: 24px; height: 24px; flex-shrink: 0; } #file-input { display: none; } /* Button Styling */ .button-group { display: flex; gap: 0.75rem; padding: 20px 24px; border-top: 1px solid #e2e8f0; } .btn { padding: 0.75rem 1.5rem; border: none; border-radius: 6px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: background-color 0.2s ease; width: 50%; } .btn-clear { background-color: #e9ecef; color: #495057; border: 1px solid #dee2e6; } .btn-clear:hover { background-color: #dee2e6; } .wrapper-btn-save { display: flex; justify-content: center; align-items: center; width: 100%; background-color: #ffffff; border-top: 1px solid #e2e8f0; padding: 20px 24px; } .btn-submit { background-color: #fd7e14; color: #ffffff; } .btn-submit:hover { background-color: #f96d00; } /* Output Section Styling */ .output-section { flex: 1; display: flex; flex-direction: column; border-left: 1px solid #dee2e6; border-right: 1px solid #dee2e6; height: calc(100vh - 73px); background-color: #f5f5f5; } .output-section label { font-weight: 600; display: block; padding-left: 1rem; } .output-wrapper { position: relative; width: 100%; flex: 1 1; padding: 1rem; overflow: auto; } .wrapper-loading { position: absolute; top: 50%; left: 50%; } .output-face-check { position: relative; flex-grow: 1; width: 100%; height: 100%; padding: 1rem; border: 1px solid #ced4da; border-radius: 8px; resize: none; font-family: inherit; font-size: 1rem; box-sizing: border-box; background-color: #ffffff; } .btn-save { background-color: #e9ecef; color: #495057; border: 1px solid #dee2e6; align-self: flex-start; /* Align to the left */ width: 300px; } .btn-save:hover { background-color: #dee2e6; } .btn-save.active { background-color: #fd7e14; color: #ffffff; } .btn-save.active:hover { background-color: #f96d00; } .btn-disabled { cursor: not-allowed !important; } .display-none { display: none !important; } .wrapper-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); display: none; justify-content: center; align-items: center; z-index: 1000; } .modal { display: flex; gap: 24px; flex-direction: column; justify-content: center; align-items: center; padding: 12px 16px 24px 16px; background: white; border-radius: 16px; width: 700px; } .header-modal { /* height: 40px; */ width: 100%; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #eef1f4; } .header-modal .title { flex: 1; color: #454545; font-weight: 700; font-size: 16px; line-height: 22px; } .header-modal .close { height: 40px; width: 40px; display: block; cursor: pointer; } .content-modal { width: 100%; max-height: 80vh; overflow: auto; text-align: center; } .content-modal img, .content-modal video { width: 100%; height: auto; object-fit: cover; } .content-modal > pre { text-align: left; } .line { width: 100%; height: 1px; background-color: #e9e9e9; } .menu { display: flex; padding-top: 12px; border-bottom: 1px solid #e2e8f0; background-color: #ffffff; overflow: auto; } .menu .item { flex-shrink: 0; padding: 8px 16px; cursor: pointer; border-bottom: 2px solid #cbd5e1; font-weight: 600; font-size: 14px; line-height: 20px; color: #454545; white-space: normal; overflow: hidden; } .menu .item:hover { border-bottom: 2px solid #fd7e14; } .menu .item.no-hover { pointer-events: none; } .menu .item.active { border-bottom: 2px solid #fd7e14; } /* Responsive Design for smaller screens */ @media (max-width: 768px) { .main-content { flex-direction: column; } body { padding: 1rem; } .container { padding: 1.5rem; } .upload-section { width: 100%; } } @keyframes l2 { 100% { transform: rotate(calc(var(--s, 1) * 1turn)); } } .scroll-box { overflow: auto; /* scrollbar-width: none; */ -ms-overflow-style: none; } .scroll-box::-webkit-scrollbar { width: 0; height: 0; } .opacity-50 { opacity: 0.5; } .wrapper-status-face-check { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: #454545a8; display: flex; justify-content: center; align-items: center; } .status-face-check { display: flex; flex-direction: column; gap: 16px; width: 360px; color: #ffffff; } .header-status-face-check { display: flex; flex-direction: column; gap: 12px; } .title-status-face-check { display: flex; justify-content: space-between; } .step { font-weight: 600; font-size: 16px; } .wrapper-processing { width: 100%; height: 12px; border-radius: 1234px; background-color: #ffffff4d; } .processing { height: 100%; border-radius: 1234px; background-color: #4bed73; width: 30%; transition: width 0.3s ease; } .body-status-face-check { display: flex; flex-direction: column; gap: 12px; } .item-status-face-check { display: flex; gap: 8px; padding-left: 12px; } .content-status-face-check { flex: 1; display: flex; flex-direction: column; gap: 4px; } .name-service { font-size: 14px; font-weight: 500; line-height: 20px; } .status-service { font-size: 14px; font-weight: 400; line-height: 100%; } .wrapper-processing-item { width: 100%; height: 8px; border-radius: 1234px; background-color: #ffffff4d; overflow: hidden; position: relative; } .processing-item { position: absolute; top: 0; left: 0; height: 100%; border-radius: inherit; background-color: #fd7e14; } .pt-0 { padding-top: 0; } .mb-4 { margin-bottom: 1rem; } .pointer { cursor: pointer; } .loader { position: relative; width: 100%; height: 8px; border-radius: 1234px; background: #d6cccc; overflow: hidden; } .loader::before { content: ''; position: absolute; top: 0; left: -50%; width: 50%; height: 100%; background: #fd7e14; border-radius: inherit; animation: loading 2s infinite linear; } @keyframes loading { 0% { left: -50%; } 100% { left: 100%; } } .status-service.processing-dots .dots::after { content: ''; animation: dots 1.5s steps(4, end) infinite; } @keyframes dots { 0% { content: ''; } 25% { content: '.'; } 50% { content: '..'; } 75% { content: '...'; } 100% { content: ''; } } .json-box { background-color: #e9ecef; border-radius: 6px; padding: 16px 20px; font-family: Consolas, monospace; font-size: 14px; line-height: 1.6; color: #333; white-space: pre; box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05); text-align: left; } .note { margin-bottom: 12px; font-family: Arial, sans-serif; font-size: 14px; color: #444; } .image-bg { color: #176ebf; text-decoration: underline; cursor: pointer; } .image-bg:hover { opacity: 0.8; } .whitespace-pre-line { white-space: pre-line; } p { overflow-wrap: anywhere; } .live-chat { display: flex; gap: 10px; align-items: center; position: absolute; bottom: 20px; right: 50px; border-radius: 1234px; padding: 12px 20px; background-color: #28a745; color: #ffffff; cursor: pointer; box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15); z-index: 999; } .live-chat:hover { opacity: 0.8; } .live-chat-text { display: flex; align-items: center; white-space: nowrap; font-weight: 600; } .feedback { display: flex; flex-direction: column; width: 25%; height: calc(100vh - 73px); } .feedback .header-feedback { height: 51px; display: flex; justify-content: space-between; gap: 10px; align-items: center; padding-left: 16px; padding-right: 8px; border-bottom: 1px solid #e2e8f0; } .feedback .header-feedback .close-feedback { cursor: pointer; } .feedback .content-feedback { flex: 1 1; padding: 18px 12px; display: flex; flex-direction: column; gap: 24px; overflow: auto; } .content-feedback .question { display: flex; flex-direction: column; gap: 10px; } .content-feedback .question .textarea .textarea-label, .content-feedback .question .q-title { font-size: 16px; font-weight: 600; color: #454545; line-height: 18px; } .content-feedback .question .options { display: flex; flex-direction: column; gap: 12px; } .content-feedback .question .options .option { width: fit-content; } .content-feedback .question .options-stars { display: flex; gap: 12px; } .content-feedback .question .options .option .opt .option-text { line-height: 20px; } .content-feedback .question .options .option .opt { display: flex; gap: 8px; cursor: pointer; } .star { width: 32px; height: 32px; background: #e9ecef; cursor: pointer; clip-path: polygon( 50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35% ); } .options-stars .star.active { background: gold; } input[type='radio'] { display: none; } .radio { flex-shrink: 0; width: 20px; height: 20px; border: 2px solid #ced4da; border-radius: 50%; position: relative; cursor: cusror; } input[type='radio']:checked + .radio { border-color: #fd7e14; } input[type='radio']:checked + .radio::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 8px; height: 8px; background-color: #fd7e14; border-radius: 50%; } textarea { border-radius: 16px; padding: 16px; border: 1px solid #cbd5e1; } textarea:focus { outline: none; border-color: #fd7e14; } .feedback .footer-feedback { display: flex; justify-content: center; align-items: center; width: 100%; background-color: #ffffff; border-top: 1px solid #e2e8f0; padding: 20px 24px; } .feedback .footer-feedback .btn-feedback { background-color: #28a745; color: #ffffff; border: 1px solid transparent; } .feedback .footer-feedback .btn-feedback:hover { opacity: 0.8; } .feedback .header-feedback .content-header-feedback { font-size: 18px; font-weight: 600; color: #454545; } .shrink-0 { flex-shrink: 0; } .notification-content-feedback { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 24px 16px; } .notification-content-feedback .notification-message { font-size: 20px; line-height: 20px; font-weight: 600; color: #454545; } .flex { display: flex; } .flex-col { flex-direction: column; } .gap-6 { gap: 1.5rem; } .gap-2 { gap: 0.5rem; } .gap-3 { gap: 0.75rem; } .pr-4 { padding-right: 1rem; } .pl-4 { padding-left: 1rem; } .required { color: #de0b0b; } .label { font-size: 18px; font-weight: 600; color: #454545; margin-bottom: 12px; text-align: left; }