* { box-sizing: border-box; }
body {
    font-family: -apple-system, "Segoe UI", Arial, sans-serif;
    margin: 0;
    background: #f4f6fa;
    color: #222;
}
header {
    background: #1f4e79;
    color: white;
    padding: 16px 32px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
header a { color: #cfe0f5; }
main {
    max-width: 900px;
    margin: 32px auto;
    padding: 0 16px;
}
.upload-section {
    background: white;
    padding: 24px;
    border-radius: 8px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.1);
    margin-bottom: 32px;
}
.hint { color: #666; font-size: 14px; }
button {
    background: #1f4e79;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 4px;
    cursor: pointer;
    margin-top: 12px;
}
button:hover { background: #163a5c; }
table {
    width: 100%;
    border-collapse: collapse;
    background: white;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}
th, td {
    text-align: left;
    padding: 10px 14px;
    border-bottom: 1px solid #eee;
}
th { background: #eaf0f8; }

.login-body {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh;
}
.login-box {
    background: white;
    padding: 32px;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.15);
    width: 320px;
}
.login-box label { display: block; margin-top: 12px; font-size: 14px; }
.login-box input {
    width: 100%;
    padding: 8px;
    margin-top: 4px;
    border: 1px solid #ccc;
    border-radius: 4px;
}
.error { color: #c00000; font-size: 14px; }

.batch-result {
    background: #eef7ee;
    border: 1px solid #cde5cd;
    padding: 20px 24px;
    border-radius: 8px;
    margin-bottom: 32px;
}
.batch-result .success { color: #1e7145; font-weight: bold; }
.batch-result .error { margin-top: 8px; }
.batch-result ul { margin: 8px 0 0 0; padding-left: 20px; }
.batch-result li { margin-bottom: 6px; }
