#scan_direct_spinner{
    height: 100px;
    width: 100px;
    margin: auto;
    display: block;


  padding-top: 62px;

  overflow: hidden;
  margin: 0 auto;
  background: green; 
}

.scan-direct-modal .modal-content {
    height: calc(100vh - 2rem);
}

.scan-direct-modal-dialog {
    max-width: calc(100vw - 2rem);
    width: calc(100vw - 2rem);
    margin: 1rem auto;
}

.scan-direct-modal-body {
    min-height: 0;
    padding: 0;
}

.scan-direct-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 0;
    height: 100%;
    min-height: 0;
}

.scan-direct-preview-panel {
    position: relative;
    min-height: 0;
    background: #050505;
    border-right: 1px solid #dee2e6;
}

.scan-direct-preview-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 60vh;
    color: #ced4da;
    text-align: center;
    padding: 2rem;
}

.scan-direct-actions-panel {
    min-height: 0;
    overflow: auto;
    padding: 1rem;
}

.scan-direct-drop-zone {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    min-height: 7rem;
    margin: .75rem 0;
    padding: 1rem;
    color: #495057;
    text-align: center;
    border: 2px dashed #adb5bd;
    border-radius: .5rem;
    background: #f8f9fa;
    cursor: pointer;
}

.scan-direct-drop-zone span {
    font-size: .85rem;
    color: #6c757d;
}

.scan-direct-drop-zone.is-drag-over,
.scan-direct-drop-zone:focus {
    color: #0b5ed7;
    border-color: #0d6efd;
    background: #eef5ff;
    outline: 0;
}

.scan-direct-drop-zone.is-uploading {
    cursor: progress;
    opacity: .7;
}

.scan-direct-rotation-workspace {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    background: #050505;
}

.scan-direct-rotation-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .5rem .75rem;
    color: #f8f9fa;
    background: #111;
    border-bottom: 1px solid #343a40;
}

.scan-direct-rotation-pages {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 1.25rem;
    min-height: 0;
    overflow: auto;
    padding: 1.25rem;
    background: #050505;
}

.scan-direct-rotation-page {
    flex: 0 0 auto;
    width: 100%;
    max-width: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    padding: 0;
    border: 0;
    background: #050505;
}

.scan-direct-rotation-canvas-wrap {
    width: 100%;
    min-height: 68vh;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    background: #050505;
    overflow: auto;
}

.scan-direct-rotation-canvas-wrap canvas {
    display: block;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(255,255,255,.22), 0 1rem 2.5rem rgba(0,0,0,.5);
}

.scan-direct-rotation-actions {
    display: flex;
    gap: .5rem;
}

.scan-direct-rotation-page-label {
    font-size: .75rem;
    color: #f8f9fa;
}

.scan-direct-rotation-page--native {
    min-height: 72vh;
}

.scan-direct-native-preview-frame {
    width: 100%;
    min-height: 72vh;
    border: 0;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(255,255,255,.18), 0 1rem 2.5rem rgba(0,0,0,.5);
}

.scan-direct-native-preview-note {
    max-width: 100%;
    color: #adb5bd;
    font-size: .75rem;
    text-align: center;
    word-break: break-word;
}

@media (max-width: 991.98px) {
    .scan-direct-workspace {
        grid-template-columns: 1fr;
    }

    .scan-direct-preview-panel {
        border-right: 0;
        border-bottom: 1px solid #dee2e6;
    }

    .scan-direct-preview-empty {
        min-height: 50vh;
    }

    .scan-direct-rotation-canvas-wrap {
        min-height: 58vh;
    }

    .scan-direct-native-preview-frame {
        min-height: 58vh;
    }
}
