body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    margin: 20px;
    background-color: #f7f7f7;
    color: #000;
}
header { text-align: center; margin-bottom: 15px; }
header h1 { margin-bottom: 10px; }
#viewSavedCoursesLink { display: inline-block; margin-bottom: 15px; color: #007bff; }
.search-mode-container { gap: 20px; display: flex; justify-content: center; margin-bottom: 15px; }
.search-container { margin-bottom: 20px; display: flex; gap: 10px; max-width: 900px; margin-left: auto; margin-right: auto; align-items: flex-start; }
#schoolSearchInput, #courseSearchInput, #searchButton { padding: 10px; border: 1px solid #ccc; border-radius: 0; font-size: 16px; box-sizing: border-box; }
#schoolSearchContainer { position: relative; flex-basis: 300px; }
#courseSearchInput:disabled { background-color: #e9ecef; cursor: not-allowed; }
.search-input-wrapper { position: relative; flex-grow: 1; }
#searchButton { background-color: #007bff; color: white; border: none; cursor: pointer; }
#searchButton:hover { background-color: #0056b3; }
#selectedSchoolDisplay { display: flex; align-items: center; justify-content: space-between; padding: 10px; border: 1px solid #28a745; background-color: #e9f5ff; border-radius: 0; }
#clearSchoolButton { background: none; border: none; font-size: 20px; cursor: pointer; color: #dc3545; padding: 0 5px; }
.suggestions-container { position: absolute; top: 100%; left: 0; right: 0; background-color: white; border: 1px solid #ccc; border-top: none; border-radius: 0; z-index: 1000; max-height: 200px; overflow-y: auto; }
.suggestion-item { padding: 10px; cursor: pointer; }
.suggestion-item:hover { background-color: #e9f5ff; }

/* Set table layout to fixed to respect column widths more strictly */
#resultsTable { 
    width: 100%; 
    border-collapse: collapse; 
    background-color: white; 
    table-layout: fixed; /* This helps enforce column widths */
}
/* Ensure all cell content is vertically centered */
#resultsTable th, #resultsTable td { 
    padding: 12px 15px; 
    text-align: left; 
    border-bottom: 1px solid #ddd; 
    color: inherit; 
    vertical-align: middle; /* This is a key part of the fix */
}
#resultsTable thead th { background-color: #f2f2f2; font-weight: 600; }

/* --- ADJUSTED COLUMN WIDTHS --- */
.col-transfer-school { width: 25%; }
.col-transfer-class  { width: 15%; }
.col-transfer-title  { width: 25%; }
.col-ksu-class       { width: 15%; }
.col-ksu-title       { width: 20%; }
.col-action          { width: 90px; text-align: center; } /* Fixed width for stability */

/* --- TEXT OVERFLOW HANDLING --- */
/* Any cell in these columns will now truncate long text with "..." */
.col-transfer-title, .col-ksu-title, .col-transfer-class, .col-ksu-class {
    white-space: nowrap; /* Prevent text from wrapping */
    overflow: hidden; /* Hide the overflowing text */
    text-overflow: ellipsis; /* Add the "..." */
}

.save-button, .remove-button { padding: 5px 10px; border-radius: 0; border: 1px solid #ccc; cursor: pointer; }
.save-button:disabled { cursor: not-allowed; background-color: #e9ecef; }
.remove-button { background-color: #f8d7da; border-color: #f5c6cb; }
#resultsTable tbody tr:nth-child(even) { background-color: #f9f9f9; }
#resultsTable tbody tr:hover { background-color: #e9f5ff; }
#resultsBody td { text-align: left; /* Keep text aligned left like headers */ padding: 12px 15px; }
#resultsBody tr:first-child td[colspan="6"] { text-align: center; color: #555; } /* Center placeholder text only */