:root {
    --primary-color: #007bff;
    --primary-color-light: #5cadff;
    --background-color: #f4f7f9;
    --text-color: #333;
    --card-background: #ffffff;
    --shadow-color: rgba(0, 0, 0, 0.08);
    --border-color: #e8e8e8;
}

body {
    background-color: var(--background-color);
    color: var(--text-color);
    font-family: 'Helvetica Neue', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

#app {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    min-height: 100vh;
    padding: 40px 20px;
}

.ant-card {
    border-radius: 12px !important;
    border: none !important;
    box-shadow: 0 10px 30px var(--shadow-color) !important;
    transition: all 0.3s ease;
}

.ant-card:hover {
    box-shadow: 0 15px 40px var(--shadow-color) !important;
    transform: translateY(-5px);
}

.ant-card-head {
    background-color: var(--primary-color);
    color: white !important;
    border-top-left-radius: 12px !important;
    border-top-right-radius: 12px !important;
    border-bottom: none !important;
    padding: 0 24px !important;
    height: 60px;
    display: flex;
    align-items: center;
}

.ant-card-head-title {
    color: white !important;
    font-weight: 600 !important;
    font-size: 20px !important;
    padding: 0 !important;
}

.ant-btn-primary {
    background: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    border-radius: 8px !important;
    height: 40px !important;
    font-weight: 500 !important;
    transition: all 0.3s ease;
}

.ant-btn-primary:hover,
.ant-btn-primary:focus {
    background: var(--primary-color-light) !important;
    border-color: var(--primary-color-light) !important;
}

.login-form, .qr-code-card {
    width: 100%;
    max-width: 400px;
}

.agent-page {
    width: 100%;
    max-width: 1200px;
}

#qr-code-container {
    padding: 20px;
    margin: 20px auto;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid var(--border-color);
    border-radius: 8px;
}

.user-info {
    margin-top: 24px;
}

.ant-table-thead > tr > th {
    background-color: #fafafa !important;
    font-weight: 600 !important;
}

.ant-notification-notice {
    border-radius: 8px !important;
}

/* Transitions */
.ant-modal-mask, .ant-modal-wrap {
    animation-duration: 0.3s;
}
