body {
    font-family: Georgia, serif;
    margin: 0;
    background: #f4f4f4;
}

.header {
    background: black;
    padding: 2rem;
    text-align: center;
    color: white;
    margin-top: 100px; /* Account for fixed sticky header */
}

.card {
    background: white;
    max-width: 1000px;
    margin: 2rem auto;
    padding: 2rem;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.15);
}

.note {
    font-size: 0.9rem;
    color: #555;
}

.mapper-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

#applyMapping {
    margin-top: 1rem;
    padding: 0.75rem;
    background: black;
    color: white;
    border: none;
    cursor: pointer;
}

.hidden {
    display: none;
}

.error {
    background: #aa0000;
    color: white;
    padding: 0.75rem;
    margin-top: 1rem;
    border-radius: 5px;
}

table {
    border-collapse: collapse;
    width: 100%;
}

td, th {
    padding: 8px;
    border-bottom: 1px solid #ccc;
}

.predict-grid {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 1rem;
}

.predict-btn {
    background: green;
    color: white;
    border: none;
    padding: 1rem;
    margin-top: 1rem;
    cursor: pointer;
    border-radius: 6px;
}

.preview-wrapper {
    max-width: 100%;
    max-height: 300px;     /* Adjust height if you want more/less */
    overflow-x: auto;      /* Horizontal scroll */
    overflow-y: auto;      /* Vertical scroll */
    border: 1px solid #ccc;
    border-radius: 8px;
    padding: 0.5rem;
    background: #fafafa;
}

#previewTable {
    border-collapse: collapse;
    width: max-content;    /* Prevent table from shrinking */
    min-width: 600px;      /* Ensures readable baseline width */
}

#previewTable th, #previewTable td {
    white-space: nowrap;   /* Keeps columns from wrapping */
}

