/* CV2DB Custom Styles */
:root {
    --smc-teal:    #0d7377;
    --smc-dark:    #14213d;
    --smc-light:   #f8f9fa;
}

body { background-color: #f5f6fa; }

.navbar-brand { letter-spacing: 1px; font-size: 1.3rem; }

/* Cards */
.card { border: none; box-shadow: 0 1px 4px rgba(0,0,0,.1); }
.card-header { background-color: var(--smc-dark); color: #fff; }

/* Badges */
.badge-skill { background-color: #e9ecef; color: #495057; font-weight: 500; margin: 2px; }

/* Progress bar */
.progress { height: 28px; border-radius: 6px; }
.progress-bar { font-size: .85rem; font-weight: 600; }

/* Upload zones */
.upload-zone {
    border: 2px dashed #ced4da;
    border-radius: 8px;
    padding: 2rem;
    text-align: center;
    cursor: pointer;
    transition: border-color .2s, background .2s;
}
.upload-zone:hover, .upload-zone.drag-over {
    border-color: var(--smc-teal);
    background-color: #f0fbfb;
}
.upload-zone input[type=file] { display: none; }

/* Spinner overlay */
#spinner-overlay {
    display: none;
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(255,255,255,.75);
    z-index: 9999;
    align-items: center; justify-content: center;
}
#spinner-overlay.active { display: flex; }

/* Batch log */
.batch-log { max-height: 320px; overflow-y: auto; font-size: .85rem; }
.batch-log .log-entry { padding: 4px 8px; border-bottom: 1px solid #f0f0f0; }
.batch-log .log-entry.success { border-left: 3px solid #198754; }
.batch-log .log-entry.failed  { border-left: 3px solid #dc3545; }

/* Candidate tabs */
.nav-tabs .nav-link { color: #495057; }
.tab-content { padding: 1.5rem; background: #fff; border: 1px solid #dee2e6; border-top: none; border-radius: 0 0 .375rem .375rem; }
pre.raw-text { max-height: 400px; overflow-y: auto; white-space: pre-wrap; font-size: .82rem; }

/* Confidence badges */
.badge-high   { background-color: #198754 !important; }
.badge-medium { background-color: #ffc107 !important; color: #000 !important; }
.badge-low    { background-color: #dc3545 !important; }

/* Coming soon placeholder */
.coming-soon-card { opacity: .7; }

/* Flash messages */
.flash-container { position: sticky; top: 70px; z-index: 1040; }

/* Table improvements */
.table th { background-color: #f8f9fa; font-size: .875rem; }
.table-hover tbody tr:hover { background-color: #f0f7ff; }
