* { margin: 0; padding: 0; box-sizing: border-box; font-family: "Microsoft YaHei", sans-serif; }
body { background: #f4f6fa; color: #333; }

.login-page {
    height: 100vh; display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #667eea, #764ba2);
}
.login-box {
    background: #fff; padding: 40px; border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0,0,0,.2); width: 380px;
}
.login-box h2 { text-align: center; margin-bottom: 25px; color: #4a4a4a; }
.hint { text-align: center; color: #999; font-size: 12px; margin-top: 15px; }

.form-group { margin-bottom: 18px; }
.form-group label { display: block; margin-bottom: 6px; font-size: 14px; color: #555; }
.form-group input, .form-group textarea {
    width: 100%; padding: 10px 12px; border: 1px solid #d0d7e2;
    border-radius: 6px; font-size: 14px; outline: none; transition: .2s;
}
.form-group input:focus, .form-group textarea:focus {
    border-color: #667eea; box-shadow: 0 0 0 3px rgba(102,126,234,.15);
}

.btn-primary {
    width: 100%; padding: 12px; background: #667eea; color: #fff;
    border: none; border-radius: 6px; font-size: 16px; cursor: pointer;
    transition: .2s;
}
.btn-primary:hover { background: #5568d3; }
.btn-logout, .btn-back {
    color: #fff; text-decoration: none; margin-left: 15px;
    padding: 6px 14px; background: rgba(255,255,255,.2); border-radius: 4px;
    font-size: 14px;
}
.btn-logout:hover, .btn-back:hover { background: rgba(255,255,255,.35); }

.navbar {
    background: #4a5fc1; color: #fff; padding: 14px 30px;
    display: flex; justify-content: space-between; align-items: center;
}
.navbar .brand { font-size: 18px; font-weight: bold; }
.navbar .user-info { font-size: 14px; }

.container { max-width: 1100px; margin: 30px auto; padding: 0 20px; }
.container h2 { margin-bottom: 25px; color: #333; font-size: 20px; }

.card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 20px;
}
.card {
    background: #fff; border-radius: 10px; padding: 30px 20px;
    text-align: center; text-decoration: none; color: #333;
    box-shadow: 0 4px 12px rgba(0,0,0,.06); transition: .25s;
    border: 1px solid #eef1f8;
}
.card:hover {
    transform: translateY(-4px); box-shadow: 0 8px 24px rgba(102,126,234,.2);
    border-color: #667eea;
}
.card-icon { font-size: 42px; margin-bottom: 12px; }
.card-title { font-size: 17px; font-weight: bold; margin-bottom: 6px; }
.card-desc { font-size: 13px; color: #888; }

.form-card, .record-list {
    background: #fff; padding: 25px; border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0,0,0,.06); margin-bottom: 25px;
}
.form-card h3, .record-list h3 { margin-bottom: 18px; color: #4a5fc1; }
.form-row { display: flex; gap: 20px; flex-wrap: wrap; }
.form-row .form-group { flex: 1; min-width: 200px; }

.preview-img {
    margin-top: 10px; max-width: 220px; border-radius: 6px;
    border: 1px solid #ddd;
}

.data-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.data-table th, .data-table td {
    padding: 10px 12px; border-bottom: 1px solid #eee; text-align: left;
}
.data-table th { background: #f5f7fc; color: #555; }
.data-table tr:hover { background: #fafbff; }
.empty { color: #999; text-align: center; padding: 20px; }

.alert { padding: 12px 18px; border-radius: 6px; margin-bottom: 18px; font-size: 14px; }
.alert.success { background: #e8f8ee; color: #1d7a3f; border-left: 4px solid #2ecc71; }
.alert.error   { background: #fdecea; color: #c0392b; border-left: 4px solid #e74c3c; }
