body {
    font-family: 'Noto Sans KR', sans-serif; /* Modern Korean font */
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    min-height: 100vh;
    margin: 0;
    background-color: #eef2f5; /* Lighter background for a fresh look */
    color: #343a40; /* Darker text for better contrast */
    line-height: 1.6;
    padding: 30px; /* Increased padding */
    box-sizing: border-box;
}

h2 {
    font-family: 'Montserrat', sans-serif; /* A more distinct font for headings */
    color: #2c3e50;
    margin-bottom: 25px;
    text-align: center;
    font-size: 1.8em; /* Slightly larger for prominence */
    font-weight: 600; /* Medium-bold */
}

.main-layout {
    display: grid;
    gap: 30px; /* Increased space between map and table */
    width: 100%;
    max-width: 1400px; /* Wider layout */
    margin-top: 20px;
    grid-template-columns: 1fr;
    padding: 20px; /* Padding for the main layout container itself */
    background-color: #ffffff; /* White background for the main content area */
    border-radius: 15px; /* More rounded corners */
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08); /* Softer, deeper shadow */
}

@media (min-width: 992px) { /* Adjust breakpoint for two columns */
    .main-layout {
        grid-template-columns: 2fr 1fr; /* Map slightly wider than table */
    }
}

#map {
    height: 550px; /* Slightly increased map height */
    width: 100%;
    margin: 0;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.population-container {
    padding: 25px; /* Slightly increased padding */
    background-color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    width: 100%;
    margin: 0;
}

.population-container h2 {
    color: #2c3e50;
    margin-bottom: 20px;
    text-align: center;
}

table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
    border-radius: 8px; /* Rounded table corners */
    overflow: hidden; /* Ensures rounded corners are visible */
}

th, td {
    padding: 14px 18px; /* Increased padding */
    border: none; /* Remove individual cell borders for cleaner look */
    border-bottom: 1px solid #e9ecef; /* Light separator */
    text-align: left;
}

th {
    background-color: #f8f9fa; /* Lighter header background */
    font-weight: 700; /* Bolder header text */
    color: #495057; /* Darker header text */
    position: sticky;
    top: 0;
    z-index: 1; /* Ensure header stays on top if table scrolls */
}

tr:nth-child(even) {
    background-color: #fefefe; /* Very light alternate row */
}

tr:hover {
    background-color: #e6f7ff; /* Light blue hover effect */
    cursor: pointer;
}